① このエラーが起きる理由

WordPressはPHPというプログラミング言語で動いており、処理のために一定量のメモリ(PHP Memory Limit)を使用します。何らかの処理が、あらかじめ決められたメモリの上限を超えてしまうと、「Allowed memory size of ◯◯ bytes exhausted(許可されたメモリサイズ◯◯バイトを使い切りました)」というエラーメッセージとともに処理が中断し、画面が真っ白になったり、ページの一部しか表示されなくなったりします。

② よくある原因

③ メモリ上限を増やす3つの方法

いずれか1つを試し、解決しない場合は次の方法を試してください。

方法1:wp-config.phpを編集する

FTPまたはサーバーのファイルマネージャーでwp-config.phpを開き、「/* 編集が必要なのはここまでです! */」という行の直前に以下を追加します。

define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
2つの定数の違いWP_MEMORY_LIMITは通常のフロントエンド(訪問者向け画面)用、WP_MAX_MEMORY_LIMITは管理画面・アップデート処理用のメモリ上限です(管理画面側は初期設定で256Mが割り当てられます)。画像の一括編集やプラグイン更新時にエラーが出る場合は、後者も併せて引き上げてください。

方法2:.htaccessを編集する

WordPressのルートディレクトリにある.htaccessファイルに、以下の1行を追加します。

php_value memory_limit 256M
PHP-FPM環境では500エラーの原因になることがありますこの方法はApache+mod_php構成でのみ有効です。近年主流になっているPHP-FPM・Nginx環境でこの記述を追加すると、効果がないだけでなく即座に500エラーを引き起こすことがあります。追加後にサイトが表示されなくなった場合は、直ちにこの行を削除してください。どちらの構成か分からない場合は、まず方法1(wp-config.php)を先に試すことをおすすめします。

方法3:php.iniを編集する(サーバーが対応している場合)

レンタルサーバーによっては、php.iniというファイルを直接編集・アップロードできる場合があります。ファイル内に以下の行を追加、または既存の行を書き換えます。

memory_limit = 256M
256Mで解決しない場合512M・1024M等、より大きな値を試してみてください。ただし、後述の通りサーバー側の上限を超える値を指定しても効果がありません。

④ サーバー側の上限に達している場合

多くの共用レンタルサーバーでは、契約プランごとにPHPメモリの上限があらかじめ設定されており、上記の方法でその上限を超える値を指定しても、サーバー側の設定が優先されて反映されません。多くのレンタルサーバーのコントロールパネルには「PHP設定」「MultiPHP INI Editor」等の項目があり、そこからメモリ上限を確認・変更できる場合があります。設定変更の項目が見当たらない、または変更しても解決しない場合は、契約中のサーバー会社に直接問い合わせて、上限の引き上げが可能か確認してください。

⑤ 再発を防ぐには

⑥ よくある質問(FAQ)

メモリ上限はどこまで増やしても大丈夫ですか?
契約しているレンタルサーバーのプランごとに上限が設定されており、その範囲を超える値を指定してもサーバー側で無視されます。一般的な共用サーバーでは256M〜512M程度が上限になっていることが多く、それ以上必要な場合はサーバープランの変更やサーバー会社への問い合わせが必要です。
メモリを増やしてもエラーが解決しません
wp-config.phpでの指定がテーマ・プラグインの設定で上書きされている、複数の設定ファイルで矛盾した値が指定されている、といったケースがあります。また、メモリ不足以外の原因(PHPのバージョン不整合・プラグインの致命的エラー等)で似たような画面が表示されている可能性もあるため、その場合は「画面が真っ白になるエラー」のより広いトラブルシューティングも確認してください。

関連コンテンツ