#WordPress エラー出力のかたち

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内の赤のところを変更する、という方法で↓ここで触れた方法に似ています(コードは違うが)。

 

参考:URL 変更で WordPress 管理画面に入れなくなったときの対処法

 

ロリポップの場合

 

ただ、レンタルサーバーでロリポップをお使いの場合、PHP設定変更によりブラウザにエラーが吐き出されます。

 

参考:HTTP ERROR 500というエラーが発生します

 

本記事の目的は、そのエラー集を提供することにあります。

 

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接続でファイルではなくフォルダをアップロードする

参考3#WordPress HTTP 500 エラー

 

なかにはWordPressを再インストールするのが手っとり早い、と書いているブログもありましたが、それはお勧めできません。

 

参考4:ロリポップWordPress簡単インストールができない!

参考5:フレンドサーバーのWordPress自動インストールは使っちゃダメ!

 

あくまでFTP接続をしてWordPress手動更新をしてください。

 

やり方は上記参考1参考3までに書きました。

 

・・・・・・・

 

それでは、今回はここまでです。

 

最後まで読んでいただき、ありがとうございました。m(_ _)m

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