Подтвердить что ты не робот

Запуск apache не удается (не удалось привязать к адресу 0.0.0.0:80)

Обновление: уже исправлено, похоже, что один из файлов конфигурации VirtualHosts был неправильным в сайтах.

У меня Ubuntu 11.10

Когда я запускаю команду для запуска apache2:

sudo /etc/init.d/apache2 start

Появляется следующее сообщение об ошибке:

Запуск веб-сервера apache2
apache2: Не удалось достоверно определить сервер полностью имя домена, используя 127.0.1.1 для ServerName (98) Адрес уже в use: make_sock: не удалось привязать к адресу 0.0.0.0:80 no listen сокеты доступны, выключение Невозможно открыть журналы Действие 'start' не удалось.

Я запускаю эту команду, чтобы получить процесс, который использует порт 80:

sudo netstat -ltnp | grep ':80'

Что возвращает этот вывод:

tcp6       0      0 :::80                   :::*                    LISTEN      1176/

Чтобы узнать, в каком процессе я запускаю эту команду:

ps -wlp1176

Это возвращает:

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
5 D    33  1176     1  0  80   0 -     0 exit   ?        00:00:00 apache2

Но если я попытаюсь убить процесс:

sudo kill -9 1176

Он не убивает его, если я снова запустил команду netstat, по-прежнему появляется прослушивание и запуск apache.

Любые предложения?

4b9b3361

Ответ 1

Работала для меня, выполняя эту команду:

fuser -k -n tcp 80

Ответ 2

Это может быть skype или nginx, используя порт 80.

Попробуйте отключить скайп или запустить: sudo /etc/init.d/nginx stop

Ответ 3

У меня была такая же ошибка, и я просто хочу подтвердить, что запуск

    sudo netstat -ltnp | grep ':80'

помог мне указать, что веб-сервер Hiawatha находится на пути Apache2.

Удаление Hiawatha исправило проблему (sudo dpkg --purge hiawatha). Сервер Ubuntu 12.04.2.

Ответ 4

У меня была та же проблема

Для меня apache уже запущен, но он работает не так.

Процессы убийства не работали, потому что демон продолжал восстанавливать его.

apachectl stop   

разрешил проблему.

Ответ 5

Попробуй, это работает для меня...

sudo netstat -ltnp | grep ':80'

Это вернет следующее:

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

Тогда

sudo kill -9 1047

Затем я смог перезапустить Apache, и все работало нормально.

Ответ 6

Перейдите в диспетчер устройств, выберите "показать скрытые устройства" из меню/вида, перейдите к "Драйвер без Plug and Play" /HTTP, дважды щелкните его, чтобы отключить его (и отключить или вручную повлиять некоторые службы). Перезагрузитесь и наслаждайтесь!

Ответ 7

Что бы я сделал, просто проверьте, установлено ли в вашем файле /etc/apache 2/sites-available/your-domain-name.com.conf следующее:

SSLEngine on 
SSLCertificateFile /your/path/to/your-domain.com.crt
SSLCertificateKeyFile /your/path/to/your-domain.com.key
SSLCACertificateFile /your/path/to/your-domain.com.ca-bundle

и нет каких-либо ошибочных каталогов или чего-либо еще, что не должно было быть в вашем .conf файле. Он помогло, поскольку перезапуск и убийство процессов не помогли. Это все равно не начиналось.

Ответ 8

Похоже, что другой процесс использует порт 80.

$ netstat -anp | grep

например. $ netstat -anp | grep 80

выше вы получаете имя процесса, если вы хотите использовать порт, вам необходимо остановить процесс или изменить порт

Ответ 9

используйте либо

sudo killall httpd

или

sudo killall apache2

проверьте, использует ли кто-нибудь порт 80

sudo netstat -tulpn| grep :80

Перезагрузка

sudo service httpd start

затем перезапустите сервер. Мне потребовался целый день, чтобы разобраться в проблеме

enter image description here

Ответ 10

Это произойдет из-за повторной установки apache или порта, используя другую службу

sudo lsof -i | grep "httpd"

Вы найдете идентификатор процесса и порт прослушивания. Затем проверьте

cd /proc/(process id of http)

Затем уничтожьте этот процесс, используя команду

kill -9 pid

Теперь

sudo netstat -nltp

снова убить процесс

синтаксис: -

kill -9 pid

и теперь запустите apache

sudo ./apachectl start

Ответ 11

Я исправил его, используя следующую процедуру. Выполните команду ниже как пользователь root.

root# ps aux |grep apache

Он покажет вам ApID PID, просто убейте эти PID и перезапустите Apache Server.

Ответ 12

Вы можете прослушивать PORTNUMBER только в одном файле .conf. Не помещайте это в несколько файлов. Попробуй :)

Ответ 13

$ ps -ef|grep httpd

root     14106  3344  0 12:25 pts/1    00:00:00 grep httpd

$kill -9 14106