我有一个在 IIS 7.5 上运行的 php 应用程序,php 5.4 作为 fastcgi 运行。该应用程序运行良好,但长时间运行的 php 脚本似乎挂起;没有 500 错误,它们似乎永远不会完成并将结果返回给浏览器。
我在下面编写了一个简单的测试脚本,以消除主应用程序中出现编程错误的可能性:
<?php
/* test timeout */
/*set_time_limit(110);*/
echo "Testing time out in seconds\n";
for ($i = 0; $i < 175; $i++) {
echo $i." -- ";
if(sleep(1)!=0)
{
echo "sleep failed script terminating";
break;
}
}
?>
如果我运行脚本超过 175 秒,它就会挂起。在此之下,它会将结果返回给浏览器。
这是我为 php 和 fastcgi 设置的超时参数。我还尝试将这些设置设置得非常低,以便获得各种超时错误并成功了,这让我得出结论,我缺少另一个设置......也许。
如果我的假设是错误的,请纠正我,但公平地说,如果脚本超时,浏览器会出现错误,好像脚本在完成之前被 IIS 杀死,那么什么都不会返回到浏览器,你会得到什么就浏览器而言,看起来像挂起?
快速cgi
activity timeout=800 Idle Timeout = 900 request Timeout 800
php
max_execution_time=700