120秒后PHP脚本无响应

时间:2010-10-20 03:12:37

标签: php ubuntu

这个真让我难过。我没有在我工作过的任何其他服务器上遇到过这个问题。

这是在带有PHP 5.3.2-1ubuntu4.5的Ubuntu 10.04.1 LTS服务器上。

当我的PHP脚本超过120秒没有任何输出时,脚本将不会显示任何后续输出;但是,任何非输出仍将被执行。对于php5-cgi和amp;都会发生这种情况。 php5(cli)。例如:

1. $iSleep = 120;
2. echo 'Now: '.date('H:i:s')."\n";
3. echo 'Sleeping for: '.$iSleep."\n";
4. echo 'Will wake up at: '.date('H:i:s', (time()+$iSleep))."\n";
5. sleep($iSleep);
6. echo 'Woke up at: '.date('H:i:s')."\n";
7. mail('test@example.com', 'Subject', 'Message');

我将通过第4行将所有输出返回到屏幕。第6行将永远不会出现在屏幕上,但我会从第7行收到一封电子邮件。如果我将第1行更改为119或更低,代码将按预期完全执行。如果您有任何其他设置(php.ini)或版本号,请告诉我们。提前感谢您的时间。

2 个答案:

答案 0 :(得分:0)

我的答案也主要是猜测,但你有正常的max_execution_time变量。默认情况下,根据文档,这是30。但有一点需要注意:

  

最大执行时间不受系统调用,流操作等的影响。有关更多详细信息,请参阅set_time_limit()函数。

我是肯定的mail()是一个系统调用,因此你想按照描述使用set_time_limit

希望这可以解决您的问题。

答案 1 :(得分:0)

当我从其他客户端连接时,PHP似乎正确响应。我需要弄清楚是什么让我连接的客户端不同。