Nginx PHP set_time_limit() not working



我想增加nginx上一个php站点的超时,这样我就不会得到"504网关超时"。我试过set_time_limit,但它不起作用。我发现了一些基于配置文件修改的解决方案(例如,使用PHP set_time_limit()防止nginx 504网关超时)。但是,在我的情况下,我不应该修改这些文件。有这样的办法吗?

感谢您的努力。

首先,您必须编辑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线程池的方式,更改超时的其他方法很难配置。

最新更新