Ответ 1
Работала для меня, выполняя эту команду:
fuser -k -n tcp 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.
Любые предложения?
Работала для меня, выполняя эту команду:
fuser -k -n tcp 80
Это может быть skype или nginx, используя порт 80.
Попробуйте отключить скайп или запустить: sudo /etc/init.d/nginx stop
У меня была такая же ошибка, и я просто хочу подтвердить, что запуск
sudo netstat -ltnp | grep ':80'
помог мне указать, что веб-сервер Hiawatha находится на пути Apache2.
Удаление Hiawatha исправило проблему (sudo dpkg --purge hiawatha). Сервер Ubuntu 12.04.2.
У меня была та же проблема
Для меня apache уже запущен, но он работает не так.
Процессы убийства не работали, потому что демон продолжал восстанавливать его.
apachectl stop
разрешил проблему.
Попробуй, это работает для меня...
sudo netstat -ltnp | grep ':80'
Это вернет следующее:
tcp6 0 0 :::80 :::* LISTEN 1047/apache2
Тогда
sudo kill -9 1047
Затем я смог перезапустить Apache, и все работало нормально.
Перейдите в диспетчер устройств, выберите "показать скрытые устройства" из меню/вида, перейдите к "Драйвер без Plug and Play" /HTTP, дважды щелкните его, чтобы отключить его (и отключить или вручную повлиять некоторые службы). Перезагрузитесь и наслаждайтесь!
Что бы я сделал, просто проверьте, установлено ли в вашем файле /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 файле. Он помогло, поскольку перезапуск и убийство процессов не помогли. Это все равно не начиналось.
Похоже, что другой процесс использует порт 80.
$ netstat -anp | grep
например. $ netstat -anp | grep 80
выше вы получаете имя процесса, если вы хотите использовать порт, вам необходимо остановить процесс или изменить порт
используйте либо
sudo killall httpd
или
sudo killall apache2
проверьте, использует ли кто-нибудь порт 80
sudo netstat -tulpn| grep :80
Перезагрузка
sudo service httpd start
затем перезапустите сервер. Мне потребовался целый день, чтобы разобраться в проблеме
Это произойдет из-за повторной установки 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
Он покажет вам ApID PID, просто убейте эти PID и перезапустите Apache Server.
Вы можете прослушивать PORTNUMBER только в одном файле .conf. Не помещайте это в несколько файлов. Попробуй :)
$ ps -ef|grep httpd
root 14106 3344 0 12:25 pts/1 00:00:00 grep httpd
$kill -9 14106