HTTP ERROR 500が出たら
エラーの原因は運営者の記憶だよりになる。
こんばんは、編集長です。
私たちのサイトNewsOldsの復旧が一昨日、完了しました。
上掲画像のHTTP ERROR 500が出ると、基本的にレンタルサーバー側では対処してくれません。
理由は、HTTP ERROR 500は非常に範囲が広く、どんな障害でも発生するからです。極端な話、FTP接続して、WordPress内のファイルを全部消し去ればHTTP ERROR 500が出ます。
しかしデバッグをしてエラーを吐き出させることもできます(明確な障害原因があるならば)。
define('WP_DEBUG', false); ↓ define('WP_DEBUG', true); ・ 参考:サーバーのプラン変更による、HTTP ERROR 500について
wp-config.php内の赤のところを変更する、という方法で↓ここで触れた方法に似ています(コードは違うが)。
ロリポップの場合
ただ、レンタルサーバーでロリポップをお使いの場合、PHP設定変更によりブラウザにエラーが吐き出されます。
本記事の目的は、そのエラー集を提供することにあります。
wp-settings.phpでのエラー
最初に吐き出されたエラーをみると人生終ったような気がします。
しかし、解読は案外簡単です。
Warning: require(/home/users/1/******/web/wp-includes/pomo/mo.php): Failed to open stream: No such file or directory in /home/users/1/******/web/wp-settings.php on line 116
Fatal error: Uncaught Error: Failed opening required ‘/home/users/1/*********/web/wp-includes/pomo/mo.php’ (include_path=’.:/usr/local/php/8.1/lib/php’) in /home/users/1/*********/web/wp-settings.php:116 Stack trace: #0 /home/users/1/*******/web/wp-config.php(83): require_once() #1 /home/users/1/******/web/wp-load.php(50): require_once(‘/home/users/1/o…’) #2 /home/users/1/*******/web/wp-admin/admin.php(34): require_once(‘/home/users/1/o…’) #3 /home/users/1/*****/web/wp-admin/index.php(10): require_once(‘/home/users/1/o…’) #4 {main} thrown in /home/users/1/*******/web/wp-settings.php on line 116
*****はサイト名なので隠しました。
みるところは最後のwp-settings.phpのみ。そこでトラブルが起きている。
もっと根本的なトラブルだと、この情報すら出ないので、まだ回復の余地はある、とおもってください。
wp-includes/load.phpでのエラー
次のエラーです。
Warning: require_once(/home/users/1/*******/web/wp-includes/pomo/mo.php): Failed to open stream: No such file or directory in /home/users/1/*****/web/wp-includes/load.php on line 1308・
Fatal error: Uncaught Error: Failed opening required ‘/home/users/1/******/web/wp-includes/pomo/mo.php’ (include_path=’.:/usr/local/php/8.1/lib/php’) in /home/users/1/******/web/wp-includes/load.php:1308 Stack trace: #0 /home/users/1/******/web/wp-includes/class-wp-fatal-error-handler.php(173): wp_load_translations_early() #1 /home/users/1/******/web/wp-includes/class-wp-fatal-error-handler.php(153): WP_Fatal_Error_Handler->display_default_error_template(Array, false) #2 /home/users/1/*******/web/wp-includes/class-wp-fatal-error-handler.php(57): WP_Fatal_Error_Handler->display_error_template(Array, false) #3 [internal function]: WP_Fatal_Error_Handler->handle() #4 {main} thrown in /home/users/1/*******/web/wp-includes/load.php on line 1308
*****はサイト名なので隠しました。
みるところは最後のwp-includes/load.phpのみ。
これはwp-includes内のload.phpでトラブルが起きている、という意味です。
実は前述のwp-settings.phpのトラブルと、本トラブルは私たちのサイトでは同時に報告されました。
Simplicity2にエラーの原因が移動
以下はHTTP ERROR 500が出なくなり、まっとうな、つまりリカバリーメールが来るようになったときのエラーメッセージです。
Fatal error: Uncaught Error: Call to undefined function create_function() in /home/users/1/*******/web/wp-content/themes/simplicity2/lib/widgets/new-popular.php:243 Stack trace: #0 /home/users/1/******/web/wp-content/themes/simplicity2/lib/widget.php(4): require_once() #1 /home/users/1/********/web/wp-content/themes/simplicity2/functions.php(22): include(‘/home/users/1/o…’) #2 /home/users/1/*******/web/wp-settings.php(566): include(‘/home/users/1/o…’) #3 /home/users/1/******/web/wp-config.php(83): require_once(‘/home/users/1/o…’) #4 /home/users/1/******/web/wp-load.php(50): require_once(‘/home/users/1/o…’) #5 /home/users/1/******/web/wp-login.php(12): require(‘/home/users/1/o…’) #6 {main} thrown in /home/users/1/*******/web/wp-content/themes/simplicity2/lib/widgets/new-popular.php on line 243
これにはリカバリーメールが来たので、もう管理画面には入れるため、最悪の状況は脱した、というのが、このエラーメッセージをもらったときの感想でした。
意外なことに、Simplicity2が更新後について来れなかったようです。
具体的には、wp-contentフォルダ内、themesフォルダ内、simplicity2のウィジェットで故障が発生しているようです。
解決策を先に述べてしまうと、リカバリーモードでWordPress管理画面に入って、テーマをCocoonに変え、めでたくサイト復旧、となりました。
決してSimplicity2が直近の更新に耐えられないテーマ、ということではありません。私たちのいじくり方が、更新をサボっていたかたちになっていたのが原因でしょう。
リカバリーメール
さて、HTTP ERROR 500で立ち往生していた私たちにとっては、ほとんど福音になったリカバリーメールですが、どんなものか、読んでもらいたいとおもいます。
[NewsOlds] サイトで技術的な問題が発生しています
こんにちは。
WordPress 5.2から、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が追加されました。
今回の場合、WordPress がテーマ Simplicity2 でエラーを捉えました。
まずはじめに、ご自分のサイト (https://newsolds.com/) を開き、目に見える問題がないか確認してください。次に、エラーが発生したページ (https://newsolds.com/wp-admin/) を開き、同様に問題がないか確認してください。
この問題をさらに調査するにはサーバーホストに連絡してみてください。
もしサイトが壊れていてダッシュボードに正常に接続できない場合、WordPress には特別な「リカバリーモード」があります。これによりダッシュボードに安全にログインし、さらに調査をすることができます。
WordPress › Errorサイトを安全に保つため、このリンクは 1日 で有効期限が切れます。ですが、心配なく。有効期限後にこのエラーが再度発生すれば新しいリンクをお送りします。
この問題を解決しようとする際、以下の情報を聞かれるかもしれません。
WordPress バーション6.0.2
現在のテーマ: Simplicity2 (バージョン 2.6.0.9)
現在のプラグイン: (バージョン )
PHP バージョン8.1.10
エラー詳細
===============
エラータイプ E_ERROR が /home/users/1/******/web/wp-content/themes/simplicity2/lib/widgets/new-popular.php ファイルの 243 行目で発生しました。 エラーメッセージ: Uncaught Error: Call to undefined function create_function() in /home/users/1/*******/web/wp-content/themes/simplicity2/lib/widgets/new-popular.php:243
Stack trace:
#0 /home/users/1/******/web/wp-content/themes/simplicity2/lib/widget.php(4): require_once()
#1 /home/users/1/******/web/wp-content/themes/simplicity2/functions.php(22): include(‘/home/users/1/o…’)
#2 /home/users/1/*******/web/wp-settings.php(566): include(‘/home/users/1/o…’)
#3 /home/users/1/******/web/wp-config.php(83): require_once(‘/home/users/1/o…’)
#4 /home/users/1/******/web/wp-load.php(50): require_once(‘/home/users/1/o…’)
#5 /home/users/1/******/web/wp-admin/admin.php(34): require_once(‘/home/users/1/o…’)
#6 /home/users/1/******/web/wp-admin/index.php(10): require_once(‘/home/users/1/o…’)
#7 {main}
thrown
現在、上掲青のリカバリーモードリンク先は切れています(1日のみ)。
いずれにせよ、このメールが来た時点で問題は解消に向かっている、とおもってください。
解決に向けて
HTTP ERROR 500に対する解決としては、すでに記事を書いてきました。
手っ取り早くいえば、WordPressを手動更新することになります。
参考1:#WordPress 手動更新
・
参考2:#WordPress FTP接続でファイルではなくフォルダをアップロードする
・
なかにはWordPressを再インストールするのが手っとり早い、と書いているブログもありましたが、それはお勧めできません。
参考4:ロリポップWordPress簡単インストールができない!
・
あくまでFTP接続をしてWordPress手動更新をしてください。
やり方は上記参考1~参考3までに書きました。
・・・・・・・
それでは、今回はここまでです。
最後まで読んでいただき、ありがとうございました。m(_ _)m