サーバーにはポート80を使用する必要があります。しかし、Macで使用しようとすると、常に80が使用されていると表示されていましたが、どのプログラムで使用されているのかわかりません。
私はそれをグーグルで検索しました、そして誰かがそれがアパッチについてであると言いました、しかし私は試みました、それは機能していません。私はこれを見つけました: https://Gist.github.com/kujohn/7209628 ですが、IPアドレスでサーバーにアクセスしても機能していないようです。
私は本当に何が起こっているのか、そしてどのようにしてポート80を使用しているプログラムを見つけてそれを止めることができるのか本当にわかりません。
誰かが助けてくれてありがとう、私はMacを使うのが初めてです。ありがとう。
ポート80を使用しているプロセスを確認するには
これはプロセスを強制終了するだけで、すでに実行中のサーバーインスタンスの実行を停止することはありません。
データベース管理システムを使用しているかどうかは不明ですが、MAMPを使用してうまくいった方法は次のとおりです。
Sudo apachectl stop
コマンドを使用してサーバーを停止します。ターミナルで次のように入力します
Sudo lsof -i -n -P | grep TCP
あなたはリストを取得します-例えばDropboxは80をリッスンします
出力をテキストエディタなどにコピーして検索できます
Macでは、1024未満のポートはroot
ユーザーのみがバインドできます。 root
ユーザー(Sudo
を使用)としてサーバーを起動するか、1024を超えるポートを使用してみてください。
/etc/sudoers
でroot権限をユーザーに追加することもできます
# root and users in group wheel can run anything on any machine as any user
root ALL = (ALL) ALL
%admin ALL = (ALL) ALL
your_user_here ALL = (ALL) ALL
ポート80を使用しているSkypeである可能性があります。Skypeをインストールして実行している場合は、設定で別のポートに変更してみてください。
私はこの問題を抱えていました、Apacheはlaunchctlを介して無効にされましたが、起動後もポート80を拘束していましたが、Apacheを起動でき、動作しましたが、アンロードした後、ポート80で何も起動できませんでした。 Pythonの組み込みWebサーバーを簡単なテストとして使用します。ポート81では機能しますが、ポート80では機能しません。
Sudo python -m SimpleHTTPServer 80
-機能しない
Sudo python -m SimpleHTTPServer 81
-機能する
症状は次のとおりです。
$ launchctl unload -w /System/Library/LaunchDaemons/org.Apache.httpd.plist
/System/Library/LaunchDaemons/org.Apache.httpd.plist: Could not find specified service
$ Sudo lsof -i ':80'
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Python 3353 root 3u IPv4 0xe455777a82799f05 0t0 TCP *:http (LISTEN)
(あまりにも多くの検索を行った後の)私にとっての修正は簡単でした:
Sudo pfctl -F all
これにより、パケットフィルターがフラッシュされ、ポート80が解放されます(Apacheが占有している可能性のあるポートはすべて8080、443と想定されます)。
その後、pythonサーバーを再起動すると、すぐに起動しました。