长时间运行的 php 脚本在 IIS 7.5 上挂起/终止

长时间运行的 php 脚本在 IIS 7.5 上挂起/终止

在配置 IIS 7.5 和 Php 方面我有点菜,所以如果这是一个愚蠢的问题,请原谅,但我已经为此纠结了半天以上,需要一些新的意见。

我有一个在 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 设置的超时参数。我还尝试过将这些参数设置得非常低,以便获得各种超时错误,并取得了成功,这让我得出结论,我可能错过了另一个设置。

快进快退

活动超时=800 空闲超时=900 请求超时800

PHP

最大执行时间=700

任何解决方案或正确的方向的指示都会非常受欢迎。

谢谢

答案1

我已经很久没有处理过这个问题了,但是你需要增加 IIS 中的 CGI 超时时间,因为如果 PHP 进程运行时间过长,它就会直接杀死它。

相关内容