You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP修改php.ini超时配置后脚本仍20分钟退出,无法延长执行时间怎么办?

超时问题解决方案

1 优先排查Apache服务超时配置

你遇到的20分钟(1200秒)刚好是XAMPP默认Apache服务的全局超时阈值,该配置优先级高于php.ini的设置:

  • 打开XAMPP安装目录下的apache/conf/httpd.conf文件
  • 查找Timeout参数,默认值通常为Timeout 1200,修改为Timeout 21600
  • 如果你是用反向代理方式调用Python API,额外查找ProxyTimeout参数,同样修改为ProxyTimeout 21600
  • 保存配置后重启Apache服务生效

2 检查API调用函数的独立超时设置

PHP中curl、file_get_contents等网络请求函数的超时参数优先级高于全局php.ini配置,需要单独指定:

file_get_contents配置示例

$streamContext = stream_context_create([
    'http' => [
        'timeout' => 21600
    ]
]);
$apiResult = file_get_contents('http://你的PythonAPI地址', false, $streamContext);

curl配置示例

$curlHandler = curl_init('http://你的PythonAPI地址');
curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, true);
// 整体请求超时时间,单位秒
curl_setopt($curlHandler, CURLOPT_TIMEOUT, 21600);
// 连接建立阶段超时时间,可按需调整
curl_setopt($curlHandler, CURLOPT_CONNECTTIMEOUT, 300);
$apiResult = curl_exec($curlHandler);
curl_close($curlHandler);

3 规避浏览器主动断连问题

部分浏览器默认会在长时间无响应时主动断开连接,你可以先用curl命令行工具直接请求你的PHP接口验证:如果命令行可以正常拿到返回结果,说明是浏览器限制,建议调整为异步任务架构规避该问题:

  1. PHP接收到请求后先将任务存入任务队列,直接返回任务ID给前端
  2. 后端独立进程消费队列执行耗时任务,执行完后将结果存入缓存/数据库
  3. 前端根据任务ID轮询查询任务状态,任务完成后再拉取最终结果
    该方案不需要调整任何超时配置,稳定性远高于长连接同步等待方案。

内容的提问来源于stack exchange,提问作者Gopipuli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:12:04