管理しているサイト(WordPress)で、投稿を編集するページに移行しようとすると、エラー「HTTP ERROR 500」になってしまい投稿を編集出来なくなってしまいました。
もう少し詳しく説明すると、エラーが発生するのは1記事だけで、他の記事はなんの問題もなく投稿を編集できる状態でした。
〇〇(サイト名)では現在このリクエストを処理できません。
HTTP ERROR 500
Chromeではこのような表示になり、Safariでは何も表示されません。
素人なりに試行錯誤した結果、なんとか復旧できましたのでその内容をメモとして書き留めておきます。
ちなみに、以下の環境で発生したエラーです。
- WordPress
- サーバー ロリポップ
- 使用テーマ Cocoon
なかなか解消できないHTTP ERROR 500
HTTP ERROR 500はプログラムが原因で発生している可能性が高いと言われています。
いくつかのサイトの情報をもとに下記を試してみましたが、今回はいずれでも解消出来ませんでした。
1.ブラウザのキャッシュクリア
ブラウザのキャッシュクリアやリロードでは何も変化ありませんでした
2. プラグインの全停止
導入している全てのプラグインを停止してみましたが、エラーは解消出来ませんでした。
3.WordPressをデバッグモードにしてエラーメッセージを確認
サーバーでwp-config.phpにアクセスし、WP_DEBUGをtrueにしたところ、該当ページで下記メッセージが表示されました
Warning: Use of undefined constant script_loader_tag_handle – assumed ‘script_loader_tag_handle’ (this will throw an Error in a future version of PHP) in /home/users/2/weblike.jp-〇〇/web/◯◯/wp-content/plugins/pixabay-images-gallery/pixabay-images-gallery.php on line 30
プラグイン「pixabay-images-gallery」が怪しそうでしたが、プラグインを停止だけでなくサーバーから削除してもエラーは解消してませんでした。
4.phpのバージョンアップ
phpをバージョンアップしてみましたが駄目でした
PHPの「display_errors」を「On」にしたことが解決の糸口に
ロリポップのサポートサイトに、HTTP ERROR 500が発生した際のヒントが掲載されていました。
「HTTP ERROR 500はプログラムが原因で発生している可能性が高いのでサポート対象外」と書かれているのですが、同時に、
PHP設定にて「display_errors」を「On」にすることでエラーログが確認できるようになる場合がございます。
とも書かれていて、結果的にHTTP ERROR 500を解決したきっかけとなりました。
以下はロリポップで「display_errors」を「On」にする方法ですが、別サーバーでも何かしらの方法で同じことができるようです。(簡単に操作できるロリポップで助かりました)
・ユーザー専用ページ内の『サーバーの管理・設定』>『PHP設定』をクリック
・エラーが発生しているドメインの「php.ini」の「設定」をクリック
・「display_errors」を「On」に変更
・画面下部の「php.iniの変更」をクリック
・HTTP ERROR 500 が発生したページにアクセス
「display_errors」を「On」にしたところ、以下のエラーメッセージが表示されました。
Fatal error: Unknown: Cannot use output buffering in output buffering display handlers in Unknown on line 0
正直、このエラーメッセージを見ても何のことやらさっぱり分かりませんでしたが、そのまま検索したところ解決の方法が見つかりました。
HTTP ERROR 500の原因は多すぎるリビジョンだった
HTTP ERROR 500の原因は、該当記事のリビジョンが多すぎたせいでした。
該当記事のリビジョン数は455あり、他の記事よりも断トツに更新頻度の多い記事でした。
リビジョンを管理するプラグイン(Optimize Database after Deleting Revisions)を導入し、不要なリビジョンを削除したところ、無事HTTP ERROR 500は解消し、投稿を編集できる状態となりました。
以下のサイトを参考に解決できましたので、詳細はぜひリンク先をご確認下さい。(助かりました!)
詳細:WordPressの編集画面で”Fatal error” 発生⇒原因は多すぎるリビジョン数。対策と再発防止策をご紹介。
まとめ:リビジョンの管理は大切だった
リビジョン数が多すぎるとあまり良くないという認識がうっすらありましたが、まさかエラー発生の原因になるとは思いませんでした。
更新頻度の高い記事は要注意ですね。
もしもHTTP ERROR 500が発生した記事が更新頻度の高い記事ならば「リビジョン数の削除」をお試し下さい。
コメント