Служба Apache перестала работать после обновления до Ubuntu 17.04 [duplicate]

Я пытаюсь настроить виртуальную машину Ubuntu 12.04. У меня два виртуальных хоста, настроенных с использованием порта 80, но Apache не запускается.

Я получаю эту ошибку: (98) Address already in use: make_sock: could not bind to address 0.0.0.0:80

Вывод netstat -tulpn показывает, что ничего не использует порт 80. Что может быть причиной этого?

51
задан 2 April 2013 в 19:59

16 ответов

Я понял это. У меня было дублирование команд Listen 80 в моих httpd.conf и ports.conf

Кроме того, при копировании файла конфигурации для этого виртуализованного сервера я забыл заметить, что каталог журнала ошибок был изменен , Заглянув в этот журнал ошибок, я заметил, что каталог для файла конфигурации mime.types был неправильным в моем httpd.conf файле. Я обновил этот параметр, и сервер начал нормально работать.

2
ответ дан 18 July 2018 в 09:54

Я понял это. У меня было дублирование команд Listen 80 в моих httpd.conf и ports.conf

Кроме того, при копировании файла конфигурации для этого виртуализованного сервера я забыл заметить, что каталог журнала ошибок был изменен , Заглянув в этот журнал ошибок, я заметил, что каталог для файла конфигурации mime.types был неправильным в моем httpd.conf файле. Я обновил этот параметр, и сервер начал нормально работать.

2
ответ дан 24 July 2018 в 19:28

Отвечая на вопрос, как я решил эту проблему. Может быть полезно кому-то в будущем.

Try netstat -ltnp | grep :80

Это вернет нечто вроде

tcp6 0 0 ::: 80 ::: * LISTEN 1047 / apache2

Затем запустите

sudo kill -9 1047

, где 1047 - это pid программы, запущенной на порту 80. Вы можете заменить pid, который вы получили из netstat

12
ответ дан 18 July 2018 в 09:54

Когда у меня возникла эта проблема, оказалось, что мой Apache не смог начать загрузку, потому что у меня был сайт SSL, для которого требуется ввести пароль для сертификата.

Хороший способ чтобы определить, действительно ли это для вас - запустить ps -ef | grep apache: если это возвращает процессы, которые выглядят как /bin/bash /usr/share/apache2/ask-for-passphrase mysite.com:443 RSA, тогда он ждет ввода пароля в терминал, который вы никогда не увидите.

Во-первых, я убил височный процесс (отправка kill -HUP в идентификатор процесса для процесса / usr / sbin / apache2 должна быть достаточной, чтобы убить другие, но сделать еще один ps -ef | grep apache, чтобы убедиться).

Затем я выполнил инструкции в этом сообщении, чтобы создать файл паролей SSL, для которого не требуется вводить пароль. Затем service apache2 start работал нормально, и Apache начал правильно после перезагрузки.

12
ответ дан 18 July 2018 в 09:54

Убедитесь, что вы дважды не декларируете Listen 80 в файлах .conf.

Например, вы можете использовать его как в ports.conf, так и в inn sites-enabled/www.conf.

Чтобы узнать, используйте: grep -ri listen /etc/apache2

Держите Listen 80 только в одном месте.

28
ответ дан 18 July 2018 в 09:54

Это означает, что вы уже используете порт 80, либо измените порт для apache2 (который я не рекомендую), отредактировав:

/etc/apache2/ports.conf

Или закройте приложение, запущенное на порту 80 :

netstat -antp | grep 80

Чтобы найти то, что работает на порту 80.

1
ответ дан 18 July 2018 в 09:54

У меня был сервер Nginx, прослушивающий мой сервер AWS EC2, я думаю, что он сконфигурировался, когда я строил EC2, следовательно, я получал ошибку «Адреса» уже в использовании. Поэтому я остановил службу и запустил службу Apache2:

sudo service nginx stop sudo service apache2 start
3
ответ дан 18 July 2018 в 09:54

Просто подсказка для всех, кто, возможно, использует VirtualBox с сетями NAT. Я нашел, что правило NAT между моим гостем и хостом установило себя, привязывая порт

1
ответ дан 18 July 2018 в 09:54

