2016-03-19 10 views
2

複数の "入れ子になった" include()関数を持つPHPアプリケーションがあります。何らかの理由により、アプリケーションは60秒後に停止します。私はset_time_limit(0)を使用しています。また、ファイル内のインクルード関数なしでこれをテストして、永遠に実行します。私は問題が何であるか分かりません。504ネストされたサーバーエラーinclude()

ワーキング:

set_time_limit(0); 

while(1 < 2){ 
    echo 'hello'; 
} 

動作しない:

//MASTER FILE 
set_time_limit(0); 

while(1 < 2){ 
    include('file.php'); 
} 

//INCLUDED FILE 'file.php' 
echo 'hello'; 

答えて

0

まず、それは特にウェブ要求に応答して、無限ループを書くために悪い習慣です。一般的には、Web要求が可能な限り迅速に応答し、長時間実行されるプロセスが別々に実行されるようにすることも必要です。

つまり、Apacheの背後にあるPHPを実行していると仮定すると、Apache TimeOut configを調整する必要があります。デフォルトは60秒です。

+0

まず、無限ループを記述することは一般的には悪いことです。ループは、mysqlデータベースに設定されている変数が "1"に設定されている場合にのみ実行され、要求にはまったく使用されません。それで、私はTimeOutプロパティを知っています。この問題は、スクリプトに 'include()'関数がある場合にのみ発生するようです。あなたのご意見ありがとうございます! – pauld

関連する問題