Macports Apache2「アドレスにバインドできませんでした」

Macports Apache2「アドレスにバインドできませんでした」

私はMac OS X 10.7.4にapache2をインストールしました。マックポート

最近、ローカルホストディレクトリにアクセスできなくなりました。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

Web 共有がオフになっていることを確認しました。Apache がすでにこれらのポイントを使用しているか、サービスが正しく停止していないようです。

ポートを使用しているものを確認するにはどうすればよいでしょうか?

答え1

「lsof」シェルコマンドは、システム内のどのプロセスがどのファイルとソケットアドレスを使用しているかを正確に知ることができます。

sudo lsof

または、出力が多ければ多いほど良い

sudo lsof | less

そして、httpポートで何かを探します。いつものように

man lsof

出力をカスタマイズする方法についての詳細情報を提供します。

答え2

参考までに、Mountain Lion 10.8.2 では、apache2 サービスを停止するだけで問題が解決しました。

sudo apachectl stop

こうすることで、httpd プロセスは再起動せず、その後 Macports apache2 サーバーは正常に起動します。

答え3

Mojave(10.14.1)を搭載したMacで、突然ApacheがIPv4を提供できなくなり、ERROR 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

幸せになる :)

関連情報