我有一个需要处理一到五个小时的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
,它可以工作......
我阅读了很多文章和论坛,但我不知道为什么会这样。感谢您的帮助。
答案 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');
祝你好运!