phpinfo可查最大执行时间吗_查max_execution_time法【测时】

phpinfo() 显示的是当前 Web 环境下生效的 max_execution_time 值,分 Local Value(运行时可能被 ini_set 修改)和 Master Value(php.ini 原始值),但无法反映 set_time_limit(0) 等运行时重置行为,且 CLI 与 Web 配置独立,需分别检查。

phpinfo可查最大执行时间吗_查max_execution_time法【测时】

可以,但 phpinfo() 显示的是当前生效的 max_execution_time 值,不是“能查到的最大可能值”,也不反映运行时是否被动态修改过。

phpinfo() 里怎么找 max_execution_time

直接在浏览器打开 phpinfo() 页面后,用 Ctrl+F 搜索 max_execution_time。它会出现在 “Core” 配置区,显示三列:

  • Local Value:当前脚本实际生效的值(可能被 ini_set() 改过)
  • Master Value:php.ini 中原始配置的值
  • 如果两列不一致,说明代码里调过 ini_set('max_execution_time', ...)

为什么 phpinfo() 显示的值有时和预期不符

常见干扰因素:

  • max_execution_time 在 CLI 模式下默认为 0(不限制),但 phpinfo() 通常在 Web 环境下运行,显示的是 FPM/Apache 的配置
  • 某些 SaaS 或共享主机禁用 ini_set(),即使代码写了也无效,Local Value 仍等于 Master Value
  • 使用 set_time_limit(0) 会在运行时重置计时器并解除限制,但 phpinfo() 不会体现这个“运行中状态”

更可靠的检测方式:用代码实测

仅靠 phpinfo() 无法确认“脚本真能跑满 X 秒”,必须触发执行并观察中断行为。例如:

立即学习PHP免费学习笔记(深入)”;

造梦阁AI

造梦阁AI

AI小说推文一键成片,你的故事值得被看见

下载

ini_set('max_execution_time', 5);
$start = time();
while (time() - $start < 10) {
    usleep(10000); // 每 10ms 检查一次,避免 CPU 占满
}
echo "没超时,继续执行了";

如果页面报错 Fatal error: Maximum execution time of 5 seconds exceeded,说明限制真实生效;如果输出了那行文字,说明被绕过或设成了 0。

注意 CLI 和 Web 环境的配置是分开的

你在浏览器里看 phpinfo() 得到的 max_execution_time,和终端执行 php -i | grep max_execution_time 输出的很可能不同。很多框架(如 Laravel)的队列、命令行任务走 CLI,这时候得单独查 CLI 的 php.ini 路径:

php --ini

然后打开对应 php.ini 文件确认 max_execution_time 设置——这里最容易漏掉。

https://www.php.cn/faq/1985656.html

发表回复

Your email address will not be published. Required fields are marked *