Платформа: CentOS Linux версии 7.5.1804
У меня недавно установлен apache2, и мне нужно, чтобы он прослушивал порт, отличный от порта по умолчанию, чтобы соответствовать политике брандмауэра хоста .
Я изменяю httpd.conf на
Listen 7800
И когда я запускаю службу с помощью
systemctl start httpd
, получаю сообщение об ошибке
20 июня 09:58:46 ian -ui-esb2 httpd [4834]: (13) В доступе отказано: AH00072: make_sock: не удалось выполнить привязку к адресу [::]: 7800
. Я проверял, что порт не используется, с помощью lsof. Более того, я пробовал запустить httpd вручную, используя
/ usr / sbin / httpd
. Примечание. Я делаю это как root, поэтому неудивительно, что я не получаю ошибку с правами доступа.
И это нормально, и действительно, когда я слушаю 7800, я вижу страницу приветствия в браузере. Я отключаю запущенный вручную httpd, и браузер не может подключиться, поэтому я не вижу никаких сомнений в том, что я действительно запускаю apache на 7800.
Служебный файл не изменен по сравнению с установкой по умолчанию. Не имеет специальной информации о пользователе. Я не уверен, какой пользователь systemctl попытается запустить httpd от имени. Процессы не работают достаточно долго, чтобы быть уверенным.
Есть идеи, что происходит?
И интересный ответ: вам нужно сообщить CentOS, что порт будет использоваться для http!
semanage port -a -t http_port_t -p tcp 7800
- это все, что было нужно.