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
будь счастлив:)