私は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
幸せになる :)