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

Apache не запускается - адрес уже используется - невозможно прослушивать соединения, не удается открыть журналы

У меня установлен Debian 9 (устройство Bitnami) с системой обучения Moodle и темой Lambda. У нас включен https. Я попытался защитить сервер apache в соответствии с лучшими практиками, и последние две вещи, которые я изменил, - это добавление «FileETag None» в некоторые файлы конфигурации и установка apachetop для мониторинга веб-сервера. Я полагаю, что установка apachetop вызвала эту проблему. Когда я ввожу ip в браузере, я получаю начальный экран веб-сервера apache, но веб-страница не работает.

Когда я пытаюсь запустить apache, я получаю следующее:

root@debian:/etc# sudo /opt/bitnami/ctlscript.sh start apache

Syntax OK
(98)Address already in use: AH00073: make_sock: unable to listen for 
connections on address [::]:80
(98)Address already in use: AH00073: make_sock: unable to listen for 
connections on address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
/opt/bitnami/apache2/scripts/ctl.sh : httpd could not be started
Monitored apache

Я попытался найти решение в Интернете, но не нашел точно такого же сообщения об ошибке. Большинство ответов на аналогичные проблемы с привязкой касалось убийства вторых процессов apache, но я обнаружил, что прослушивает только один apache2. Я пробовал это:

root@debian:/etc/apache2/sites-enabled# sudo netstat -ltnp | grep ':80'
tcp6       0      0 :::80                   :::*                    LISTEN      
475/apache2

root@debian:/etc/apache2/sites-enabled# netstat -tulpn | grep apache2
tcp6       0      0 :::80                   :::*                    LISTEN      
475/apache2

root@debian:/etc/apache2/sites-enabled# sudo netstat -ltnp | grep ':443'
root@debian:/etc/apache2/sites-enabled#

Я также меняю владельца журнала на www-data, но ничего не изменилось. Когда я остановлю apache с этим

root@debian:/# /opt/bitnami/ctlscript.sh status apache
apache not running
root@debian:/# netstat -tulpn | grep apache2
tcp6       0      0 :::80                   :::*                    LISTEN      
475/apache2

Я все еще могу получить доступ к «странице по умолчанию Apache2 Debian», когда я ввожу ip в браузере. Это нормально?

Что ж, теперь работает,

root@debian:/home/bitnami# ps aux | grep apache
root       462  0.0  0.4  75612  4268 ?  Ss   09:04   0:00 /usr/sbin/apache2 -k start
www-data   463  0.0  0.3 364772  4036 ?  Sl   09:04   0:00 /usr/sbin/apache2 -k start
www-data   464  0.0  0.3 364772  4036 ?  Sl   09:04   0:00 /usr/sbin/apache2 -k start
root      1179  0.0  0.0  12784   960 pts/0    S+   09:05   0:00 grep apache
root@debian:/home/bitnami# kill 462
root@debian:/home/bitnami# kill 463
bash: kill: (463) - No such process
root@debian:/home/bitnami# kill 464
bash: kill: (464) - No such process
root@debian:/home/bitnami# kill 1179
bash: kill: (1179) - No such process
root@debian:/home/bitnami# /opt/bitnami/ctlscript.sh start apache
Syntax OK
/opt/bitnami/apache2/scripts/ctl.sh : httpd started at port 80
Monitored apache

Я думаю, что kill первого процесса заставил его работать, но после перезапуска сервера я получаю то же сообщение об ошибке, и необходимо убить процесс и запустить apache :(

Это ключ к разгадке.

(98) Адрес уже используется:

Это подтверждает то, что подсказывает.

tcp6 0 0 ::: 80 ::: * СЛУШАТЬ 475 / apache2

Apache уже прослушивает порт 80, поэтому команда запуска не работает.

Просто мысль ... Возможно, было бы неплохо остановить текущий apache перед запуском нового.

Сначала я бы попытался регулярно останавливать Apache

root @ debian: / etc # sudo /opt/bitnami/ctlscript.sh остановить apache

После этого полезно проверить, действительно ли apache был отключен

ps aux | grep apache

Если вы увидите идентификатор процесса с apache, попробуйте сначала отправить сигнал уничтожения

убийство process_id

Опять же, перечислите процессы с пс command, и если вы видите apache, убейте его с помощью SIGKILL

убить -9 process_id

Теперь вы либо увидите, что apache все еще работает -> это означает, что что-то перезапускает его, и вам нужно выяснить, почему. Или вы больше не увидите никаких процессов. В таком случае запустите apache еще раз.

root @ debian: / etc # sudo /opt/bitnami/ctlscript.sh запустить apache

Если вы снова получите ошибку, это означает, что apache запущен дважды. Так что, вероятно, проблема со сценарием запуска /opt/bitnami/ctlscript.sh но я в этом очень сомневаюсь.

Как только вы определите, связана ли проблема с тем, что apache перезапускается автоматически, когда вы его убиваете, или запускается дважды, вы сможете более глубоко изучить проблему, но я сомневаюсь, что правильная отладка может быть выполнена через такой сайт QA, как этот, и скорее будет рекомендую опытного админа через.