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

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

у меня Ubuntu 11.10

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

sudo /etc/init.d/apache2 start

Я получаю следующее сообщение об ошибке:

запуск веб-сервера apache2
apache2: не удалось достоверно определить полную квалификацию сервера доменное имя, используя 127.0.1.1 для адреса Имя_сервера (98)уже в использование: make_sock: не удалось выполнить привязку к адресу 0.0.0.0:80 не слушал сокеты доступны, выключение невозможно открыть журналы действие "пуск" неудачный.

я запускаю эту команду, чтобы получить процесс, который использует порт 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 не удается.

какие предложения?

12 ответов


работал для меня этой команды:

fuser -k -n tcp 80

это может быть skype или nginx с использованием порта 80.

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


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

    sudo netstat -ltnp | grep ':80'

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

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


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

для меня apache уже работал, но он работал неправильно.

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

apachectl stop   

проблема решена.


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


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

sudo netstat -ltnp | grep ':80'

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

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

затем

sudo kill -9 1047

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


Я бы просто проверил, установлено ли следующее в вашем /etc/apache2/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. Это сделал трюк для меня как повторный запуск и убийство процессов не помогает вообще. Все равно ничего не началось.


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

$ netstat -anp | grep

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

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


это произойдет из-за повторной установки 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

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

root# ps aux |grep apache

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


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


использовать

sudo killall httpd

или

sudo killall apache2

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

sudo netstat -tulpn| grep :80

перезагрузка

sudo service httpd start

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

enter image description here