「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値を変更
エラーメッセージはこんな感じ。
1 |
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] |
エラーメッセージの意味は「処理に30秒以上掛かったのでタイムアウトするよ!」って感じですね。
なので、タイムアウトの時間を伸ばしてしまえばOK。
php.ini を編集します。
ルートに変身して、vi を起動。
1 |
vi /etc/php.ini |
viが起動したら「/」キーを押して検索モードへ。
「max_execution_time」をキーワードにしてあっさりと発見。
1 |
max_execution_time = 30 |
デフォルト値の30が設定されていたので、10倍にしてみました。
1 |
max_execution_time = 300 |
ちなみに
1 |
max_execution_time = 0 |
とすると、例によってタイムアウト時間の制限がなくなります。
あまり大きくしてしまうと、ブラウザのタイムアウト時間に引っかかる畏れがあるので、そのあたりは適当に。
PHP: 実行時設定 - Manual
http://jp2.php.net/manual/ja/info.configuration.php#ini.max-execution-time
http://jp2.php.net/manual/ja/info.configuration.php#ini.max-execution-time
最後に apache を再起動すれば完了。
1 |
/usr/local/apache2/bin/apachectl restart |
もしくは
1 |
/usr/local/apache2/bin/apachectl graceful |
以上です。