PHPで最大実行時間エラー発生した場合の対応策
PHPとは、オープンソースの汎用スクリプト言語であり、特にWeb開発に広く使われ、HTMLに埋め込むことができる。HTML文書中に記述されたスクリプトをPHPが実行し、その結果を HTMLデータとしてWebブラウザに出力する。また、PHPは大規模な開発にも多く用いられているが、文法が平易なため初心者でも習得しやすいスクリプト言語である。
設定ファイルである[php.ini]は、PHPの起動時に読み込まれる。PHPのサーバーモジュール版では、Webサーバーの起動時に一度だけ読み込まれるが、CGI版と CLI版ではスクリプトが呼び出される度に読み込まれる。
このページでは、PHPの実行中に「最大実行時間エラー」が発生した場合の対応策を記す。
・ メモリサイズエラーの対応策は以下を参照。
以下のエラーは、PHPで処理に時間のかかるスクリプトを実行した場合、実行時間をオーバーした時に吐き出される [ 最大実行時間エラー ]である。
Fatal error: Maximum execution time of xxx seconds exceeded in /xxx/xxx.php on line xxx.
※上記ブルーの部分は、設定環境によって違ってくる。
▶ 対応策
PHP設定ファイルで、スクリプトの実行時間を制御する[ max_execution_time ]を、スクリプトがパーサにより強制終了されるまでに許容される最大の時間を秒単位で指定する。
なお、最大時間なしで無制限に使用する場合は[ 0 ]ゼロを指定する。
⑴ php.ini の [ max_execution_time = 30 ] を変更する。
10分に変更する場合 [ max_execution_time = 600 ]
無制限に変更する場合 [ max_execution_time = 0 ]
⑵ プログラム内に追記して変更する場合。
<?php ini_set("max_execution_time",600); ?>
⑶ .htaccessを作成または追記して変更する場合。
php_value max_execution_time 600
※変更後の復元について
上記 (1)php.ini の設定を変更した場合は、Apacheを再起動させて再度読み込むと変更後の設定が復元される。また (2)は追記プログラムを、(3)については作成または追記したディレクトリ内とその下層のディレクトリ内のプログラムを起動させると復元される。