web-dev-qa-db-ja.com

Apacheが起動しない問題を解決する最良の方法は?

最近、プライマリサーバーがダウンした場合に備えて、すべてのデータをミラーリングするバックアップサーバーを取得しました。

すべてのサイトデータをrsyncで更新し、すべてのApache構成とデータベースを更新しました。どちらのマシンもUbuntu 9を使用しています(プライマリは9.04、バックアップは9.10)。

したがって、この時点ではほとんどすべてが同期されているように見え(ユーザーの同期を把握する必要があります)、Apacheを起動しようとします。私は得る

* Starting web server Apache2                                       [fail]

問題が何であるかを示すものは他にありません。

私はあなたたちからの解決策を期待するのに十分な情報を持っていないので、この問題をさらに調査するためにここからどこに行くことができるか知りたいのですが。このためのエラーログはありますか?

ありがとう!

8
Lowgain

一部の特定のケースでは、ログエントリはディスクに書き込まれません-これは、たとえばログが存在しない場合や、アクセス許可の問題などのためにApacheが単にログファイルに書き込むことができない場合に発生する可能性があります。そのような場合、エラーを診断する最良の方法は、 `strace 'を使用することです:

[root@server ~]# strace -Ff apachectl start

出力はかなり冗長になりますが、Apacheが何らかの理由で起動に失敗した場合、末尾にwrite()が表示され、その内容とともにwouldの内容がログに入力されます失敗しています(エラーログに理由が記録されていない場合でも、エラーメッセージに「ログを開くことができません」とログへのパスが含まれていても驚かないでください;)。

Mod_fcgidに関するコメントを見ながら、Apacheの構成を確認し、mod_fcgidへの参照を調べることをお勧めします。モジュールをロードするのではなく、リテラルの「mod_fcgid」ファイルを開こうとしているようです。

11
kale

httpd -tは設定ファイルの構文をテストし、エラーをターミナルに出力します。

エラーはすべてエラーログに出力する必要があります(多くの場合、/ var/log/http/error_logsにあります。httpd.confのErrorLogのGrepで場所を確認してください。

2つのウィンドウを使用することをお勧めします。 1つのウィンドウで「tail -f error_log」を実行し、別のウィンドウを使用して「apachectl restart」コマンドを実行します。エラーを見つけたら、ここでエラーメッセージを使用して回答を更新します。

3

Mac OSでのApacheサーバーのデバッグに関しても同様の問題があったため、私の経験を共有して他の人を救うことにしました。

  1. ログを見つける:

apachectl -S | grep log

  1. 出力には、エラーの例を探すために開始できるいくつかのログファイルがあります。

tail -n 15 /var/log/Apache2/ssl_engine.log

複数のログファイルがある場合は、Apacheが起動しない原因となるエラーが見つかるまで、ログファイルを調整し続けます。

2
talsibony

Apacheが実行されていない場合は、Skypeポートを確認します。ほとんどの場合、SkypeとApacheの両方がポート80を使用しています。つまり、SkypeがApacheを起動できない理由である可能性があります。インストールされている場合はスカイプを停止します。

0
Biffon Momanyi