ホームページ制作 SiGT Web Studio (横浜/フリーランス) > Blog > web制作 > 重いphpがタイムアウトしてしまう場合のTips

横浜のフリーランスWeb制作者ブログ

2010年 10月 05日

重いphpがタイムアウトしてしまう場合のTips


一般的に公開されているWebでは滅多にない話ではありますが…。

処理にものすごーく、時間の掛かるphpスクリプトが途中でタイムアウトしてしまい、丸一日程無駄にしてしまったので備忘録的にメモしておきます。

【ブラウザにタイムアウトのメッセージが出る場合】

エラーメッセージの内容は

Fatal error: Maximum execution time of 30 seconds exceeded in……

この場合はphp.iniの中のmax_execution_timeの数字を大きな数字にするか、「0(無制限)」にしてしまえばOK。apacheを再起動しましょう。

php.iniが直接いじれない場合は.htaccessに

1
2
php_value ignore_user_abort On
php_value max_execution_time 30000

などと書く方法もあるようです。

また実行するphpスクリプト内で

などと書く方法もあります。

でも今回小生がハマったのは、上記には非ず。エラーのメッセージも出ないまま、いつのまにかブラウザ(Firefox)の画面がホームに設定されているiGoogleになる、というもの。

【ブラウザがタイムアウトのメッセージを出さない場合(Firefox)】

アドレスバーに「about:config」と入力すると、警告メッセージを経て設定一覧が表示されます。

この中の「network.http.keep-alive.timeout」という項目の数字が300(秒)になっていたので30000に変更。今回の問題はこれで回避できました。

参考:時間のかかる処理でブラウザタイムアウトの対策(firefox) / Challenge4Life様

【Firefox以外のブラウザでは?】

InternetExolorerの場合はKeepAliveがデフォルトでは120秒とされているそうで、この変更にはレジストリをいじる必要があります。

参考:マイコミジャーナル:【コラム】Windows XPスマートチューニング 98 IEのKeepAliveタイムアウト値を設定する / 阿久津良和様

他のブラウザにも同様の事があったりなかったり?じっくり調べきってはいないのですが、汎用性を高くするには処理結果を都度画面に出力させる方法など、何かしらのデータをこまめに送り続けられる仕組みを組み込むのが良さそうです。

Posted: 2010年 10月 05日 12:14

Tagged with


Categories: web制作

Comments: 2 comments


トラックバックURL

コメント & トラックバック

Hello blogger, i must say you have hi quality content here.

Your website should go viral. You need initial traffic only.
How to get it? Search for; Mertiso’s tips go viral

コメント





コメント本文に次の(X)HTMLタグを使えます:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Gravatarに登録されているアバターを使用します。

Additional comments powered byBackType