Nginx PHP set_time_limit()不起作用

时间:2015-03-02 13:03:00

标签: php nginx

我想在nginx上增加一个php网站的超时,所以我没有得到“504网关超时”。我试过set_time_limit,但它不起作用。我找到了一些基于配置文件修改的解决方案(例如Prevent nginx 504 Gateway timeout using PHP set_time_limit())。但是我不应该在我的情况下修改这些文件。有这样的方式吗?

感谢您的任何努力。

1 个答案:

答案 0 :(得分:2)

首先,您必须编辑Nginx配置文件以更改fastcgi_read_timeout。没有解决方法,你必须改变那个设置。

我不确定你为什么说“我不应该在我的情况下修改这些文件”。我认为您的理由可能是您希望更改某个网站的超时,而不是其他网站的超时。我发现实现这一目标的最佳方法是将fastcgi_read_timeout设置为一个非常长的超时(你想要的任何网站最长)。

但是你不会指望使用那个超时,而是让PHP处理超时。编辑PHP的php.ini并将max_execution_time设置为您想要用于大多数网站的合理时间(可能是30秒?)。

现在,要对特定网站或网页使用更长的超时,请在要允许运行更长时间的任何脚本的开头使用PHP中的set_time_limit()函数。对于某些网站而言,这是唯一一种简单的方法,但在Nginx / PHP-FPM设置中却没有其他设置。由于PHP-FPM与服务器上的多个网站共享PHP线程池的方式,因此很难配置其他更改超时的方法。

相关问题