エックスサーバーでエラーログを確認する方法

先日、自分のサイトを表示させたら500エラーが出ました。

500_internal_server_error

で、リロードして再表示したらエラーは出なくなったわけですが、もしこういった500エラーが頻発していたら、せっかく訪れてくれた訪問者を逃してしまうことになります。

しかし普通にサーバーを利用していて、こういったエラーは、いつ、どのくらいの頻度で出ているのかわかりづらいところがあります。

そういった場合のエラー確認方法として、エックスサーバーのアクセスログ確認方法を紹介したいと思います。

photo by Sibe Kokke

スポンサーリンク
レクタングル(大)広告

エックスサーバーでエラーログを確認

エックスサーバーでエラーログを確認するにはまず、サーバーパネルからログインします。

エックスサーバーのサーバーパネルからログイン

サーバーパネルが表示されたら、「ログファイル」をクリックします。

サーバーパネルからログファイルを確認

すると、サーバーに登録されているドメインが表示されるので、エラーログを参照したいドメインの「選択する」をクリックします。

ドメイン名の「選択する」をクリック

あとは、「エラーログの一覧」タブをクリックの後、表示された「ダウンロード」ボタンをクリックするとエラーログをダウンロードすることができます。

エラーログ一覧タブをクリックしてダウンロードボタンを押す

ファイルは、「ドメイン.error_log」という名前のファイルがダウンロードされます。今回の例で言うと「nelog.jp.error_log」というファイルがダウンロードされました。

エラーログの内容

エックスサーバーではPHPやCGIプログラムの実行、FTP接続、IMAP接続など全ての動作における合計に「同時稼動数」の上限が設けられています。

「同時稼動数」が上限に達するとPHPやCGIの実行で500エラーや503エラーが発生したり、
IMAP接続に失敗するという状況が発生します。

また、.htaccess等でアクセス制限をしている場合は、503エラーが書き込まれます。

先程ダウンロードしたファイルに、そのエラーログが書き込まれています。

僕の場合は、以下のようなログが書き込まれていました。

client denied by server configuration:

「client denied by server configuration: (中略)xmlrpc.php」のエラーに関しては、以前、Wordpressの「xmlrpc.php」ファイルへの攻撃が激しかったので、アクセス拒否したので、意図通りブロックされていることになります。

Wordpressで攻撃を受けやすいファイルとそのセキュリティー対策まとめ
先日、当サイトがやたら重くなり、500エラーを頻出したことがありました。 そのときは、以下の対策をとって、それ以降は500エラーを見るこ...
最近やたらとWordpressが攻撃されて500エラーになるので行ったセキュリティー対策まとめ
このサイトの運営にはエックスサーバーを利用しています。 僕はこのサーバーの最も安いプランを利用しているのですが、これがまたとても優秀で...

Premature end of script headers:

「Premature end of script headers:」というエラーメッセージが表示されている場合は、CGIの同時起動数が多くなり、アカウント単位のリソース制限がかかっている可能性がある場合だそうです。(エックスサーバーのサポートの方に聞きました)

これは、PHPファイルの同時接続数上限オーバーによる一時的なリソース制限が実施されたときにも表示されるようです。

エラーが出る事に1行追加されるので、5000アクセスでエラーが出た場合は、5000行表示されます。

ただエックスサーバーの場合、同時接続数の上限値については弊社非公開情報となるため明確なご案内を受けることはできません。なので、どれくらいの接続数がきたらリソース制限がかけられるかはわからない状態になっています。

このリソース制限は、上位プランに変更したとしても、上限の差異は無いそうなので、抜本的な解決にはならないそうです。

これらを、解消するには、キャッシュプラグインなどを使用して、サーバーのCPU負荷を減らすか、サーバー内の構成ファイルの見直しをするしかないのかもしれません。

PCとスマホを分けて綺麗に高速表示してくれるWPキャッシュプラグイン「W3 Total Cache」の簡単設定方法
前回、Wordpressのページキャッシュ設定に関する以下の記事を書きました。 上の記事は、Wordpressのページキャシュプラ...

今回、僕のエラーログを見た限りでは、1日につき3回程「Premature end of script headers:」エラーが出ていただけだったので、それほど深刻な500エラー状態ではないかと思っています。(もちろんエラーがでないのが一番ではありますが)

その他

そのほかには、以下のような、PHPやCGIの実行時エラーも表示されます。

  • Resource temporarily unavailable(PHP実行時)
  • suexec policy violation: see suexec log for more details(CGI実行時)

WordPressで、PHPの実行時エラーが出ている場合は、サイトが真っ白になっているので、そもそも普通に気づくかもしれません。

注意

エックスサーバーのエラーログは毎日3時に定期的に削除されます。なので、基本的に1日分しか見れません。過去にさかのぼってエラーメッセージを見るには、アクセスログを見る必要があるかもしれません。アクセスログはデフォルトの設定で1週間分保存されます。

まとめ

エックスサーバーを利用していて、自分でアクセスをしているときに、500エラーなどを見かけたときは、上に書いたような感じで、エラーログの確認はしておいた方が良いかもしれません。

あまりにも、「Premature end of script headers:」等のエラーが多く書き込まれている場合は、何かしらの対策をする必要があるかと思います。

対策してもダメな場合は、さらに良いスペックのサーバー(クラウドサーバ等)に移動する必要があるかもしれません。