0

PHPスクリプトが次の致命的なエラーを返す理由はありますか?

Fatal error: Maximum execution time of 60 seconds exceeded in 
H:\xampplite\htdocs\mlm\tera.php on line 1

私のPHP iniが「300000」に設定さset_time_limit(300000);れ、さらにスクリプト自体に設定されている場合。セーフモードはオフです。また、Apacheのタイムアウトも「300000」に設定されています。

PHP がこれを返す理由 - なぜこれが起こるのかを聞いてうれしいです!!

この PHP スクリプトは、主に exec 関数を使用して SQLCMD 経由でクエリを実行するために使用しています。PHPスクリプトが(おそらく)5分以上実行された後、このエラーが発生します。

注: この質問に答えるときは、私が正しい PHP.ini ファイルなどを使用していること、および私が主張していることは実際に起こっていることであることに疑いの余地がないことを前提としてください。

助けてくれてありがとう

PS私は以前にこの質問をしましたが、他の質問が面倒だと思っていました. これについて最終的に本を閉じることができることを期待して、これをより具体的にしました。また、これは私が行ったテストであり、もう AJAX を使用していません。

アップデート

問題のスクリプトの 1 行目:

session_start(); 
ini_set("max_execution_time" , 300000); 
error_reporting(0);
ini_set('display_errors', '0');

(読みやすいように改行を入れています)

4

5 に答える 5

4

php.netでこのコメントを見つけました。スクリプトは、60 秒を超える可能性のある別の場所 (ファイルのアップロードなど) からの入力を待機していますか? 60 は のデフォルトの時間でmax_input_time、PHP がファイル データの受信を待機する時間を設定します。

于 2009-11-25T01:30:28.557 に答える
2

phpinfo の出力では、入力した値 (300000) が max_execution_time として適切な列に実際に表示されていますか? 異なるローカル設定はありませんか?phpinfo出力全体のどこにも「60秒」はありませんよね?

同じことが何度かあったので質問させてください。

それでは、メイン スクリプトから実行している別のスクリプトからのコマンド ライン出力が表示されているのではないでしょうか? または、別のコンテキストからの PHP スクリプトが実際にこれを出力している他の方法はありますか?

于 2009-11-25T01:21:05.490 に答える
1

実行時間制限はphp 実行時間に適用され、外部プログラムまたはデータベースの待機は含まれません。これで、5 分以上経過した後に 60 秒の制限に達している理由が説明できます。

なぜまだ 60 秒の制限を受けているのか、私にはわかりません。正しいphp.iniファイルを使用していると確信しているようです.phpディレクティブの.htaccessファイルを確認し、.htaccessファイルで設定を確認しますphpinfo(). config の値を変更し、phpinfo() で変更されたことを確認します。

また、Web サーバーを再起動します。

于 2009-11-25T01:06:07.723 に答える
1

シンプルな php_info(); でページを実行します。唯一の回線として呼び出します。これにより、最大実行時間に実際に設定されている変数がわかります。

于 2009-11-25T00:45:56.673 に答える
0

max_execution_time少し低い 300 などに設定してみましたか?それとも本当に3 日半の実行時間が必要ですか? (ヒント: 答えが「はい」の場合、PHP はおそらくその仕事に適したツールではありません) いくつかの簡単なグーグル検索では結果が返されませんでしたが、300,000 が PHP または apache でハードコーディングされた制限を超えたとしても驚かないでしょう。問題なく 500 まで上げましたが、それ以上になったことはありません。

于 2009-11-25T00:59:41.883 に答える