WordPressの500 Internal Server Errorの直し方|.htaccess・プラグイン・PHP

WordPressの500 Internal Server Errorの直し方|.htaccess・プラグイン・PHP ブログ運営

ブログを開いたら「500 Internal Server Error」。管理画面にも入れない…。WordPressでは、プラグインの更新やPHPバージョンの変更をきっかけにこのエラーが出ることがあります。

このブログもConoHa WINGのWordPressで運用しています。この記事では、ConoHa WINGとWordPressの公式情報をもとに、500エラーの切り分け方と直し方を順番にまとめます。

結論
WordPressの500 Internal Server Errorは、「サーバー側でプログラムが正しく動いていない」というサインで、原因の多くは①.htaccessの記述ミス、②プラグイン・テーマの不具合、③PHPバージョンとの非互換のどれか。直す順番は、エラーログを見る → .htaccessをリネームして確認 → pluginsフォルダ(またはプラグイン個別)をリネームして確認 → PHPバージョンを見直す。触る前にバックアップを取り、確認後はリネームしたものを必ず元に戻す。

スポンサーリンク

WordPressの500 Internal Server Errorとは?まず落ち着いて確認すること

「500 Internal Server Error」は、ブラウザからのリクエストは届いたものの、サーバー内部で処理に失敗したときに返されるエラーです。ConoHa WINGのサポートでも、500エラーはプログラムが正しく実行できていない可能性があるとして、まずエラーログを確認するよう案内されています。

表示のされ方と状況で、原因の当たりをつけられます。

  • サイト全体(トップも記事も管理画面も)が500 — .htaccess の記述ミスや、PHPバージョンの変更が疑わしい
  • 「重大なエラー」の表示、または特定の操作の後だけ500 — 直前に更新・追加したプラグインやテーマが疑わしい
  • いつもは表示できるのに、ときどき500になる — 一時的な負荷や処理の上限に当たっている可能性。エラーログで確認する

なお、「閲覧できません (Forbidden access)」と表示される場合は500ではなく403で、ConoHa WINGのWAFによるブロックです。対処法がまったく違うので、こちらの記事を参照してください。

スポンサーリンク

500エラーの主な原因と見分け方(一覧表)

直前に自分が何をしたかを思い出すと、最短で原因にたどり着けます。

原因よくあるきっかけ確認・対処
.htaccess の記述ミス.htaccess を手で編集した/リダイレクト設定やセキュリティプラグインを入れた.htaccess をリネームして表示が戻るか確認
プラグインの不具合・競合プラグインの追加・更新の直後plugins フォルダ(または個別フォルダ)をリネーム
テーマ(functions.php)の不具合テーマ更新、functions.php の編集の直後エラーログでファイル名を確認し、編集を戻す
PHPバージョンとの非互換PHPバージョンを変更した/古いプラグインを使っているコントロールパネルでPHPバージョンを見直す
メモリなど処理の上限重い処理(大量の画像・インポート等)をしたときエラーログで「memory」等の記録を確認

【手順1】ConoHa WINGでエラーログを確認する

闇雲にファイルを触る前に、まずエラーログを見ます。ログには止まったファイルと行が書かれていることが多く、原因がそのまま分かる場合もあります。

  1. ConoHaのコントロールパネルにログインし、上部メニューの「WING」をクリック
  2. 左メニューの「サイト管理」をクリック
  3. サイト管理の左メニューから「アクセス解析」を開く
  4. 上のタブで「ログ」を開き、エラーログを確認する

公式サポートによると、コントロールパネルで見られるエラーログは直近300行までです。それより前の記録が必要なときは、ログ保存設定画面で保存先のパスを確認すれば、ログファイルをダウンロードできます。

ログに wp-content/plugins/プラグイン名/ のようなパスが出ていればそのプラグインが、wp-content/themes/テーマ名/ ならテーマが怪しい、と当たりをつけられます。コントロールパネルへのログイン自体ができない場合は、先にこちらの記事で解決してください。

【手順2】.htaccess をリネームして原因か確認する

ConoHa WINGのサポートでは、500エラーのよくあるケースとして .htaccess の記述ミスが挙げられています。.htaccess はサーバーの動きを決める設定ファイルで、1文字の間違いでもサイト全体が500になることがあります。

注意
.htaccess を編集・リネームする前に、必ず中身をメモ帳などにコピーして保存しておいてください。また、ConoHa WINGでドメインごとにPHPバージョンを変えている場合、.htaccess には「AddHandler」から始まる記述が自動で入っています。公式サポートでは、この記述を削除すると不整合が生じる可能性があるとされているので、消さないようにしましょう。

  1. コントロールパネルの「サイト管理」→「ファイルマネージャー」を開く
  2. public_html/ドメイン名/ の中にある .htaccess をダウンロードしてバックアップする
  3. .htaccess の名前を .htaccess_bak などに変更する
  4. サイトを再読み込みして、500エラーが消えるか確認する

エラーが消えたら、原因は .htaccess の中身です。バックアップと見比べて、最近追加した記述(リダイレクト設定やセキュリティプラグインが書き込んだ部分など)を見直します。修正できたら、公式の案内どおりリネームしたファイルを元の名前に戻してください。.htaccess が無いままだと、パーマリンクやSSLのリダイレクトなどが正しく動かなくなる可能性があります。

SiteGuard WP Pluginでログインページを変更している場合も、.htaccess に専用の記述が追加されています。公式サポートでは、この記述の削除や .htaccess の無効化で改善するケースも案内されています。プラグインの仕組みはこちらで解説しています。

