Linux服务器上的内部服务器错误(500)和PHP max_execution_time

时间:2013-04-02 20:35:28

标签: php linux apache centos

我有一个需要处理一到五个小时的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,它可以工作......

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

4 个答案:

答案 0 :(得分:1)

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

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

干得好!

答案 1 :(得分:0)

更好的方法是在脚本顶部使用ini_set()set_time_limit()向客户发送简报......您不应该尝试使用主配置文件......而且,如上所述,cron的工作非常适合这种情况。

答案 2 :(得分:0)

感谢您的回答和评论。我设置了cron作业,它完美无缺。我也尝试过chunk-chunk(每块150封电子邮件)的方法,而且这个方法也适用。

答案 3 :(得分:0)

如果您使用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');

祝你好运!