私が所有するWordPressサイトの固定ページ(トップページに設定)を編集画面を開くと本文が「内容が真っ白」、更新すると「Allowed memory size of xxxx bytes exhausted・・・」という表示が出て、サイトが表示されない。
「Allowed memory size of xxxx bytes exhausted・・・」とは何なのか?
「Allowed memory size of xxxx bytes exhausted・・・」というエラー表示した時の対処方法について調べてみた。
1つの方法を試したところ、エラー表示が出なくなった。
「Allowed memory size of xxxx bytes exhausted・・・」エラーが発生した状況と原因・対処方法をご紹介します。
「Allowed memory size of xxxx bytes exhausted・・・」の原因
エラー表示の状況
私が所有するordPressサイトの固定ページ(トップページに設定)で以下の問題が発生した。
②更新すると、以下のエラー表示(致命的エラー)
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 57344 bytes) in /home/サイトURL/wp-includes/class-wpdb.php on line 2153
このサイトで重大なエラーが発生しました。対応手順については、サイト管理者のメール受信ボックスを確認してください。
尚、私はページの編集は旧エディターを使っている。
いつからおかしくなったのか?
このエラーが出るようになったのは、WordPressバージョンを「WordPress 6.1.1 」にアップしてからだ。
しかし、不思議なことだが、上記の2つのエラーが出るのが、固定ページでもトップページに設定した固定ページのみだ。
さらに、私は複数サイトを所有しているが、他のサイトでは、こういったエラーが生じていない。
とりあえず、以下の対処方法を取った。
対処方法
編集画面の本文が「内容が真っ白」
「WordPress 6.1.1 」から、編集画面の右にあるサイドメニューの一番下に「エディター」と言う項目が出るようになった。
「ブロックエディターに切り替え」をクリックすると、「Allowed memory size of xxxx bytes exhausted・・・」といったエラー表示画面が出る。
そこで、「←」をクリックして戻ると編集画面の本文が表示するようになった。
「Allowed memory size of xxxx bytes exhausted・・・」
固定ページの本文を編集して「更新」。
すると、「Allowed memory size of xxxx bytes exhausted・・・」と表示。
そこで、一旦、「←」で戻り、「固定ページを表示」をクリックすると、正常に表示される。
この方法でトップに設定している固定ページの編集は可能だが、面倒過ぎる。
そこで、エラーの問題箇所を確認してみることにした。
エラーの問題箇所を確認
「in /home/サイトURL/wp-includes/class-wpdb.php on line 2153」とあるので、ドメインを置いているレンタルサーバー(エックスサーバー)で、wp-includes⇒class-wpdb.phpの2153行目を確認。
しかし、どれが「line 2153」か分からないので、一旦メモ帳にコピー。
すると、以下の箇所だった。
while ( $row = mysqli_fetch_object( $this->result ) ) {
この表示がおかしいのか?
ところが、エラーが出ない他のWordPressサイトで調べてみたが、この部分は同じだった。
一体、何が問題なのだろうか?
「Allowed memory size of xxxx bytes exhausted・・・」対処方法
「Allowed memory size of xxxx bytes exhausted・・・」とは?
「Allowed memory size of xxxx bytes exhausted・・・」とは、どういう意味なのだろうか?
「Allowed memory size of xxxx bytes exhausted・・・」とは、「xxxxバイトの許容メモリサイズが使い果たされました。」という意味だ。
私の場合、「268435456 bytes」となっており、これは268Mである。
「Allowed memory size of xxxx bytes exhausted・・・」というPHPエラーはphp.iniやPHPコードで指定している最大メモリより大きなファイルを扱おうとした際に発生するエラーだそうだ。
※参照記事:Allowed memory size of エラーの発生原因と修正案
対処方法は色々あるようだが、私は一番簡単なphp.iniを編集する方法を取った。
php.iniを編集
エックスサーバー では、ドメインの管理画面で「php.ini設定」という項目がある。
そして、「php.ini設定変更」→「その他」に「memory_limit」がある。
この値が初期設定では200Mであった。
私の場合、268M>200Mとなり、エラーが出る訳だ。
そこで、200Mを512Mに変更→「確認画面へ進む」→「変更する」
変更が反映するまで最大5分かかるという表示が出たが、1分後に、エラーが表示した固定ページを①開く、②編集後更新してみたが、正常に表示した。
尚、「memory_limit」の値の上限は、サーバーによって異なるようだ。
私のケースでは、300Mでも良かったが、思い切って512Mで設定したところが、変更が出来たので良かった。
「Allowed memory size of xxxx bytes exhausted」エラーの原因と対処方法【まとめ】
私が所有するWordPressサイトの1つが、トップページに設定した固定ページの編集に関して、「本文が真っ白」更新すると、「Allowed memory size of xxxx bytes exhausted・・・」というエラーが表示してサイトが表示しないという問題が発生した。
原因そのものは解決していないが、「php.ini設定」の「memory_limit」の値を大きくする事で、エラー表示しなくなった。