Несколько слов об ошибках, которые вы получите, которые, надеюсь, избавят вас от подобных ситуаций в будущем.
В Linux порты от 0 до 1024 зарезервированы для использования системой. Это означает, что для его использования у вас должны быть полномочия на изменение - доступ к основным настройкам системы. Пользователь root обладает такими привилегиями и может использовать порт в диапазоне от 0 до 1024.
В вашей проблеме, как вы можете видеть, система через ответ Apache2 указывает на корень проблемы ([...] не удалось выполнить привязку к адресу бла-бла- 80 ):
(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
Когда Apache2 HTTP - демон запускается, он пытается связать порт 80 , как это порт по умолчанию для использования в HTTP см , который является портом в рамках системы назначены порты и как таковой он может быть доступен только корень.
Вы выполнили команду запуска как обычный пользователь без привилегий root и не смогли этого сделать.
Простыми словами:
Вы:
Привет Apache2. Я Kongthap, и я говорю вам, чтобы начать ( /etc/init.d/apache2 start
)
Apache2:
ХОРОШО. Я запускаю (Запуск веб-сервера apache2)
Система, пожалуйста, дайте мне порт 80 для использования и прослушивания соединений.
система:
ХОРОШО. Один момент, чтобы проверить ...
Ааа ... Извините Apache2, но я не могу позволить вам работать на 80 порту, это для личного использования.
И у вас нет правильных привилегий, чтобы связать это. ( Operation not permitted
)
Apache2:
Ой, Kongthap Мне не удалось запустить, Система не позволила мне сделать это ( (13)Permission denied:[...]
)
Вывод
Существует в основном два решения этой проблемы:
Запустите демон Apache2 HTTP с правами root, используя sudo
:
sudo service apache2 start
или:
sudo /etc/init.d/apache2 start
Изменение порта по умолчанию от 80
до чего - то большего , чем 1024
, скажем 2000
, 2500
, 9000
и т.д. Типичный порт для запуска , когда в такой ситуации8080
sudo vi /etc/apache2/ports.conf
искать или, если нет, добавить:
Listen 8080
или любой другой порт по вашему выбору, такой как порт, > 1024
и выбранный порт не используется другим процессом.
service
предпочтительный метод?Ниже приведены команды для запуска / остановки / перезапуска сервера Apache:
Начать:
Прекратить:
Заново:
источник
Проверьте контекст порта selinux, введя команду
Если он присутствует в списке http_port_t, тогда все в порядке, в противном случае добавьте ваш порт с помощью
или что-то, что вы хотите назначить.
источник
Это ошибка selinux, или, по крайней мере, в моем случае. Либо измените логическое значение, отключите selinux, либо установите его для разрешения с помощью
setenforce 0
.Изменение логического значения потребует от вас запуска
getenforce -a | grep http
и поиска «разрешить http-соединение». Скопируйте его и замените «вкл» там, где в списке написано «- выкл»источник