2026年5月20日

2026年5月20日

Allowed memory size exhaustedエラーを解決する方法【PHPメモリ不足】

はじめに

「Fatal error: Allowed memory size of 134217728 bytes exhausted」——このエラーはPHPスクリプトが使用できるメモリの上限を超えた場合に発生します。WordPressの管理画面・プラグインの処理・大量のデータ操作時によく起きます。

症状・原因

メモリ不足エラーの特徴:

  • 管理画面の特定ページだけ白い画面になる
  • 画像のアップロード時にエラーになる
  • プラグインの設定ページが開けない
  • WordPressの更新中にエラーが発生する
  • エラーメッセージに「bytes exhausted」が含まれる

解決手順

ステップ1:wp-config.phpで設定(推奨)

// wp-config.phpに追加(「That's all, stop editing!」より前に記述)
define('WP_MEMORY_LIMIT', '256M');        // フロントエンド用
define('WP_MAX_MEMORY_LIMIT', '512M');    // 管理画面用

WordPressはこの定数を認識して自動的にメモリ制限を引き上げます。

ステップ2:.htaccessで設定(Apache)

# .htaccessに追加
php_value memory_limit 256M

ステップ3:php.iniで設定(VPS・専用サーバー)

; php.iniに追加または変更
memory_limit = 256M

変更後はPHP-FPMを再起動:sudo systemctl restart php8.1-fpm

ステップ4:現在のメモリ使用量を確認

// functions.phpに一時的に追加してメモリ使用量を確認
add_action('wp_footer', function() {
    if (current_user_can('administrator')) {
        echo '<!-- Memory: ' . memory_get_peak_usage(true) / 1024 / 1024 . 'MB -->';
    }
});

ステップ5:メモリを消費しているプラグインを特定

// wp-config.phpでデバッグを有効化
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

プラグインを一つずつ無効化して、メモリ使用量が改善するか確認します。

ステップ6:各ホスティングでの設定方法

エックスサーバーの場合:

1. サーバーパネル → 「PHP設定」→「PHP設定編集」

2. memory_limitの値を変更(256Mや512Mに設定)

ConoHaの場合:

1. コントロールパネル → 「サイト管理」→「PHP設定」

2. memory_limitの値を変更

ロリポップの場合:

1. ユーザー管理画面 → 「サーバーの管理・設定」→「PHP設定変更」

2. メモリ制限の設定を変更

注意事項

  • メモリを増やし続けるのは根本解決ではありません
  • 不要なプラグインを削除してメモリ消費を減らすことも重要です
  • サーバーの物理メモリ以上には設定できません(共有サーバーでは上限あり)
  • memory_limit = -1(無制限)はサーバーに大きな負荷をかけるため非推奨

まとめ

Allowed memory size exhaustedエラーはdefine('WP_MEMORY_LIMIT', '256M')をwp-config.phpに追加することで多くの場合解決できます。共有サーバーでは上限があるため、不要なプラグインの削除とメモリ効率の良いプラグインへの切り替えも並行して検討してください。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