WordPressのPHPメモリ不足を解消する方法|エラーの確認・上限変更・原因別の対処

WordPressのPHPメモリ不足を示すサーバーと警告ゲージのイラスト

WordPressで「Allowed memory size exhausted」というエラーが表示されたり、プラグインの実行中に処理が停止したりする場合、PHPのメモリ不足が原因になっている可能性があります。

ただし、メモリ上限を増やせば必ず解決するわけではありません。最初にエラー内容と現在の設定値を確認し、必要な場合だけ上限を変更することが重要です。

この記事では、初心者でも確認できる方法から、設定ファイルの変更、プラグインによるメモリ消費の調査まで、順番に説明します。

 

WordPressのPHPメモリ不足を症状別に確認する

PHPメモリ不足は、エラーメッセージが表示される場合と、画面上では原因が分からない場合があります。まずは症状に応じて確認先を選んでください。

症状 最初に確認すること 確認先
Allowed memory size exhaustedと表示 エラーに記載されたメモリ容量とファイル エラー内容の確認
管理画面でメモリ不足の警告 サイトヘルスの情報とPHP設定 現在のメモリ設定
プラグイン実行時に停止 実行時刻、エラーログ、直前の変更 プラグインの切り分け
画面が真っ白、500エラー サーバーログとPHPの致命的エラー エラー内容の確認
上限を変更しても改善しない 設定の反映状況と処理ごとの使用量 改善しない場合の対処

画面が真っ白になっただけでは、PHPメモリ不足とは断定できません。 PHPの構文エラー、プラグインの競合、サーバー障害なども考えられます。

PHPメモリ不足以外の可能性がある場合は、WordPressの500エラーの原因と復旧手順も参考になります。

 

PHPメモリ不足のエラーメッセージを確認する

PHP(WordPressの処理を実行するプログラミング言語)は、実行する処理ごとに利用できるメモリ量が制限されています。この上限を超えると、処理が途中で終了する場合があります。

 

Allowed memory size exhaustedの意味

代表的なエラーは次の形式です。

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4096 bytes)

この例では、PHPに許可された約128MiB(2進数で計算するメモリ容量の単位)を使い切り、さらに4096バイトを確保しようとして失敗しています。

括弧内の追加確保量は、処理全体で不足しているメモリ量を示すものではありません。4096バイト増やせば解決するという意味ではない点に注意してください。

また、エラー末尾に表示されるファイル名は、メモリ確保に失敗した場所を示します。そのファイルが必ずしも根本原因とは限りません。

 

エラーログを確認する方法

  1. レンタルサーバーの管理画面へログインします。
  2. エラーログまたはPHPログを表示する機能を探します。
  3. エラー発生時刻と一致する記録を確認します。
  4. 「Allowed memory size」「Fatal error」などの記述を探します。
  5. 該当するファイル名、処理時刻、上限値を記録します。

管理画面が利用できる場合は、WordPressのデバッグログ(問題調査用の記録)も利用できます。ただし、公開サイトでエラーを直接表示する設定は避けてください。

デバッグログを有効化する場合は、wp-config.phpの既存設定を確認したうえで、次の値を使用します。

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

これらは同じ定数の既存定義を重複させず、WordPressの読み込み処理より前に設定してください。ログの保存先や書き込み可否は環境によって異なります。

デバッグログにはサーバー内部のパスなどが記録される場合があります。 調査後は不要なデバッグ設定を解除し、ログを外部へ公開しないようにしてください。

 

WordPressで現在のPHPメモリ上限を確認する方法

PHPメモリ不足を疑う場合は、設定を変更する前に現在の上限値を確認します。

 

サイトヘルスから確認する

  1. WordPress管理画面にログインします。
  2. 「ツール」から「サイトヘルス」を開きます。
  3. 「情報」タブを選択します。
  4. 「サーバー」項目を展開します。
  5. PHPメモリ上限などの表示を確認します。

WordPressのバージョンや環境によって、表示項目の名称や内容が異なる場合があります。

サイトヘルスに警告がある場合は、WordPressサイトヘルスの改善方法も併せて確認してください。

 

PHPのmemory_limitとWordPressの設定値は異なる

PHPのmemory_limit(PHPの処理が使用できるメモリの上限)と、WordPressのWP_MEMORY_LIMIT(WordPressが通常処理で要求するメモリ上限)は、同じ設定ではありません。

設定 役割 主な変更場所
memory_limit PHP実行環境のメモリ上限 サーバー管理画面、php.iniなど
WP_MEMORY_LIMIT WordPress通常処理のメモリ要求値 wp-config.php
WP_MAX_MEMORY_LIMIT WordPress管理画面など高負荷処理向けの要求値 wp-config.php

