Macports Apache2 "Не удалось привязать к адресу"

У меня установлен apache2 на Mac OS X 10.7.4 через macports

Недавно я не смог получить доступ к своему каталогу localhost, я получил 404, но я могу получить доступ к 127.0.0.1

Я попытался перезапустить Apache:

sudo /opt/local/apache2/bin/apachectl stop
sudo /opt/local/apache2/bin/apachectl start

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

(48)Address already in use: make_sock: could not bind to address [::]:80
(48)Address already in use: make_sock: could not bind to address [::]:443

Я проверил, что общий доступ отключен. Кажется, что Apache уже использует эти точки или служба не останавливается правильно.

Как я могу узнать, что использует порты?

3 ответа

Решение

Команда оболочки "lsof" может точно сказать, какой процесс использует какие файлы и адреса сокетов в системе. Просто попробуйте

sudo lsof

или, так как выходной будет много, лучше

sudo lsof | less

и искать что-то на http-портах. По-прежнему

man lsof

даст вам больше информации о том, как настроить вывод.

Для справки, в Mountain Lion 10.8.2 простая остановка службы apache2 сделала свое дело:

sudo apachectl stop

Таким образом, процессы httpd не будут перезагружены, и после этого сервер Macports apache2 будет работать нормально.

В моем Mac с Mojave (10.14.1), внезапно Apache больше не мог обслуживать IPv4, затем дал мне ОШИБКУ 403. Я попытался уничтожить все apache (sudo killall httpd)... проверка PID с

sudo lsof | grep AMP | grep apache

даже не работал... только IPv6 был доступен... по-прежнему ОШИБКА 403

Что работает для меня: отключите встроенный в MacOS сервер Apache.

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

после этого:

sudo apachectl -k restart

будь счастлив:)

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