Ответ 1
Похоже, вы используете его не как "root". Только root может привязываться к этому порту (80). Проверьте конфигурацию в файле conf/httpd.conf, выполните команду Listen и измените порт на более высокий.
Я пытаюсь запустить httpd server на centos 6. Он выдает следующую ошибку:
[[email protected] ~]# service httpd start
Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:88
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:88
no listening sockets available, shutting down
Unable to open logs
[FAILED]
Я также проверил порт 88, он не используется. Я также проверил с семанатом, но это не помогло.
Любая помощь будет оценена.
Похоже, вы используете его не как "root". Только root может привязываться к этому порту (80). Проверьте конфигурацию в файле conf/httpd.conf, выполните команду Listen и измените порт на более высокий.
Мне довелось столкнуться с этой проблемой из-за отсутствующих разрешений SELinux. По умолчанию SELinux разрешает apache/httpd связываться со следующими портами:
80, 81, 443, 488, 8008, 8009, 8443, 9000
Таким образом, привязка к моему HTTP-порту httpd.conf
-configured Listen 88
и config.d/ssl.conf
-конфигурированный Listen 8445
порт TLS/SSL завершится неудачей с этой конфигурацией SELinux по умолчанию.
Чтобы исправить мою проблему, мне пришлось добавить порты 88 и 8445 в конфигурацию SELinux моей системы:
semanage
tools: sudo yum -y install policycoreutils-python
sudo semanage port -a -t http_port_t -p tcp 88
sudo semanage port -a -t http_port_t -p tcp 8445
На терминале выполните эту команду с правами root:
sudo /etc/init.d/apache2 start
Вы должны быть root для запуска веб-сервера, иначе вы получите аналогичную ошибку.
Это дополнение к ответу Абдулла где-то в этой теме:
Мне пришлось изменить вместо добавления порта
semanage port -m -t http_port_t -p tcp 5000
потому что я получаю эту ошибку при добавлении порта
ValueError: Port tcp/5000 already defined
С моей установкой centos 6.7 у меня не только возникла проблема с запуском httpd с помощью root, но и с помощью xauth (получение /usr/bin/xauth: timeout in locking authority file /.Xauthority
с базовым разрешением отклонено)
# setenforce 0
Исправлены обе проблемы.
В моем случае я сначала попытался использовать порт 88, и даже тогда httpd не запустился.
Я использовал приведенную ниже команду, т.е. изменил вместо добавления, как предложил один из пользователей, и смог запустить httpd.
semanage port -a -t http_port_t -p tcp 88
Отключить SELinux
Временно отключите SELinux
sudo setenforce 0
Перезапустите службу httpd
service httpd restart
Постоянно отключайте SELinux (после перезагрузки)
vi /etc/selinux/config
Добавить строку и сохранить
SELINUX=disabled
Начните с пользователя root или с sudo, все работает нормально, вот пример вывода:
[[email protected] ~]$ service httpd start
Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
**[FAILED]**
[[email protected] ~]$ sudo service httpd start
Starting httpd: [ OK ]
[[email protected] ~]$ sudo service httpd status
httpd (pid 3077) is running...
В Linux (Centos 6 или выше) порты от 0 до 1024 зарезервированы для использования системой. вы можете заставить систему связываться с любым портом ниже 1024, если вы используете root или привилегированного пользователя.
Я установил Apache-2.4 из источника с пользователем без полномочий root и решил эту проблему, разрешив порт больше 1024 (например, 8080) и изменил файл http.conf. Чанг Слушай 80, слушай 8080
Сначала уничтожьте все зависавшие экземпляры httpd, а затем попробуйте перезапустить Apache:
service httpd restart