2026年5月20日
2026年5月20日
PHP実行時間オーバーによる500エラーの解決方法【max_execution_time】
はじめに
PHPには「スクリプトが実行できる最大時間」という制限があります。デフォルトは30秒で、この時間内に処理が終わらないとPHPが強制終了し、500エラーが発生します。バックアップ・インポート・バルク処理など時間のかかる処理で特に発生しやすい問題です。
max_execution_time超過が原因と疑われる状況
- 大容量の画像アップロード中に500エラーが出る
- WordPressのデータインポート中にエラーが出る
- バックアッププラグイン実行中にエラーが出る
- WooCommerceで多数の商品を一括更新するとエラーが出る
- エラーログに
Maximum execution time of 30 seconds exceededがある
現在の実行時間制限を確認する
// 一時的な確認用コード(使用後は削除)
echo ini_get('max_execution_time') . ' 秒';
または phpinfo() で max_execution_time の値を確認します。
解決方法①:wp-config.phpで設定する
// wp-config.php に追加
@ini_set('max_execution_time', 300); // 300秒(5分)に設定
解決方法②:php.iniで設定する
; php.ini に追加または変更
max_execution_time = 300
max_input_time = 300
解決方法③:.htaccessで設定する(Apache限定)
php_value max_execution_time 300
php_value max_input_time 300
解決方法④:functions.phpで設定する
// functions.php に追加
add_action( 'init', function() {
set_time_limit( 300 );
});
WP-CLIで処理を実行する
バックアップやインポートなど大きな処理は、ブラウザ経由ではなくWP-CLI(SSH)で実行すると時間制限の影響を受けにくくなります:
# インポートをWP-CLIで実行
wp import /path/to/file.xml --authors=create
# バックアップをWP-CLIで実行(UpdraftPlusの例)
wp updraftplus backup
推奨値について
| 処理の種類 | 推奨max_execution_time |
|-----------|----------------------|
| 通常のWordPress動作 | 30〜60秒 |
| 画像処理・アップロード | 120〜300秒 |
| データインポート・バックアップ | 300〜600秒 |
無制限(0)は避け、処理に必要な時間+余裕を設定してください。
注意事項
- 実行時間を増やしてもサーバーのメモリが足りなければエラーが続きます。
WP_MEMORY_LIMITと合わせて調整してください。 - 共有ホスティングではホスティング側の上限を超えることはできません。
まとめ
PHPの実行時間制限による500エラーは、max_execution_time を300秒程度に引き上げることで解決します。大きな処理はWP-CLI経由で実行するとより安定します。
関連記事: