Apache PHP

「Maximum execution time of 30 seconds exceeded」が出た場合の対策方法

2016/09/14

phpのエラー絡みの対策。
今回は Maximum execution time of 30 seconds exceeded が出た場合の対策方法です。

Maximum execution time of 30 seconds exceeded 対策

max_execution_time値を変更

エラーメッセージはこんな感じ。

[default]
2014-08-04 11:10:21 Error: Fatal Error (1): Maximum execution time of 30 seconds exceeded in [/sitepass/cakephp/app/Vendor/phpexcel/PHPExcel/Calculation/LookupRef.php, line 677]
[/default]

エラーメッセージの意味は「処理に30秒以上掛かったのでタイムアウトするよ!」って感じですね。
なので、タイムアウトの時間を伸ばしてしまえばOK。

php.ini を編集します。
ルートに変身して、vi を起動。

[default]
vi /etc/php.ini
[/default]

viが起動したら「/」キーを押して検索モードへ。
「max_execution_time」をキーワードにしてあっさりと発見。

[default]
max_execution_time = 30
[/default]

デフォルト値の30が設定されていたので、10倍にしてみました。

[default]
max_execution_time = 300
[/default]

ちなみに

[default]
max_execution_time = 0
[/default]

とすると、例によってタイムアウト時間の制限がなくなります。
あまり大きくしてしまうと、ブラウザのタイムアウト時間に引っかかる畏れがあるので、そのあたりは適当に。

最後に apache を再起動すれば完了。

[default]
/usr/local/apache2/bin/apachectl restart
[/default]

もしくは

[default]
/usr/local/apache2/bin/apachectl graceful
[/default]

以上です。

-Apache, PHP
-, ,