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秒の長い処理を実行できるようになる。