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

Я установил Apache 2 на Ubuntu 12.10. Когда я пытаюсь запустить сервисное использование sudo /etc/init.d/apache2 start, Я получаю следующее сообщение.

*Starting web server apache2
(98)Address already in use: make_sock: could not bind to address 127.0.0.1:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.                                 [fail]
5
задан 29 March 2014 в 17:11

5 ответов

Вполне возможно, что у вас что-то уже работает (или "привязано") к этому порту. Попробуйте эту команду, чтобы увидеть рассматриваемые процессы:

sudo lsof -i :80

В этом списке перечислены процессы, прослушивающие порт 80. Как только вы нашли виновника, вы знаете, какой процесс нужно kill или kill -9 (также как superuser).

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

В противном случае используйте ответ от dedunumax.

3
ответ дан 23 November 2019 в 09:25

Попробуйте sudo service apache2 start

, затем введите

sudo service apache2 status

, вторая команда покажет, запущена она или нет.

1
ответ дан 23 November 2019 в 09:25

Я получил это сообщение об ошибке со следующей конфигурацией:

# cat /etc/hosts
127.0.0.1   localhost
127.0.0.1   foo
...

# cat /etc/apache2/sites-enabled/foo
<VirtualHost foo:80>
...

# cat /etc/apache2/ports.conf 
...
NameVirtualHost *:80
Listen localhost:80
...

Изменение ports.conf на следующее решило проблему:

NameVirtualHost *:80
Listen 127.0.0.1:80
1
ответ дан 23 November 2019 в 09:25

Я получил это как сообщение об ошибке apache со следующей конфигурацией:

# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Я закомментировал запись :: 1 и выдал команду перезапуска apache.

# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6


# sudo service httpd restart
0
ответ дан 23 November 2019 в 09:25

Некоторое другое программное обеспечение, например Nginx, может работать и использовать порт 80.

Apache2 вылетел на моем VPS с той же ошибкой сообщения, и я обнаружил, что Nginx был присутствует на сервере и что-то (работа cron?) началось через несколько дней. Это вызывает конфликт, так как он использует порт 80 и каким-то образом имеет приоритет над Apache2.

Чтобы проверить, не использует ли что-нибудь уже порт 80, введите:

netstat -tulpn

Я решил это, удалив Nginx (с помощью "remove --purge" ), завершив процесс nginx и перезапустив Apache2.

0
ответ дан 23 November 2019 в 09:25

Другие вопросы по тегам:

Похожие вопросы: