2010-03-24 6 views
8

這個問題迫使我堅果,因爲在php.ini和htaccess中的max_execution_time和報告從PHP是肯定高於報告中的警告消息。PHP max_execution_time忽略(沒有安全模式,沒有共享主機,只是本地主機/ windows7/php 5.3.1和Apache超時是300)

<?php 
echo "Max execution time: ".ini_get("max_execution_time")."<br />"; 
while(true) 
{ 
    sleep(1); 
} 
?> 

輸出:

最大執行時間:240

致命錯誤:用C超過60秒的最大執行時間:\ XAMPP \ htdocs中\爲timetest.php第5行

答案

是的,它似乎是一個bug: max_input_time覆蓋max_execution_時間!

htaccess的:

php_value max_execution_time 240 
php_value max_input_time 111 

爲timetest.php:

<?php 
echo "Max execution time: ".ini_get("max_execution_time")."<br />"; 
echo "Max input time: ".ini_get("max_input_time")."<br />"; 
while(true) 
{ 
    sleep(1); 
} 
?> 

輸出(證明):

最大執行時間:240

最大輸入時間:111

致命錯誤:在第6行的C:\ xampp \ htdocs \ timetest.php中超出了111秒的最大執行時間。

感謝您的幫助!

+0

有關您的問題的一個問題。我曾經認爲,顯示瀏覽器的最大執行時間是由瀏覽器設置的,並且它可以不同於php.ini中的值!我覺得錯了嗎? – Simon 2010-03-24 10:11:49

+0

@Syom - max_execution_time不是由瀏覽器設置的,它是php.ini的值。瀏覽器有自己的超時時間(以阻止惡意腳本),但在這種情況下它們是無關緊要的。 php.ini的值可以在瀏覽器和命令行中有所不同,因爲apache使用與命令行模式不同的php.ini。 – pinaki 2010-03-24 10:16:01

+0

@pinaki所以如果我看到消息「超過60秒的最大執行時間」,那意味着在apache的php.ini中設置了60秒? – Simon 2010-03-24 10:20:19

回答

5

這是一個PHP的錯誤。這裏報告http://bugs.php.net/48949

編輯:發現max_input_time覆蓋了max_execution時間。這一定是你的問題。

+0

似乎5.3.1版本有這個問題/錯誤。將用5.3.1修復。 http://bugs.php.net/bug.php?id=49868&edit=1 – pinaki 2010-03-24 10:40:57