WordPress サイトで 500 Internal Server Error が発生したときのメモ

September 1, 2014

先日、WordPress の管理画面をポチポチやっていたら、いきなり遭遇しました。

500 Internal Server Error

特に何かを変更したわけではなく、左端の管理メニューで画面を切り替えただけでした。

この記事は、筆者のサイトで発生した 500 Internal Server Error への対応をまとめたメモです。

落ち着いて冷静になる

今だから言えますが、まずは落ち着いて冷静になることが大事です。
サイトの設定や各種ファイルをいじくり回す前に、バックアップを取りましょう。

エラーが起きている状態のバックアップを取っても解決策にはなりません。しかし、手探りの復旧作業の結果、さらに取り返しのつかないことになる可能性は十分にあります。また、結果的に 1ファイルを修正すれば直ったのに、そこに行き着くまでに多数のファイルを変更してしまうこともあるでしょう。

あのころに戻りたい…… その願いを叶えてくれるのがバックアップです。

バックアップの取得方法

お使いのサービスによって方法は異なりますので、オンライン マニュアル等をご参照ください。

筆者の利用しているドメインキングのレンタル サーバーですと以下です。

ドメインキングの管理ツールは Parallels 社の Plesk です。
(2014年 9月現在、バージョン 11 が導入されているようです)
同じ管理ツールならば、同じ方法でバックアップが取れると思います。

(参考)

システム的なバックアップ方法が用意されていない場合は、ファイルを変更するときに個別にバックアップしておきましょう。

http 500 Internal Server Error とは

バックアップを取ったなら、Google 先生に涙目で助けを求め、出てきた対処方法を手当たり次第に試すのも悪くありませんが、まだ早いです。状況を見極めるために、サーバーで何が起きているのかを調べてみましょう。

手始めに、今回の敵、500 Internal Server Error とは何ぞや。
ウィキペディアによると、

サーバ内部エラー。サーバ内部にエラーが発生した場合に返される。
例として、CGIとして動作させているプログラムに文法エラーがあったり、設定に誤りがあった場合などに返される。

とのこと。

サーバ内部エラー……? 大雑把すぎて何と戦えばよいのか分かりませんが、はっきりしていることが一つあります。
このエラーは、Web サーバーが吐いている、つまり、サーバーは元気に稼動している、ということです。

元気なんだけど、何かお気に召さないことがあって WordPress(PHP)を実行してくれないのです。
Web サーバーくんは、エラー ログという気に入らないことを書き付ける閻魔帳を持っています。
それを見てみましょう。

エラー ログを確認する方法

これもお使いのサービスによって方法は異なりますので、オンライン マニュアル等をご参照ください。
ドメインキングの場合は以下の手順です。

  1. 管理画面にログインする
  2. ホーム画面の右側「自分の契約」から対象のサイトをクリック
  3. 「ウェブサイトとドメイン」タブをクリック
  4. 画面下方にある「高度なオペレーションを表示する」をクリック
  5. 「ログ」をクリック
  6. 画面下方のファイル一覧から「error_log」をクリック
    ※ポップアップ ウィンドウで表示されます。ポップアップを一時的に許可してください。

筆者のケースでは、以下のエラーが記録されていました。

[Sun Aug 17 13:04:39 2014] [alert] [client xxx.xxx.xxx.xxx] /var/www/vhosts/designhack.slashlab.net/httpdocs/.htaccess: 
</IfModule> without matching <IfModule> section, referer: http://designhack.slashlab.net/wp-admin/options-permalink.php

アタリをつける

エラーには「.htaccess」という見覚えあるファイル名が書かれています。
どうやらこのファイルがアヤシイ。

ftp でサーバーに接続してファイルを見てみます。
前述した通り、Web サーバーは元気なので問題なくつながると思います。

エラーを起こした .htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

うろ覚えで再現してみました。
どうしてこうなったのか見当もつきませんが、「# BEGIN WordPress」が 2つあるあたり、明らかにおかしいです。
正常な WordPress では以下のはずです。

以下は例です。あなたのサイトとは異なるおそれがあります。
特に RewriteBase は「/wordpress/」など、サイトの置かれているディレクトリ階層によって変化します。

正常な .htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

.htaccess を正しいと思われる内容に書き換えたところ、復旧しました。ほっとひと安心。

解決できないとき

Google 先生が頼りにならない場合、お使いのサービスのサポート窓口に問い合わせる選択肢もあります。
サーバー側(サーバー サービスの提供者側)の不具合ということも考えられますので、独りで悩まずにさっさと問合せてしまった方がよいかも知れません。

あとがき

WordPress は PHP で動作しており、PHP はサーバー権限を持っているため、ほとんどのファイルを自由に書き換えられます。今回の事象はレア ケースと思いますが、心配ならば .htaccess のパーミッションを読み取りのみに変更しておくと防ぐことができます。

また、日頃から定期的にバックアップを取っておくと、いざというとき安心です。
このメモがどなたかのお役に立てば幸いです。

10 thoughts on “WordPress サイトで 500 Internal Server Error が発生したときのメモ

  1. sasar

    こんにちは。

    自分も.htaccessのエラー404で2日も苦しんでいました。

    ドメインキングにも問い合わせしましたが、解決できずこちらのサイトに辿りつきました。

    上記、作成し直し、やっと解決できました。

    ありがとうございました。

    Reply
  2. nammy

    私もこれで解決しました。

    ありがとうございました!

    Reply
    1. Lore

      CHE RIDICOLO……50 ANNI CHE SI DIVERTE CON I ROSSO E CON I VERDI….. E CHE STRUNZ…..CAFARDO!!! VA AFFATICAAA….Uagliù, io la volevo mettere ‘a pazzià……..nun v’appiccicat !!a!!!!!!!!!!!!!!!!!ahah!hahhahaha mennixxn n pazziaaaaaaaDitacce mie che non vogliono stare ferme……… aggio fatt chistu guaio….

      Reply
  3. Pingback: WordPressで「500 Internal Server Error」の対処方法

  4. Pingback: 500 Internal Server Errorはphp.iniの設定ミスが原因でした

  5. Pingback: WordPressのドメイン移行でもう泣かないために | HAYAMIZ Blog

  6. Pingback: WordPressサイトでプラグイン更新後に500エラーが発生してログインすらできない時の対処法~WordPress覚書き~

  7. 佐藤 利明

    初めまして、佐藤です。
    wordpressで 500 Internal Server Errorが出て困っています。検索で貴方様のところにだどりつきました、
    PCについては完全な素人ですので解決できません。
    解決方法を教えていただけないでしょうか。
    勝手なお願いですがよろしくお願いします。

    Reply
  8. 中村と申します

    パソコンにてHP制作を始めて、少し進んだところでスマホで見て見たら「ロリポップ エラー500」と出てサイトが見れません。

    ムームードメインでドメイン取得、ロリポップでサーバーレンタルです。

    ワードプレスを導入した時はスマホでも見れていました。

    パソコンでなら今もずっと見れていますので、ワードプレス導入後にスマホでだけ見れなくなった状態です。

    何がどうなっているのかわからず困っています。

    もしわかりましたらぜひ教えてください。よろしくお願いいたします。

    Reply
  9. Pingback: Wordpressのアップデートはやはり怖い。とても怖い。 – 満足への果てしない道 | 練馬のリフォーム 山口建設

コメントを残す

メールアドレスが公開されることはありません。