端くれプログラマの備忘録 PHP [PHP] スクリプトの実行タイムアウトを変更する

[PHP] スクリプトの実行タイムアウトを変更する

ローカルのXAMPP環境で、処理時間が長いスクリプトにブラウザからアクセスしたら、以下のメッセージでタイムアウトになった。

Fatal error: Maximum execution time of 30 seconds exceeded in
C:\xampp\htdocs\lib\foo.php on line 264

実行タイムアウトを変更するには

グローバルに変更したければ、php.ini の max_execution_time を変更する。

; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
;max_execution_time=30
max_execution_time=120

特定スクリプトだけ変更したければ、set_time_limit()関数を呼ぶ。引数は秒数。ゼロを指定するとタイムアウト無しになる。

set_time_limit(120); // 120 sec
set_time_limit(0); // reset time limit for big files

参考サイト

PHPスクリプトの実行時間を制御する(max_execution_time) – hogehoge foobar Blog Style5
http://d.hatena.ne.jp/mrgoofy33/20100922/1285168658
いろんな方法がまとめられていてわかりやすい。

PHP: set_time_limit – Manual
http://php.net/manual/ja/function.set-time-limit.php