サイト管理のCMSとして圧倒的シェアを誇るWordPressですが、使用しているとエラーに遭遇することも多くあります。このサイトも度々エラーが出ているので、もしかするとサイト訪問時にエラーが表示されていたという人もいるのではないでしょうか。
今回は「Fatal error」が表示されてログインできなくなった際に、試行錯誤した結果、意外な方法であっさり直ってしまったので、エラーが出た際には一度試していただきたいと思い、記事にしてみました。
Fatal errorとは
Fatal errorについてChatGPTによる分かりやすい解説は以下の通りです。
Fatal error(致命的エラー)とは、プログラムやシステムが正常に動作を続けることができなくなる重大なエラーのことを指します。このエラーが発生すると、プログラムは直ちに実行を停止し、修復処理や再起動が必要になる場合があります。
簡単に言えば、「何らかの問題によりプログラムが動作しなくなっている」ということです。
そして今回、表示されたエラーは以下の通り。
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 262144 bytes) in /home/ドメイン/public_html/wp-includes/pluggable.php on line 694
ChatGPTによると
このエラーメッセージは、PHPが実行中に許可されたメモリ量(268,435,456バイト、つまり256MB)を超えてしまい、新しいメモリ(この場合は262,144バイト、つまり256KB)を確保できなかったことを示しています。
これは「実行するために必要なメモリーが確保できずに止まってしまった」というエラーのようです。
Xserverではサーバーパネル上の「PHP」の項目から「php.ini設定」を選ぶことでこのサイズを変更することができます。
「256M」に設定されていたため、これを「1G」に変更します。
そして得られた結果がこちら。
Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 20480 bytes) in /home/ドメイン/public_html/wp-includes/class-wp-user.php on line 527
Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 20480 bytes) in /home/ドメイン/public_html/wp-includes/functions.php on line 650
増やしても足りないどころかエラーの数が増えています。
その後、サーバーの上限までメモリを増やしても結果は同じでした。
WordPressリカバリー
調べてもメモリを調整する以外の答えがなかなか見つからなかったので、一旦WordPressをリセットする方法を探したところ、Xserverではサーバーパネルの「WordPress」内にある「WordPressリカバリー」が使用できるとのこと。提供されているのは以下の機能です。
- 正しく表示されなくなったWordPressの復旧
エラーが表示されたり白画面などで正しく表示されなくなったWordPressの問題箇所を調べ、 復旧作業を行います。- 不正アクセスを受けたWordPressの復旧
不正ファイルを設置されたWordPressを投稿記事などの重要データを残したうえで、ファイル・ディレクトリの削除・再作成を行います。- ログインできなくなったWordPressの復旧
WordPress管理画面にアクセスできない問題の復旧を行います。- ログインパスワードのリセット
WordPressの管理者ユーザーのパスワードを再発行します。- WordPress本体のリセット
WordPressをインストール直後の状態に戻します。
記事やメディアデータなどのファイルを残したうえで初期化することも可能です。
どの処理でもデータを残したまま、WordPressを初期化・復旧させることができるので、よく分からないエラーが出たら、一番最初に頼ってみるのもありかもしれません。
今回はログイン画面で表示されていたので「3.ログインできなくなったWordPressの復旧」を選択。
結果は…
サイトを診断しましたが、問題を検出できませんでした。
こういうこともあるようです。
その後、「1.正しく表示されなくなったWordPressの復旧」も試しましたが結果は同じで、「5. WordPress本体のリセット」も行いましたが、Fatal errorが消えることはありませんでした。
すべてのプラグインを停止する
原因も解決法もさっぱり分からないままだったのですが、メールを確認すると前日にプラグインの更新が行われた通知が入っていました。おそらくこれが原因なので、停止させて様子を見ましょう。
現状、ログインすることができなくなっているので、サーバーのファイル管理画面から停止させます。
Xserverでは、ファイルマネージャーから「ドメイン」→「public_html」→「wp-content」の順で移動します。次に「plugins」の名前を変更します。元に戻すことも考えて「plugins_0」にしました。
この状態でログイン画面に移動すると、Fatal errorが消えて、正常に表示されるので普段通りログイン。
このままではプラグインが読み込まれないので、ファイルマネージャーで変更したフォルダ名を「plugins」に戻して、管理画面を再読み込みすれば元通りです。
まとめ
メモリを調整してもFatal errorが消えない場合は、この方法を試してみてください。