Показать статистику
0 голосов
от (2.7тыс. баллов)
invoke-rc.d: initscript apache2, action "restart" failed.
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2022-02-16 07:12:03 UTC; 8ms ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 638499 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)

Feb 16 07:12:03 server systemd[1]: Starting The Apache HTTP Server...
Feb 16 07:12:03 server apachectl[638502]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
Feb 16 07:12:03 server apachectl[638502]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
Feb 16 07:12:03 server apachectl[638502]: no listening sockets available, shutting down
Feb 16 07:12:03 server apachectl[638502]: AH00015: Unable to open logs
Feb 16 07:12:03 server apachectl[638499]: Action 'start' failed.
Feb 16 07:12:03 server apachectl[638499]: The Apache error log may have more information.
Feb 16 07:12:03 server systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
Feb 16 07:12:03 server systemd[1]: apache2.service: Failed with result 'exit-code'.
Feb 16 07:12:03 server systemd[1]: Failed to start The Apache HTTP Server.
Setting up php8.1 (8.1.2-1+ubuntu20.04.1+deb.sury.org+1) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...
Processing triggers for php8.1-cli (8.1.2-1+ubuntu20.04.1+deb.sury.org+1) ...
Processing triggers for libapache2-mod-php8.1 (8.1.2-1+ubuntu20.04.1+deb.sury.org+1) ...
root@server:~#

Я пробовал очищать и переустанавливать apache и php8.1, но не могу заставить его работать. Я что-то упустил? Запуск выдает sudo apache2ctl -t OK syntax, а запуск sudo systemctl restart apache2 дает следующее:

Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.

Я на Ubuntu Server 20.04 и использую OpenSSH. Заранее спасибо.

404 просмотров 1 ответов

1 Ответ

0 голосов
от (26.4тыс. баллов)

Анализ ситуации

Из вашего журнала:

Address already in use: AH00072: make_sock: could not bind to address [::]:80 Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80

no listening sockets available, shutting down

Произошла коллизия относительно вашего TCP-порта 80. Есть две возможные причины проблемы на вашем сервере:

  1. Некоторые приложения или службы в фоновом режиме используют тот же порт TCP 80, что и Apache.
  2. Неправильный порт+адрес/сокет в конфигурации Apache. Это менее вероятная причина, чем №1.

Решение

Установите net-tools и используйте netstat для получения информации о том, какой процесс/приложение занимает TCP 80 в вашей системе.

sudo apt-get install net-tools
sudo netstat -lntp | grep -e ":80" -e "PID"

Теперь вы видите номер процесса и имя приложения, которое использует порт 80. Отключите это приложение или измените настройки приложения, чтобы использовать порт, отличный от TCP 80.

Подробные списки процессов, которые можно использовать для поиска сведений о приложении, прослушивающем ваш TCP-порт:

ps -ef
ps -aux

Найдите номер процесса, полученный из вывода netstat.

 

от (2.7тыс. баллов)
0

Спасибо за помощь. После ввода второй команды получаю вот что: 

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp6 0 0 :::80 :::* LISTEN 1505/apache2 

я не очень разбираюсь в линуксе, но мне кажется, что именно второй вариант вы отметили. Что мне делать в этой ситуации?

от (26.4тыс. баллов)
0

Судя по вашему ответу, у вас конфликтуют 2 экземпляра Apache.

Перезагрузите сервер. В «свежей» системе используйте эти команды и вставьте их результаты здесь, к вашему вопросу.

sudo sudo service --status-all | grep -i apache
sudo systemctl --type service --all | grep -i apache
sudo ps -ef | grep -i apache
sudo ps -aux | grep -i apache
ls -l /etc/apache2/sites-enabled
grep -R "80" /etc/apache2
...