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

Невозможно изменить порт http-сервера Apache в unix

Я скачал HTTP-сервер Apache, скомпилировал его и установил в unix-бокс.

Я попытался запустить свой HTTP-сервер Apache в unix, но получил указанную ниже ошибку, поэтому подумал об изменении порта.

(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down

Я попытался изменить порт прослушивания для моего HTTP-сервера Apache в UNIX, изменив файл httpd.conf (находящийся в каталоге conf), но это, похоже, не имеет никакого эффекта, когда я перезапускаю свой сервер.

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80

Listen 82

Я попытался изменить номер порта на значение больше 1024 (номера непривилегированных портов), но получаю ту же ошибку, что и выше (ошибка по-прежнему отображается в списке порта 80).

Я использую httpd для запуска сервера. Я даже попытался начать использовать приведенную ниже команду, но все равно получаю ту же ошибку ..

apachectl -f ./conf/httpd.conf

Я что-то упускаю?

Когда вы говорите, что загрузили Apache и установили его в системе "UNIX", какую операционную систему вы на самом деле используете? Вы используете Linux? Солярис? FreeBSD? OpenBSD? И т.д.?

Кроме того, в какой бы системе вы ни работали, скорее всего, пакет Apache должен быть установлен с помощью утилиты управления пакетами.

Кроме того, apachectl, скорее всего, не должен принимать параметр конфигурации. Можешь попробовать вместо этого бежать ...

# httpd -f ./conf/httpd.conf

Вероятно, лучше, если вы будете использовать полный путь, а не относительный, просто чтобы убедиться, что все в порядке. Лучше всего, однако, сообщить нам, какую ОС вы используете, и, возможно, установить ее более удобным способом с документацией.

Убедитесь, что вы действительно используете файл httpd.conf, который вы указываете в командной строке, в системе Centos я должен вручную указать ./conf/httpd.conf по-прежнему использует /etc/httpd/conf/httpd.conf файл (корень относительных путей находится в / etc / httpd).

Также проверьте, что вы не работаете с SELinux, который можно настроить так, чтобы httpd мог связываться только с определенными портами, как root вы можете получить список с помощью

semanage -port -l | grep http_port_t 
http_port_t                    tcp      80, 443, 488, 8008, 8009, 8443

Вы можете добавить свой собственный порт, используя

 semanage port -a -t http_port_t -p tcp 1025

как root, но если у вас нет root-доступа, вам нужно будет выбрать его из списка выше.