商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何配置Ubuntu PHP-FPM的超时设置

如何配置Ubuntu PHP-FPM的超时设置

  发布于2026-07-04 阅读(0)

扫一扫,手机访问

先说一个常见的场景:你在Ubuntu上跑PHP-FPM,某个请求卡住了,结果整个进程池都被拖慢,甚至站点直接504。这时候你大概率需要给PHP-FPM设置一个合理的超时时间。方法其实不复杂,但有几个细节值得注意。

如何配置Ubuntu PHP-FPM的超时设置

第一步,先找到PHP-FPM的配置文件。通常它藏在 /etc/php/{php_version}/fpm/pool.d/www.conf 这个路径下。记得把 {php_version} 换成你实际在用的PHP版本,比方说7.4、8.0或者8.1,视情况而定。用你习惯的编辑器打开它:

sudo nano /etc/php/{php_version}/fpm/pool.d/www.conf

打开之后,搜索下面这两行——它们默认是被注释掉的(行首有个分号):

;request_terminate_timeout = 0
;request_slowlog_timeout = 0

request_terminate_timeout 指的是单个请求的最长执行时间,超时后PHP-FPM会直接终止这个请求。而 request_slowlog_timeout 则用于慢日志记录:如果请求执行时间超过这个值,就会被记录到慢日志里,方便排查性能问题。默认都是0,也就是不限制——显然在生产环境里这不是个稳妥的做法。

要启用超时限制,去掉行首的分号,然后填上你想要的时长。比如想把请求超时设成30秒,就改成:

request_terminate_timeout = 30s

同时,如果想监控哪些请求比较慢,可以设置慢日志阈值,比如设成10秒:

request_slowlog_timeout = 10s

注意这里的单位用的是 s(秒),当然你也可以用 m(分钟),但大部分场景下按秒设置更精确。

改完之后保存退出,然后重启PHP-FPM服务让配置生效:

sudo systemctl restart php{php_version}-fpm

同样,把 {php_version} 替换成你的PHP版本号。至此,超时设置就完成了。

需要补充一点:这个配置是针对PHP-FPM本身的超时控制,通常配合Nginx或Apache一起使用。如果你的Web服务器是其他类型,比如Caddy、OpenLiteSpeed,那服务器那侧也需要单独设置对应的超时参数,两边的超时值最好匹配好,否则容易出现“一边等另一边先断”的情况。

另外,request_slowlog_timeout 的值一般建议比 request_terminate_timeout 小一些,这样才能在请求被强制终止前,先把慢请求的堆栈信息记录下来,方便事后分析。如果两个值设成一样甚至后者更大,慢日志可能还没来得及写,请求就被杀掉了。

总的来说,这几行配置改动不大,但对PHP应用稳定性的提升相当明显。尤其是高并发或者有第三方API调用的场景,一个合理的超时设置往往能避免整个服务被拖垮。

本文转载于:https://www.yisu.com/ask/71810396.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注