2

ブラウザ経由で呼び出すと、正確に 60 秒後にタイムアウトする PHP スクリプトがあります。httpd.conf を変更し、Timeout ディレクティブを 300 に設定しました。すべての PHP タイムアウト設定を変更して、60 秒より長く延長しました。コマンドラインからスクリプトを実行すると、完了します。60秒後に毎回ブラウザから実行すると、POOF、タイムアウトになります。

また、いずれかの .htaccess ファイルにタイムアウト ディレクティブが存在することも確認しました。そこには何もありません..私は完全に困惑しています。

また、PHP コード内で set_time_limit(0) を強制しています。

私は1週間掘り下げてテストしており、知識を使い果たしました。どんな助けでも大歓迎です。

4

2 に答える 2

3

PHP と Apache の両方で、より高いタイムアウト制限を設定していることを確認する必要があります。

php.ini で max_execution_time を高く設定すると、スクリプトはタイムアウトしませんが、スクリプトの結果の出力バターを定期的にブラウザーにフラッシュしていない場合、Apache 側でスクリプトがタイムアウトする可能性があります。ネットワークのタイムアウト。

httpd.conf で次のようにします。

Timeout 216000

php.ini で次のようにします。

max_execution_time = 0

(0 に設定すると、CLI (コマンド ライン) スクリプトのようにタイムアウトしなくなります)。

完了したら、必ず Apache を再起動してください。ほとんどの Linux ディストリビューションでは、(root として) コマンドを発行することでこれを行うことができます。

service httpd restart

お役に立てれば!

于 2013-11-20T17:18:15.377 に答える
0

maxtime を設定できる場所は多数あります。FastCGI を使用している場合、特に Virtualmin などを使用している場合、max_execution_time の追加の設定セットがあり、アクセスできない場合は非表示になります。

要するに、PHP スタックのセットアップを考えると、すべての場所を把握する必要があります。実行時間リミッターがあり、それらの値を上げ、サーバーを再起動してから実行する必要があります。

set_time_limit(0);

適切な測定のために。

特定のセットアップに関する詳細情報がなく、PHP での実行時間のハングアップに対処した私の経験を考えると、それが私が言えることのほとんどです。

于 2012-04-19T16:39:52.027 に答える