月間26,000PV達成! 収益は毎日発生中! ギランバレー症候群に関する情報を集めています

【PHP】タイムアウトエラー(Maximum execution time…)対策法!

             
  • 2019.10.09
  • PHP
【PHP】タイムアウトエラー(Maximum execution time…)対策法!
Advertisement

 

PHPには「php.ini」という設定ファイルがあり、その中で色々な設定が行われています。

例えば、メモリの上限であったり、タイムアウトの上限であったり

PHPで重い処理を行っている場合にタイムアウトが発生することがあるのですが、今回はそんな場合の対処法を解説します。

 

僕のプロフィールはこちら

 

 

PHPのタイムアウトエラー

PHP内で重い処理を行っている場合に「Maximum execution time…」というエラーが発生する場合があります。

これは、処理できる上限時間を超えた場合に発生します。

いわゆる「タイムアウト」ですね。

 

 

「Maximum execution time…」エラー内容

↑こんな感じのエラーが出ます。

 

 

「Maximum execution time…」対処法

タイムアウトの上限を変更することで対応します。

対処法は以下の2つです。

①php.iniの「max_execution_time」を変更する

②ini_set関数を使用し、「max_execution_time」を変更する

 

1.php.iniの「max_execution_time」を変更する

php.iniファイルを開き、「max_execution_time」という設定値が「999」などになっているかと思うので、これを変更します。

上限なしにしたい場合は「-1」とします。

個人的におすすめはしません。

php.iniは設定ファイルなので、設定を変更することですべての処理に影響が出ます。

上限を上げるので問題はないですが、影響範囲は少なければ少ない方がよいでしょう。

 

2.ini_set関数を使用し、「max_execution_time」を変更する

PHPには非常に便利な「ini_set関数」があります。

ini_set関数は、特定の処理だけphp.iniの設定を変更することができます。

つまり、直接php.iniを修正する必要がないので影響範囲を最小限に留めることができます

処理開始時に以下のように記載すればOK。

 

 

Advertisement

 

max_execution_timeの注意点

そもそも「max_execution_time」の値を変えなくてはならない状況が正しいかどうかを考えましょう。

max_execution_time」は処理に時間がかかりすぎてしまっているので強制終了させられているわけです。

つまり、本来は上限を設定してあげなくてはならない値ということになります

まずは、上限を本当に上げなくてはならないのかを考えましょう。

 

 

おすすめ書籍

僕はLaravelの勉強をするのに以下の書籍を購入しました。おすすめですよ!

 

 

 

まとめ

処理に時間のかかる処理、例えばバッチ処理などは注意が必要です。

大概メモリで死ぬか、タイムアウトで死にます。

上限を変更すること自体は簡単ですが、そもそもそれが正しいのか、無駄なことをしていないのかを考えることが一番大切なことだと思います

ではでは。

 

 

関連記事

以下の記事も合わせて読まれています。

Travelerを知らないの?