
Fedora 15でApacheを起動できませんプロジェクトをダウンロードして/var/www/html
(繰り返し)所有者に変更しましたが、SELinuxコンテキストやそれに似たものを変更したようには見えません。私が実行すると、service httpd start
次のようになります。
httpd起動(systemctl経由):操作が失敗しました。詳細については、システムログと「systemctl status」を参照してください。
[失敗]
rootとして実行すると、httpd -k start
次のようになります。
(98)すでに使用されているアドレス:make_sock:アドレス127.0.0.1:80にバインドできません。
理由はわかりませんが、SELinuxに関連しているようです。どんなアイデアがありますか?
答え1
エラー出力に示されているとおりに実行する必要があります。
詳細については、システムログとを参照してください
systemctl status
。
しかし、2番目のエラーメッセージは非常に明確です。一部のプログラムはすでに実行されており、ポート80を使用しています。netstat
ポート80を占有するプログラムを見つけるには、rootとして実行します。
netstat -ntlp
おそらく、これは前のコマンドで開始されたhttpdプロセスです。その場合は、再試行する前に終了するか、restart
代わりに使用してくださいstart
。
答え2
開いているポートを見つけるには、root として次のコマンドを実行します。
netstat -tpln
「ローカルアドレス」列に開いているポートを表示できます。また、最後の列には、ポートを使用するプロセスのPIDが表示されます。以下でPIDを終了してみてください。
kill -9 PID
ここで、PID は、今見つけたプロセス ID です。
これでApacheが起動します。
答え3
私もこの問題が発生し、Apacheを再インストールして解決しました。端末に入力します(su
ルートの後またはsudo
コマンドの前)。
# yum remove httpd
Removed HTTPD 100%
# yum install httpd
Installed HTTPD 100%
その後、.conf
ファイルを処理します。
次に、端末に次のように入力します。
sudo service httpd start
それでは効果があるでしょう。
答え4
教育目的で次のように説明します。それはおそらく、Fedoraが提供するGUIベースのhttpd設定ユーティリティを使ったことでしょう。 system-config-http.conf ファイルを生成します。 Apacheは最初に「一般」conf.d(受信ポートを指定)をロードし、そのポートでリッスンを開始します。その後、Apacheがロードされます。その他.confファイルを見つけて処理します。 GUIユーティリティで生成された新しい設定ファイルには、ポート80用の別の「listen」ディレクティブが含まれています。したがって、Apacheは何かがすでにポート80を占有していることを「認識」しているため、Apacheはプロセスの開始を停止して完全に終了します。
これらすべての本当の秘密はあなたがすることですいいえポート80の占有を確認してください。何もない。私は数年前にFedora 15をインストールしたときにこれを噛みました。私の考えでは〜しなければならないこの動作を防ぐために、ずっと前に設定ユーティリティを修正しました。間違った!