【问题标题】:How to Extend the Request/Connection Timeout on Apache-FastCGI-PHP application using .htaccess如何使用 .htaccess 延长 Apache-FastCGI-PHP 应用程序的请求/连接超时
【发布时间】:2011-05-19 01:15:31
【问题描述】:

我正在尝试在我们分配的服务器空间中延长连接/请求超时。

我尝试这样做的原因是,对于我的应用程序中的某些操作需要超过 120 秒,然后服务器没有等待操作完成。它在 120 秒后返回 500 Internal Server Error。

为了测试它,我将以下脚本放在服务器上:

<?php
sleep(119);
echo "TEST";
?>

它会在 119 秒后返回 TEST 给浏览器。

但是当我把脚本放在下面时:

<?php
sleep(121);
echo "TEST";
?>

它将在 120 秒后返回 500 Internal Server Error

我们在php.ini中设置了Max_execution_time=360,但问题依旧存在。

我们已经安装了带有 FastCGI 的 Apache。

我正在尝试使用 .htaccess 将其延长到 360 秒,因为这是我在共享主机中的唯一方法。

任何解决方案或建议?,在此先感谢。

【问题讨论】:

    标签: php timeout connection


    【解决方案1】:

    Fastcgi 是另一种野兽;使用 set_time_limit 不会解决问题。我不确定您可以使用 .htaccess 做什么,但您正在寻找的正常设置称为 IPCCommTimeout;您可以尝试在 .htaccess 中更改它,我不确定是否允许。

    参见apache fcgid page 上的指令;如果您使用的是旧版本,则可能需要尝试设置 FcgidIOTimeout。

    我建议 120 秒对于用户等待网络服务器上的请求来说太长了;如果运行需要这么长时间,请尝试使用 PHP CLI 从命令行运行脚本。

    【讨论】:

    • 我在 .htaccess 中添加了以下行,它已经变得最糟糕 - 立即返回 500 内部服务器错误。可能不是添加的地方。 IPCCommTimeout 150
    • Mahesh,改用 FcgidIOTimeout(请参阅我的评论),它适用于旧版本,否则您可能无法在 .htaccess 中使用此设置。
    • Yobo,foreach指令里面有提到Context,只有有Context:directory,.htaccess的指令才能包含在.htaccess中吧?
    • 是的,你是对的;并且 FcgidIOTimeout 的上下文是服务器配置、虚拟主机,所以我认为你不走运,对不起。
    • 有时我的应用程序需要超过 40 秒才能响应,它可能会增加。所以我试图删除/延长超时,这样它就不会发送 500 服务器错误。在我的 localhost 中,将 php 安装为 apache 模块,没有超时,它也等待 10 分钟 :)
    【解决方案2】:

    试试这个,希望它会工作:

    set_time_limit(int seconds)
    

    【讨论】:

    • set_time_limit 不能解决fcgi中使用php模块的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 2020-01-14
    • 2015-11-24
    • 1970-01-01
    相关资源
    最近更新 更多