2026年5月20日
2026年5月20日
PHPメモリ制限による500エラーの解決方法【WP_MEMORY_LIMIT設定】
はじめに
PHPのメモリ制限(memory_limit)が足りなくなると、WordPressは「500 Internal Server Error」または「PHP Fatal error: Allowed memory size exhausted」を表示します。ページビルダーや画像処理など、メモリを多く使う処理で特に発生しやすい問題です。
メモリ不足が原因と疑われる状況
- 高機能なページビルダー(Elementor・Divi等)使用時
- 大きな画像のアップロード時
- WooCommerceの注文処理時
- バックアッププラグインの実行時
- 多数のプラグインを同時使用時
現在のメモリ制限を確認する方法
wp-config.phpで確認
// 現在の設定を確認(追加後にサイトにアクセスして確認)
define( 'WP_MEMORY_LIMIT', '256M' );
phpinfo()で確認
// 一時的に確認用ファイルを作成(確認後は必ず削除)
<?php phpinfo(); ?>
memory_limit の項目で現在の制限値を確認できます。
解決方法①:wp-config.phpで設定(最も簡単)
FTPで wp-config.php を開き、/ That's all, stop editing! / の行より前に追加します:
// PHPメモリ制限を増やす
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' ); // 管理画面用
解決方法②:php.iniで設定
ルートディレクトリに php.ini ファイルがある場合(または新規作成):
memory_limit = 256M
max_execution_time = 300
post_max_size = 64M
upload_max_filesize = 64M
解決方法③:.htaccessで設定(Apache限定)
php_value memory_limit 256M
php_value max_execution_time 300
解決方法④:ホスティングの管理画面で設定
cPanel等のホスティング管理画面には「PHP設定」や「Select PHP Version」といったメニューがあり、GUIでメモリ制限を変更できます。
どこまでメモリを増やせるか
ホスティングプランによって上限が異なります:
| プランの種類 | 一般的な上限 |
|------------|-----------|
| 共有ホスティング | 128M〜256M |
| VPS(小)| 512M〜1G |
| VPS(中〜大)| 制限なし〜 |
上限を超える設定は無視されます。ホスティング会社のプランを確認してください。
確認:メモリ使用量を監視するには
// 現在のメモリ使用量を確認するスニペット(テスト用)
echo 'メモリ使用量: ' . memory_get_usage(true) / 1024 / 1024 . 'MB';
echo 'ピークメモリ: ' . memory_get_peak_usage(true) / 1024 / 1024 . 'MB';
Query Monitor プラグインを使うと常時メモリ使用量を監視できます。
注意事項
- メモリを無制限(
-1)に設定するのはセキュリティ上問題があります。実際に必要な量+余裕分の設定にとどめてください。 - メモリ増加で解決しない場合、プラグインのコードにメモリリークがある可能性があります。
まとめ
PHPメモリ制限による500エラーは、wp-config.php に WP_MEMORY_LIMIT を追加するだけで解決するケースがほとんどです。256M を設定しても解決しない場合はホスティングプランのアップグレードを検討しましょう。
関連記事: