温馨提示×

ubuntu php-fpm如何设置超时

小樊
33
2026-09-19 13:18:48
栏目: 编程语言

在 Ubuntu 上,PHP-FPM 的“超时”通常涉及几个不同层面,需要根据你遇到的具体问题来设置。下面按常见场景说明。


一、PHP 脚本最大执行时间(最常见)

1. php.ini 中设置

编辑 PHP 配置文件(路径随版本不同):

sudo nano /etc/php/8.1/fpm/php.ini

修改或添加:

max_execution_time = 300   ; 单位:秒
max_input_time = 300

或在代码里临时设置:

set_time_limit(300);

修改后重启 PHP-FPM:

sudo systemctl restart php8.1-fpm

二、PHP-FPM 请求超时(request_terminate_timeout)

如果 PHP 脚本执行时间超过该值,PHP-FPM 会直接杀掉进程。

修改 pool 配置

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

找到或添加:

request_terminate_timeout = 300s

重启:

sudo systemctl restart php8.1-fpm

这是“PHP-FPM 层面真正的超时”


三、FastCGI / Nginx 超时(Web 服务器层面)

如果你是 Nginx + PHP-FPM,还可能是 Nginx 超时。

Nginx 配置

sudo nano /etc/nginx/nginx.conf

或站点配置 /etc/nginx/sites-enabled/xxx

fastcgi_read_timeout 300;
fastcgi_send_timeout 300;
proxy_read_timeout 300;   # 如果用 proxy

重启 Nginx:

sudo systemctl restart nginx

四、PHP-FPM 进程空闲超时(很少需要改)

; 空闲进程存活时间
pm.process_idle_timeout = 10s

一般不改。


五、快速排查建议

如果你遇到:

  • 502 Bad Gateway → 看 request_terminate_timeout + fastcgi_read_timeout
  • 504 Gateway Timeout → Nginx 超时
  • PHP 脚本被中断max_execution_time

六、示例:5 分钟超时报错解决方案

; php.ini
max_execution_time = 300

; www.conf
request_terminate_timeout = 300s

; nginx
fastcgi_read_timeout 300;

如果你能告诉我:

  • Ubuntu 版本
  • PHP 版本
  • 使用的是 Nginx 还是 Apache
  • 报错信息(502 / 504 / blank)

我可以给你精确配置

0