【手順3】プラグイン・テーマを無効化して切り分ける

次はプラグインです。管理画面に入れなくても、フォルダ名を変えればプラグインを止められます。

  1. ファイルマネージャーで public_html/ドメイン名/wp-content/plugins/ を開く
  2. エラーログで怪しいプラグインが分かっていれば、そのフォルダだけ名前を変える(例:plugin-name_off)
  3. 分からなければ、直前に追加・更新したプラグインから1つずつ名前を変えて、そのたびにサイトを確認する
  4. エラーが消えたら、そのプラグインが原因。管理画面に入り、更新・再インストール・代替プラグインへの切り替えを検討する

原因が分かったら、関係ないプラグインのフォルダ名は元に戻し、管理画面で有効化されているか確認しておきましょう。

「重大なエラー」メールが届いている場合(リカバリーモード)

WordPress 5.2以降では、致命的なエラーが起きると管理者のメールアドレスに通知が届き、そこに書かれたリンクから「リカバリーモード」で管理画面に入れます。リカバリーモードでは、エラーを起こしているプラグインやテーマが表示されるので、管理画面から無効化できます。リンクには有効期限があり、期限切れ後に再びエラーが起きると新しいリンクが送られます。メールはサーバーから直接送られるため、迷惑メールフォルダに入っていることもあります。

テーマが原因の場合

エラーログにテーマのファイル(とくに functions.php)が出ている場合は、直前に編集した箇所を元に戻すのが近道です。戻せない場合は、wp-content/themes/ の該当テーマのフォルダ名を変えると、インストール済みの別テーマで表示を試みます(別テーマが無いとうまくいかない可能性があります)。

【手順4】PHPバージョンを見直す

PHPバージョンを上げた直後に500エラーが出た場合は、使っているプラグインやテーマが新しいPHPに対応していない可能性があります。ConoHa WINGでは、コントロールパネルから元のバージョンに戻せます。

  1. コントロールパネルで「WING」→「サイト管理」→「サイト設定」を開く
  2. 上のタブから「応用設定」を開き、「PHP設定」を開く
  3. 「PHPバージョン」の右にある鉛筆アイコン(編集)をクリック
  4. プルダウンから変更前のバージョンを選んで「保存」する

古いバージョンに戻すのは応急処置です。表示が戻ったらプラグイン・テーマを更新し、対応状況を確認してから改めてバージョンを上げましょう。

それでも直らないときの確認ポイント

WP_DEBUG でエラー内容を記録する

サーバーのエラーログで原因が分からないときは、WordPressのデバッグ機能を使う方法があります。WordPress公式ドキュメントによると、wp-config.php の「編集が必要なのはここまでです」のコメントより前に次の3行を書くと、エラーが wp-content/debug.log に記録され、画面には表示されません。

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

公式ドキュメントでは本番サイトでの常用は推奨されていません。原因が分かったら WP_DEBUG を false に戻し、debug.log も削除しておきましょう。

サーバー側の障害・メンテナンスを確認する

何も変更していないのに突然500になった場合は、サーバー側の障害の可能性もあります。ConoHaの障害・メンテナンス情報を確認し、分からなければエラーログと試した対処を添えてサポートに問い合わせましょう。

公式情報は エラーログ・アクセスログを確認する|ConoHa WINGサポート、PHPの設定をする|ConoHa WINGサポート、Debugging in WordPress(WordPress公式・英語) で確認できます。

500エラーを防ぐための予防策

  • 更新前にバックアップを取る — ConoHa WINGの自動バックアップの有無を確認し、大きな更新の前は手動でもファイルとデータベースを保存しておく
  • プラグインは一度にまとめて更新しない — 1つずつ更新すれば、500が出たときに原因がすぐ分かる
  • .htaccess・functions.php を編集する前にコピーを取る — 元に戻せる状態を作ってから触る
  • PHPバージョンを上げる前に対応状況を確認する — プラグイン・テーマの更新履歴や対応バージョンを見てから切り替える

よくある質問

Q. 500エラーが出ている間、Googleの検索順位に影響はありますか

A. 短時間であれば大きな影響は出にくいと考えられますが、長く続くとクローラーがページを読めず、インデックスや表示に影響する可能性があります。直ったら Search Console の URL検査で、ページが正常に取得できるか確認しておくと安心です。

Q. WordPressを再インストールすれば直りますか

A. ConoHa WINGのサポートでは、まだ記事を投稿していない状態であれば再インストールで設定をリセットする方法も案内されています。ただし、すでに記事があるサイトでは記事や設定が失われるおそれがあるため、まずはこの記事の手順1〜4で原因を切り分けてください。

Q. 管理画面だけ500エラーになり、サイトは表示されます

A. 管理画面でだけ動くプラグインの処理が原因の可能性があります。エラーログを確認し、手順3の方法で切り分けてください。

まとめ

・WordPressの500 Internal Server Errorは、サーバー内部でプログラムが正しく動いていないサイン
・最初にConoHa WINGの「サイト管理」→「アクセス解析」→「ログ」でエラーログを確認する
・.htaccess をリネームして表示が戻れば、.htaccess の記述ミスが原因(AddHandlerの記述は消さない)
・プラグインはフォルダ名を変えて1つずつ切り分ける。「重大なエラー」メールが届いていればリカバリーモードも使える
・PHPバージョンを変えた直後なら、いったん元に戻してからプラグイン・テーマを更新する
・作業前のバックアップと、確認後にリネームを元に戻すことを忘れない

タイトルとURLをコピーしました