【问题标题】:Internal Server Error (500) and PHP max_execution_time on Linux serverLinux 服务器上的内部服务器错误 (500) 和 PHP max_execution_time
【发布时间】:2013-03-24 07:44:49
【问题描述】:

我有一个需要处理 1 到 5 个小时的 php 脚本(向我们的客户发送新闻通讯)。我尝试了set_time_limit(2000);ini_set('max_execution_time', 360000);,但都不起作用。它们可以在 XAMPP 本地服务器上完美运行,但不能在我们的专用服务器(Unix 和 Apache)上运行。我还将 Apache 超时更改为 300(即 50),但在脚本运行 30 秒后,它返回:

内部服务器错误页面(错误 500)

我不知道是否还有其他地方可以超时和/或为什么服务器不支持ini_set()set_time_limit() 函数。我们使用 Unix CentOS 6 和 Plesk 11.9 作为服务器。我还更改了默认的 php.ini max_execution_time,并且可以正常工作...

我阅读了很多文章和论坛,但我不知道为什么会发生这种情况。感谢您的帮助。

【问题讨论】:

  • 只是一个建议,你能创建一个cron作业吗?
  • 从命令行调用的脚本没有时间限制。您不希望浏览器参与其中。
  • 我建议cron任务,获取包并发送,将此包标记为已发送和下一个循环,获取下一个包并发送等。
  • 我建议您尝试将您的发送分成几块,这样很快就会被标记为垃圾邮件发送者。

标签: php linux apache centos


【解决方案1】:

如果您使用 Vps: 编辑你的 php.ini 文件:

max_execution_time = 256
memory_limit = 512M

然后,运行命令行重启apache

service httpd restart

或头文件

ini_set('max_execution_time','256');
ini_set('memory_limit','512M');

祝你好运!

【讨论】:

    【解决方案2】:

    //在你的php文件头或配置中添加,

    ini_set('max_execution_time','256'); //max_execution_time','0' <- unlimited time
    ini_set('memory_limit','512M');
    

    干得好!

    【讨论】:

      【解决方案3】:

      感谢您的回答和 cmets。我设置了 cron 作业,它运行良好。我也尝试过 chunk-chunk (每块 150 封电子邮件)的方法,而且这种方法也有效。

      【讨论】:

        【解决方案4】:

        更好的方法是在向客户发送新闻通讯的脚本顶部使用ini_set()set_time_limit()...您不应该尝试主配置文件...而且,正如上面有人建议的那样, cron 工作非常适合这种情况..

        【讨论】:

        • 大家好,感谢您的回答和 cmets。我设置了 cron 作业,它运行良好。我也尝试过 chunk-chunk(每块 150 封电子邮件)的方法,而且这种方法也有效......
        猜你喜欢
        • 2014-01-10
        • 2012-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-28
        • 2015-09-26
        • 2014-06-08
        • 2018-01-15
        相关资源
        最近更新 更多