【问题标题】:Apache throwing 500 after 30 secondsApache 在 30 秒后抛出 500
【发布时间】:2013-01-22 21:02:34
【问题描述】:

我在专用 VPS 上运行 Apache2 和 PHP5。

我有一个脚本应该在 20-50 秒内完成。它工作得很好,但如果由于它选择的行而需要超过 30 秒,它会立即终止脚本并说:

“服务不可用 - 服务暂时不可用。请稍后再试。”

我的 php.ini 中有 max_execution_time=60max_input_time=60memory_limit=256M

在 apache2.conf 中,我有 Timeout=300

在脚本本身中,我也在使用set_time_limit(0); ignore_user_abort(true); ini_set('max_execution_time', 0); ini_set('memory_limit', '512M');

无论我更改什么脚本,只要加载超过 30.00 秒,脚本就会死掉,并且我的任何日志中都没有出现任何内容。

有什么其他设置可以尝试的建议吗?

此脚本仅供内部使用,最终将从命令行运行,但我更喜欢从浏览器调试/测试。

【问题讨论】:

  • 如果运行时间超过 15 秒,最好不要在 apache 中运行。在后台运行一个进程。更好的是,在 beanstalkd 中排队一个任务并使用单独的守护进程使用它。

标签: php apache timeout


【解决方案1】:

您列出的错误:“服务不可用 - 服务暂时不可用。请稍后再试。”听起来不像是 500 响应,听起来像 503。您确定要返回 500 吗? causes for a 503 会有所不同。

【讨论】:

    【解决方案2】:

    内部服务器错误。检查您的所有指令是否正确。如果您有 .htaccess 文件,请确保您没有任何拼写错误。除此之外,您可以调试脚本。您可能更改了触发错误或与服务器上其他内容冲突的设置。

    【讨论】:

      【解决方案3】:

      您是否安装了 Mod_Security 或 php-suhosin?这些可能会干扰默认配置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-03
        • 2022-10-19
        • 1970-01-01
        • 1970-01-01
        • 2015-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多