WP_MEMORY_LIMITを変更しても、サーバーが許可する上限を必ず超えられるわけではありません。 PHPの設定変更が制限されているサーバーでは、WordPress側の指定だけでは改善しないことがあります。

PHPのmemory_limitとWordPressの2種類のメモリ設定の関係図

 

wp-config.phpでWordPressのメモリ上限を変更する

WordPress側の要求値が低い場合は、wp-config.phpへ設定を追加することで改善する可能性があります。

ただし、設定ファイルの編集に失敗するとサイトが表示されなくなることがあります。変更前にファイルのバックアップを取得してください。

 

wp-config.phpへ設定を追加する手順

  1. レンタルサーバーのファイルマネージャー、またはSFTP(暗号化されたファイル転送方式)でサイトのファイルへアクセスします。
  2. WordPressの設置ディレクトリにあるwp-config.phpを探します。
  3. ファイルをバックアップします。
  4. 同じ定数が既に設定されていないか検索します。
  5. 未設定の場合は、次のコードをWordPressの読み込み処理より前に追加します。
define('WP_MEMORY_LIMIT', '256M');

256Mは設定例であり、すべてのサイトに必要な推奨値ではありません。実際の必要量はプラグイン、テーマ、処理内容、サーバーの制限によって異なります。

すでにWP_MEMORY_LIMITが定義されている場合は、重複追加せず既存の値を確認してください。

管理画面の高負荷処理で必要な場合は、次の設定も検討できます。

define('WP_MAX_MEMORY_LIMIT', '512M');

ただし、管理画面用の値を高く設定しても、サーバーが許可するメモリ上限や利用可能な物理メモリが増えるわけではありません。

 

変更後に確認すること

  1. ファイルを保存します。
  2. サイトと管理画面が正常に表示されるか確認します。
  3. サイトヘルスで設定値を再確認します。
  4. エラーが発生していた操作を、影響の少ない条件で再実行します。
  5. 新しいエラーログに同じ問題が出ていないか確認します。

変更後にサイトが表示されなくなった場合は、編集前のwp-config.phpへ戻してください。

wp-config.phpにPHPメモリ上限の設定を追加する位置を示した図

 

php.iniやサーバー管理画面でmemory_limitを変更する

WordPress側の設定を変更しても改善しない場合は、PHP実行環境そのもののmemory_limitを確認します。

 

レンタルサーバーのPHP設定機能を使う

多くのレンタルサーバーでは、PHPの設定を管理画面から変更できる場合があります。

  1. 契約中のレンタルサーバーの管理画面へログインします。
  2. 対象ドメインのPHP設定機能を探します。
  3. 現在のmemory_limitを確認します。
  4. 変更が許可されている場合のみ、必要な値へ調整します。
  5. 設定を保存し、反映後の値を確認します。

管理画面の名称、変更可能な値、反映までの手順はサーバーごとに異なります。変更できない場合は、契約プランの制限やサポート情報を確認してください。

 

php.iniを編集できる環境の場合

サーバー管理者としてPHP設定ファイルを編集できる場合、設定例は次のとおりです。

memory_limit = 256M

ただし、php.iniの配置場所や設定の優先順位はPHPの実行方式によって異なります。共有サーバーでは直接編集できない場合もあります。

また、設定の反映にPHPプロセスの再読み込みが必要な環境もあります。稼働中のサイトでは、サーバーの公式手順に従ってください。

memory_limitを無制限にする設定は、安易に使用しないでください。 処理の異常なメモリ消費が続くと、サーバー全体の負荷や障害につながる可能性があります。

 

プラグインやテーマによるメモリ消費を調べる

メモリ上限を増やすだけでは、プラグインやテーマの不具合による過剰なメモリ消費は解決しません。

 

エラーが発生する操作を特定する

まず、次のような条件でエラーが再現するか確認してください。

  • 特定のプラグインを実行したときだけ発生する
  • 画像のアップロードや加工中に発生する
  • 記事の一括処理やインポート中に発生する
  • 管理画面の特定ページだけで発生する
  • テーマやプラグインの更新後から発生する

特定の操作に限定される場合は、その処理が利用するメモリ量や直近の変更内容を優先的に調査します。

 

プラグインを安全に切り分ける

  1. エラーが発生した時刻と操作を記録します。
  2. サイトとデータベースをバックアップします。
  3. 可能であればステージング環境(公開サイトに影響しない検証用環境)を用意します。
  4. 直前に追加・更新したプラグインから調査します。
  5. 検証環境で対象プラグインを一時停止し、同じ操作を再実行します。
  6. 結果を比較し、原因候補を絞り込みます。

プラグインを停止すると、フォーム、決済、会員機能などが動作しなくなる場合があります。本番サイトでの一括停止は避け、影響範囲を確認してから検証してください。

