PHP 8.5.5 不存在,当前最新稳定版为 PHP 8.3;JIT 配置生效需满足编译开启(--enable-opcache-jit)、正确设置 opcache.jit=1205 等位掩码值、足够 jit_buffer_size 及 CLI 模式下启用 opcache.enable_cli=1。
PHP 8.5.5 不存在 —— 官方从未发布过 PHP 8.5 或其任何子版本(如 8.5.5),当前最新稳定版是 PHP 8.3,PHP 8.4 处于 alpha 阶段。所有关于 “8.5.5 JIT” 的配置尝试,实际都落在 PHP 8.0–8.3 的 JIT 机制上。抄错版本号、查错文档、用错编译参数,是 JIT 白配的最常见原因。
opcache.jit 是位掩码整数,不是布尔值。设成 On、1 或 tracing(旧文档残留写法)都会被 ini 解析器转为 0,JIT 实际不启动。
1205(稳妥,含函数内联+热点检测)、1255(加循环展开,但 PHP 8.1–8.2 下部分复杂循环可能触发 LLVM 崩溃)、1235(激进,启用全部优化层级,适合 CLI 长时计算)opcache.jit=tracing”——PHP 8.0+ 已移除该字符串模式,仅接受数字var_dump(opcache_get_status()['jit']),返回数组且 enabled === true 才算真启用;返回 null 或空数组 = 配置失败默认 opcache.jit_buffer_size=16M 在中型项目里几秒就耗尽,直接触发 Failed to allocate JIT memory 错误,JIT 自动降级为解释执行。
opcache_get_status()['jit']['buffer_size'] 显示为 0,memory_used 接近上限但不再增长64M,CLI 数学密集型脚本或 AI 推理建议 256M
opcache.enable=1 且 --enable-opcache-jit 编译前提下才生效;否则设再大也无意义JIT 不是 OPcache 的默认组件,而是可选子功能,编译时未开启,运行时配什么都无效。
立即学习“PHP免费学习笔记(深入)”;
--enable-opcache 必须存在(否则整个 OPcache 被禁用,opcache.jit 直接被忽略)--enable-opcache-jit 必须显式添加;缺省关闭,不加就等于没 JITphp:8.4-cli-alpine 等精简镜像通常缺失 --enable-opcache-jit,需换用非 Alpine 镜像或自行编译Web 请求中 OPcache 默认启用,但 CLI 脚本默认关闭,导致 php your_script.php 完全不走 JIT。
php.ini 中加 opcache.enable_cli=1
php -d opcache.enable=1 -d opcache.enable_cli=1 -d opcache.jit=1235 -d opcache.jit_buffer_size=256M script.php
echo "hello" 测 JIT真正卡住人的从来不是参数名,而是编译开关缺位、平台不支持、CLI 默认关闭、缓冲区耗尽却不报错——这些点不逐个验过,opcache.jit 就只是 ini 文件里一行安静的数字。