【WordPress PHPエラー】Fatal error: Allowed memory size of xxx bytes exhausted

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 430080 bytes) in /home/xxxx/public_html/xxxxx.com/wp-includes/wp-db.php on line xxxx

WordPressで固定ページを編集しようと編集をクリックすると上記エラーが発生してしまいました。

PHPのメモリ不足が原因のようです

詳しく言うと、許可されているメモリサイズ(268435456 bytes = 256MB)を使い果たして、

さらに397312 bytes(約388KB)の追加メモリ割りあてようとしたら失敗したようです

おそらく原因は固定ページ内に大量の画像ブロックを配置しているから

メモリの上限

メモリの制限は複数の層で設定されています

レンタルサーバー(PHP)の制限 php.ini による制限 (例:256MB) WordPress の制限 wp-config.php による制限 WordPressの制限は、PHPの制限を超えることができません
  1. レンタルサーバー(PHP)の制限
  • サーバーのphp.iniファイルで設定される制限
  • サーバー全体のPHPスクリプトに適用される最大メモリ使用量
  • レンタルサーバーの管理画面やFTPでphp.iniをアップロードすることで変更可能
  1. WordPressの制限
  • WordPressのwp-config.phpファイルで設定される制限
  • PHPの制限を超えて設定することはできない
    • 例:PHPの制限が256MBの場合、WordPressで512MBと設定しても256MBまでしか使用できない

1)サーバー全体のPHPで設定されるメモリ制限

これが最も上位の制限となり、この値を超えることはできない

通常、レンタルサーバーの管理画面やサポートでのみ変更可能

メモリの確認方法

ルードディレクトリに下記の様なphpファイルを設置しアクセスし、memory_limitを確認できます

info.php

<?php phpinfo(); ?>

↓アクセスしてみるとメモリ上限が確認できます

php.iniで上限をふやせます

お名前ドットコムをレンタルサーバーで使用している場合は下記の記事を参考できます。

ご利用サーバーのFTPサーバーへご接続いただき、該当ドメインディレクトリ直下に
エラーの内容以上のメモリサイズを記述した「php.ini」ファイルを設置(アップロード)してください。
※既に「php.ini」ファイルを設置されている場合には、同ファイルを修正してください。

2)WordPress側のメモリ

  • WP_MEMORY_LIMIT:通常時の制限(デフォルト40M)
  • WP_MAX_MEMORY_LIMIT:管理画面での制限(デフォルト256M)

ワードプレスのメモリは管理画面のツールのサイトヘルスから確認できます

一時的にメモリ制限を大幅に引き上げる方法:

// wp-config.phpに追加
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

wp-config.php冒頭の<?phpの次の行に追記しました

↓サイトヘルスで変更が確認できました

対処法

今回のエラー

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate…

はどちらのエラー??

Fatal error: [エラーの説明] in [ファイルのパス] on line [行番号]

はPHPのエラーメッセージの形式

WordPressメディアライブラリから画像データそのものを削除すると、固定ページ上のギャラリーブロックに関連付けられていた画像の参照が切れ、メモリ消費が減少するため、編集画面に遷移できる可能性が高い

ただし、以下の点に注意が必要です:

  1. メディアライブラリから画像を削除した場合:
  • 固定ページ上のギャラリーブロックは残りますが、削除した画像は「見つかりません」や空の枠として表示される
  • ブロックエディタで開くと、画像が欠落したギャラリーブロックとして表示される
  • サイト上では画像が表示されなくなる
  1. 推奨される手順:
  • まずサイトとデータベースのバックアップを取る
  • メディアライブラリから、問題のページで使用している画像を一部削除
  • 編集画面にアクセスできるようになったら、不要なギャラリーブロックを整理
  • 必要な画像は最適化して再アップロード
  1. より安全な代替アプローチ:
  • まず、wp-config.phpでメモリ制限を一時的に引き上げてから
  • 画像の整理と最適化を行う方が、データの制御がしやすい

このアプローチで編集画面にアクセスできるようになったら、今後のために:

必要に応じてギャラリーの分割 を検討することをお勧めします。

画像サイズの最適化

1ページあたりの画像数の制限

ワードプレスのデバッグモードを有効にして詳細なエラー情報を確認:

// wp-config.phpに追加
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);