停止によって改善しても、プラグインそのものに欠陥があるとは限りません。他のプラグインとの組み合わせや設定内容が原因の可能性もあります。

 

PHPメモリ上限を増やしても解決しない場合

設定変更後も同じエラーが発生する場合は、上限値が実際に反映されているか、メモリ消費が異常に増えていないかを確認します。

 

設定が反映されていない場合

まず、WordPressのサイトヘルスに表示される値と、PHP実行環境のmemory_limitを比較してください。

想定した値と異なる場合は、次の可能性があります。

  • 編集した設定ファイルが実際には読み込まれていない
  • 別のPHP設定ファイルが優先されている
  • サーバー側で設定変更が制限されている
  • 管理画面とコマンド実行環境で異なるPHP設定が使われている

PHPの設定は実行方式によって異なるため、コマンドラインで確認した値だけでWebサイト側の値を断定しないでください。

 

上限を増やすと再び使い切る場合

上限を増やしても繰り返しメモリ不足になる場合は、処理内容そのものを調査する必要があります。

例えば、大量の投稿を一度に読み込む処理は、対象件数を分割することでメモリ消費を抑えられる可能性があります。画像処理の場合は、元画像の画素数や処理方式が影響することがあります。

独自PHPコードが原因と疑われる場合は、開発者がmemory_get_peak_usage()(処理中の最大メモリ使用量を取得するPHP関数)などを用いて、実際の使用状況を調査できます。

ただし、測定値は実行条件に左右されます。測定環境と処理内容を揃えて比較することが重要です。

 

サーバーのメモリ容量とPHPの上限を区別する

PHPのmemory_limitを増やしても、サーバーに搭載されたメモリそのものは増えません。

複数のPHP処理が同時に実行される環境では、それぞれのメモリ消費が重なるため、上限を大きくしすぎるとサーバー全体のメモリ不足を招く場合があります。

上限変更が難しい場合やサーバー全体のメモリ不足が確認された場合は、処理の軽量化、同時実行数の調整、サーバープランの見直しなどを検討してください。

PHPメモリ上限の変更後もエラーが続く場合の原因別診断フロー

 

PHPメモリ不足の再発を防ぐための対策

再発防止には、上限値の調整だけでなく、メモリ消費が増える条件を把握することが有効です。

  • 更新前後の動作確認:プラグインやテーマの更新後にエラーログを確認します。
  • 一括処理の分割:大量の記事やデータを扱う処理は、必要に応じて小分けにします。
  • 不要な処理の削減:重複した処理や過剰なデータ取得がないか確認します。
  • ログの定期確認:メモリ不足が再発していないか記録を確認します。
  • サーバー負荷の確認:PHPの上限だけでなく、同時実行数やサーバー全体のメモリ使用状況も確認します。

特に、記事生成、画像処理、データ移行などを自動実行するサイトでは、通常のページ表示と異なるメモリ使用量になることがあります。

 

WordPressのPHPメモリ不足に関するよくある質問

PHPメモリ上限は256Mにすれば十分ですか?

256Mで十分かどうかはサイトの処理内容によります。軽量なサイトと大量のデータを扱うサイトでは必要量が異なるため、現在のエラー内容と使用状況を確認して判断してください。

 

WP_MEMORY_LIMITとWP_MAX_MEMORY_LIMITは両方変更すべきですか?

必ずしも両方変更する必要はありません。通常のページ処理と管理画面の高負荷処理では適用される設定が異なるため、エラーが発生する場所に合わせて検討してください。

 

PHPメモリ不足でサイトのデータが消えることはありますか?

メモリ不足のエラーだけで、保存済みデータが必ず削除されるわけではありません。ただし、データ更新やインポート処理が途中で停止した場合は、一部の処理だけ完了している可能性があります。再実行前に処理結果とバックアップを確認してください。

 

まとめ|PHPメモリ不足は原因を確認してから対処する

WordPressのPHPメモリ不足は、PHPの設定上限、WordPress側の要求値、プラグインの処理負荷など、複数の要因で発生します。

エラーログの確認 → 現在の上限値の確認 → 必要な設定変更 → 原因となる処理の調査という順序で対応すると、不要な設定変更を避けやすくなります。

メモリ上限を増やしても改善しない場合は、処理の分割やプラグインの切り分けを優先し、サーバーの制限も確認してください。

PR記事一覧

Ads Blocker Image Powered by Code Help Pro

広告ブロックを検出しました!

ブラウザの拡張機能を使用して広告をブロックしていることが検出されました。

ブラウザの広告ブロッカーなどの機能を無効にして「更新」をクリックして下さい。

You cannot copy content of this page