Не только дубликаты упоминаний

Listen 80

, но и упоминание об этом в дополнение к Listen 80

Include ports.conf
0
ответ дан 18 July 2018 в 09:54

Отвечая на вопрос, как я решил эту проблему. Может быть полезно кому-то в будущем.

Try netstat -ltnp | grep :80

Это вернет нечто вроде

tcp6 0 0 ::: 80 ::: * LISTEN 1047 / apache2

Затем запустите

sudo kill -9 1047

, где 1047 - это pid программы, запущенной на порту 80. Вы можете заменить pid, который вы получили из netstat

13
ответ дан 24 July 2018 в 19:28
  • 1
    спасатель жизни ^^ & quot; благодаря – vivoconunxino 25 March 2018 в 22:44
  • 2
    wow! ... и вот я через 48 часов после отправки билета в inmotionhosting и жду ответа. Спасибо – Amjo 24 May 2018 в 11:54

Когда у меня возникла эта проблема, оказалось, что мой Apache не смог начать загрузку, потому что у меня был сайт SSL, для которого требуется ввести пароль для сертификата.

Хороший способ чтобы определить, действительно ли это для вас - запустить ps -ef | grep apache: если это возвращает процессы, которые выглядят как /bin/bash /usr/share/apache2/ask-for-passphrase mysite.com:443 RSA, тогда он ждет ввода пароля в терминал, который вы никогда не увидите.

Во-первых, я убил височный процесс (отправка kill -HUP в идентификатор процесса для процесса / usr / sbin / apache2 должна быть достаточной, чтобы убить другие, но сделать еще один ps -ef | grep apache, чтобы убедиться).

Затем я выполнил инструкции в этом сообщении, чтобы создать файл паролей SSL, для которого не требуется вводить пароль. Затем service apache2 start работал нормально, и Apache начал правильно после перезагрузки.

12
ответ дан 24 July 2018 в 19:28

Убедитесь, что вы дважды не декларируете Listen 80 в файлах .conf.

Например, вы можете использовать его как в ports.conf, так и в inn sites-enabled/www.conf.

Чтобы узнать, используйте: grep -ri listen /etc/apache2

Держите Listen 80 только в одном месте.

28
ответ дан 24 July 2018 в 19:28

Это означает, что вы уже используете порт 80, либо измените порт для apache2 (который я не рекомендую), отредактировав:

/etc/apache2/ports.conf

Или закройте приложение, запущенное на порту 80 :

netstat -antp | grep 80

Чтобы найти то, что работает на порту 80.

1
ответ дан 24 July 2018 в 19:28
  • 1
    netstat -antp | grep 80 ничего не выводит. – Gunner Barnes 3 April 2013 в 23:39
  • 2
    вы можете скопировать и вставить вывод команды netstat -антп | грэп 80? – Dylan Dodds 3 April 2013 в 23:45
  • 3
    В буквальном смысле нет выхода. – Gunner Barnes 3 April 2013 в 23:47
  • 4
    хм, это странно, попробуйте изменить порт на 81, если не заблокирован порт, есть еще одна ошибка, вы можете проверить ошибки apache2 в /var/log/apache2/error.log – Dylan Dodds 3 April 2013 в 23:53
  • 5
    Любил читать и, используя ваши советы! Спасибо, что пишешь так, как вы отладили его! – Ram 22 July 2016 в 10:15

У меня был сервер Nginx, прослушивающий мой сервер AWS EC2, я думаю, что он сконфигурировался, когда я строил EC2, следовательно, я получал ошибку «Адреса уже в использовании». Поэтому я остановил службу и запустил службу Apache2:

sudo service nginx stop sudo service apache2 start
3
ответ дан 24 July 2018 в 19:28

Просто подсказка для всех, кто, возможно, использует VirtualBox с сетями NAT. Я нашел, что правило NAT между моим гостем и хостом установило себя, привязывая порт

1
ответ дан 24 July 2018 в 19:28

Не только дубликаты упоминаний

Listen 80

, но и упоминание об этом в дополнение к Listen 80

Include ports.conf
0
ответ дан 24 July 2018 в 19:28

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

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