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

DigitalOcean手动部署无Droplet时修改max_execution_time方法

DigitalOcean部署PHP应用max execution time超时解决方案

首先明确你操作无效的核心原因:你当前使用的是DigitalOcean App Platform(PaaS托管环境,非自建Droplet),从你返回的php.ini路径包含.heroku字段就能确认——该环境底层容器的系统路径为只读层,你没有权限直接修改预置的php.ini文件,之前尝试编辑系统路径下的配置报权限不足是正常现象,无需再尝试该路径的修改操作。

可行方案按优先级排序

方案1:正确配置.user.ini覆盖参数(平台官方支持方式)

你之前添加user.ini未生效基本是操作细节错误,按以下步骤修正即可:

  • 文件名必须为.user.ini(注意开头的.不能漏,不是user.ini)
  • 文件必须上传到Web服务的根目录(即PHP入口文件index.php所在的目录,多数框架如Laravel、ThinkPHP的web根目录是public文件夹,放在项目外层根目录不会被PHP读取)
  • 文件写入以下配置:
max_execution_time = 0
max_input_time = -1
  • 保存文件后必须重新触发一次全量部署,App Platform不会实时加载配置文件,只有重新构建部署后配置才会生效。部署完成后可临时创建phpinfo.php文件输出phpinfo()验证配置值,验证完成后及时删除该文件避免泄露服务器信息。

方案2:代码运行时动态设置配置(无需修改配置文件)

如果.user.ini配置后仍不生效,直接在应用入口文件最顶部加入运行时配置即可,优先级高于ini文件配置:

<?php
// 第一行就加,放在所有业务代码之前
ini_set('max_execution_time', 0);
ini_set('max_input_time', -1);

// 原有入口代码

如果使用框架,也可以在框架的服务提供者初始化阶段加入上述配置,避免被框架默认配置覆盖。

方案3:长时任务场景适配

如果你要执行的是耗时数分钟的批量处理、队列任务等操作,不要通过Web请求触发:

  • App Platform的Web组件前置网关有100秒的硬超时限制,这个是平台路由层规则,修改PHP配置无法绕过
  • 这类长时任务需要创建独立的Worker组件部署,Worker组件没有HTTP网关超时限制,配合上述超时配置即可正常运行长时任务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:34:03