OPcache 必须在 PHP 配置中启用,而非 trae;需在 php.ini 或 PHP-FPM 配置中设置 opcache.enable=1,重启 PHP-FPM 后用 phpinfo() 或 opcache_get_status() 验证。
OPcache 不能靠 trae 配置开启——trae 是个前端代理工具,不参与 PHP 运行时配置,它根本读不到 opcache.enable 这类 ini 指令。
t

opcache.enable=1 必须写在 PHP 的主配置里,常见位置:/etc/php/*/fpm/php.ini、/usr/local/etc/php/php.ini(macOS Homebrew)、或 php --ini 显示的 Loaded Configuration Fileopcache.enable_cli=0(CLI 下默认关)和 opcache.preload(如需预加载)等参数是否按需设置sudo systemctl restart php*-fpm 或 brew services restart php;只重启 trae 没用trae 本身不处理 PHP,但它要把请求以 FastCGI 协议发给 PHP-FPM。如果这步出错,即使 OPcache 已启用,你也看不到效果(甚至 502)。
fastcgi_pass 是否指向正确的 PHP-FPM socket 或地址,比如 127.0.0.1:9000 或 unix:/var/run/php/php8.2-fpm.sock
www.conf 中 listen 和 listen.owner/listen.group 权限匹配,否则 trae 连不上,直接报 connect() failed (111: Connection refused)
upstream prematurely closed FastCGI stdout,大概率是 PHP-FPM 崩了或超时,和 OPcache 无关,但会掩盖真实问题trae 日志里没有 OPcache 状态信息。要确认 OPcache 起作用,必须进 PHP 环境查:
info.php:,浏览器打开后搜索 “OPcache”,看到 “Opcode Caching => Enabled” 才算成功php -i | grep opcache,重点看 opcache.enable 和 opcache.status 是否为 enabled
opcache_get_status() 返回数组里的 opcache_enabled 和 memory_usage 字段,能确认缓存是否在积累很多人卡在“改了 trae 就以为配好了”,结果 OPcache 根本没加载。真正关键的三步是:改对 php.ini → 重启 PHP-FPM → 用 phpinfo() 或 opcache_get_status() 验证。trae 只是流量入口,它不碰 PHP 的任何扩展开关。