Назад | Перейти на главную страницу

Apache2 не может открыть сокет как услугу

Платформа: CentOS Linux версии 7.5.1804

У меня есть недавно установленный apache2, и мне нужно, чтобы он прослушивал порт, отличный от порта по умолчанию, чтобы соответствовать политике брандмауэра хоста.

Я меняю httpd.conf на

Слушай 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

было все, что было нужно.