Maximum execution time of 30 seconds exceeded Error
PHP(Laravel含む)で時間が掛かる処理を行うと「Maximum execution time of 30 seconds exceeded」エラーが発生することがあります。
大量データを処理したり、ループ回数が多かったり、無駄な処理が動いていたり。発生要因は様々ですが、処理を見直すか、設定を見直すかのどちらかになります。
「30 seconds」は「30秒」ですが、php.iniの「max_execution_time」で指定されている「30秒」を超えているよ、というメッセージになります。
これを回避するために「php.ini」を編集します。
php.iniの場所を調べる
サーバーにsshなどで接続し、サーバーコンソールで「php –ini」を実行するとphp.iniの場所(3行目)がわかります。
php.iniを編集する
「max_execution_time」のデフォルトは30秒になっていたので、300秒に変更します。この秒数は作成しているプログラムが必要と思われる時間を指定してください。
設定の反映
nginxを使用している場合、PHP-FPMで(FastCGI)で稼働させていると思いますので、先ほどphp.iniに設定した内容を反映させるためにPHP-FPMを再起動します。
コメント