PHPを使ったAPI操作のプログラムを開発していると、APIのレスポンスに時間がかかり、以下のFatal errorが発生することがある。
Fatal error: Maximum execution time of 30 seconds exceeded in …
原因を調べてみると、PHPは無限ループ対策のため、既定の時間を超えると自動的にエラーを返しプログラムを停止させるようになっているとのことだ。
俺の場合、ローカル開発環境のXAMPP上でこのエラーが発生したのだが、PHPの設定ファイルphp.iniを見ると以下の設定がされていた。
※XAMPPの場合「C:\xampp\php」内にphp.iniがあるはずだ。
max_execution_time=30
無限ループでなく、処理に時間のかかるプログラムの場合は、ここの値を任意の秒数に変更してあげれば良い。
今回は上限を120秒に変えてみた。
max_execution_time=120
php.iniの設定を反映させるには、XAMPPのコンパネからApacheを再起動させる必要があるので忘れないようにしよう。
これで最大120秒の長い処理を実行できるようになる。