改max_execution_time是最直接解法,需修改xampp中apache使用的php.ini(如c:\xampp\apache\bin\php.ini),设为所需值并重启apache;临时可用set_time_limit(),但需注意生效条件和限制。

PHP脚本超时被中断?改 max_execution_time 是最直接解法
默认 30 秒的 max_execution_time 在处理文件导入、批量 API 调用或大数据计算时经常不够用,脚本会直接报错 Maximum execution time of X seconds exceeded。这不是代码逻辑问题,而是 PHP 运行时限制,必须改配置才能继续执行。
改哪个 php.ini 文件才生效?认准 XAMPP 自带的那个
XAMPP 安装后有多个 php.ini,但只有 Apache 使用的那个才管用。别去改 CLI 下的(比如 C:\xampp\php\php.ini),它只影响命令行运行的 PHP,不影响浏览器访问的脚本。
- 打开 XAMPP 控制面板 → 点击
Apache行右侧的Config→ 选PHP (php.ini) - 这会自动打开
C:\xampp\apache\bin\php.ini(Windows)或/Applications/XAMPP/xamppfiles/etc/php.ini(macOS) - 搜索
max_execution_time,找到这一行:max_execution_time = 30
- 改成你需要的值,比如
max_execution_time = 300
(5 分钟),保存文件 - 重启 Apache —— 不重启,修改完全不生效
临时改法:代码里用 set_time_limit() 更灵活
有些场景不需要全局调高,只想让某个耗时脚本多跑一会儿,这时在脚本开头加一行更安全,避免影响其他请求。
-
set_time_limit(0)表示取消限制(慎用,可能卡死进程) -
set_time_limit(120)表示从当前行开始再允许运行 120 秒 - 注意:这个函数只在
safe_mode = Off时有效(XAMPP 默认关着,不用管) - 如果脚本已运行超过原
max_execution_time,set_time_limit()无法“倒拨”时间,得先确保初始限制够用
改完还是超时?检查是否被其他层拦截了
PHP 层改对了,不代表一定能跑完。XAMPP 的 Apache 和浏览器都可能中途掐断:
- Apache 的
Timeout指令(在httpd.conf里)默认是 300 秒,如果 PHP 脚本要跑 600 秒,这里也得同步调大 - 某些代理或反向代理(比如你本地开了 Charles/Fiddler)也会设超时,关闭它们试试
- Chrome/Firefox 对空响应的等待有时较短,加个
echo '.'; flush();能防止浏览器主动断连 - 如果用的是
php_admin_value max_execution_time这类 Apache 模块级配置,它会强制覆盖php.ini,优先级更高,得去httpd-xampp.conf里查
php.ini 却以为生效了。确认路径、重启服务、再验证一次 phpinfo() 里的 max_execution_time 值,比反复猜错误原因快得多。php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











