应调整PHP超时时间,方法包括:一、修改php.ini中max_execution_time并重启PHP;二、在网站配置中添加fastcgi_read_timeout(Nginx)或php_admin_value(Apache);三、在网站根目录创建.edit .user.ini设置参数;四、用set_time_limit()在代码中动态设置。

如果您在宝塔面板中运行PHP程序时频繁遇到“504 Gateway Timeout”或“Maximum execution time exceeded”错误,则很可能是PHP脚本执行时间超过了默认限制。以下是调整PHP超时时间的多种方法:
一、修改PHP配置文件(php.ini)
该方法适用于全局调整所有通过该PHP版本运行的脚本的最大执行时间,修改后需重启PHP服务生效。
1、登录宝塔面板,进入【软件商店】,找到已安装的PHP版本,点击右侧【设置】。
2、在弹出页面中切换到【配置修改】选项卡。
立即学习“PHP免费学习笔记(深入)”;
3、定位到 max_execution_time 参数行,将其值修改为所需秒数(例如:300 表示 5 分钟)。
4、同时检查并按需调整 max_input_time 和 memory_limit,避免因输入解析或内存不足引发间接超时。
5、点击【保存】按钮,返回上一页后点击【重载配置】或【重启】PHP服务。
二、在网站配置中添加PHP指令(Nginx/Apache)
该方法针对单个网站生效,不干扰其他站点,适合仅需对特定项目放宽限制的场景,无需重启PHP服务。
1、在宝塔面板中进入【网站】,找到目标站点,点击【设置】。
2、切换到【配置文件】选项卡,根据所用Web服务器选择对应操作:
3、若使用Nginx:在 location ~ \.php$ { } 区块内末尾添加:
fastcgi_read_timeout 300;
4、若使用Apache:在配置文件末尾的 <Directory> 或 php_admin_value 区域中添加:
php_admin_value max_execution_time 300
5、保存配置文件,点击【重载配置】使更改立即生效。
三、通过用户自定义PHP配置(.user.ini)
该方法作用于指定网站根目录及其子目录下的PHP脚本,无需管理员权限,修改后实时生效(部分PHP模式下需等待OPcache刷新)。
1、进入宝塔面板【文件】,打开目标网站根目录(如 /www/wwwroot/example.com)。
2、查找是否存在 .user.ini 文件;若无,右键空白处选择【新建文件】,命名为 .user.ini。
3、双击编辑该文件,在其中添加以下内容:
max_execution_time=300
max_input_time=300
4、保存文件,确认该文件权限为644,且未被PHP禁用 user_ini.filename 指令(可在phpinfo中查看该项是否启用)。
四、在PHP代码中动态设置(临时覆盖)
该方法仅对当前脚本生命周期有效,适合调试或特定长任务逻辑,但无法绕过web服务器(如Nginx)自身的超时限制。
1、在PHP脚本最开头( 标签后立即)插入:
set_time_limit(300);
2、或使用ini_set方式:
ini_set('max_execution_time', '300');
3、注意:若PHP运行在 safe_mode(已废弃,但旧环境可能残留)或 disable_functions 中禁用了 set_time_limit,该方法将无效。
五、同步调整Web服务器超时参数
仅调PHP参数不足以解决全部超时问题,Nginx或Apache自身也有代理/读取超时机制,必须保持与PHP设置一致,否则前端仍会提前中断连接。
1、对于Nginx站点:进入网站【配置文件】,确认存在以下三项且数值 ≥ PHP的max_execution_time:
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
2、对于Apache站点:在网站配置中查找或添加:
TimeOut 300
ProxyTimeout 300(如启用反向代理)
3、修改完成后点击【重载配置】,确保Web服务器层面不主动切断连接。











