根本原因是opcache未启用或配置不当,加上laravel缓存未生效;需确认php.ini路径与opcode caching状态,用zend_extension加载opcache.dll并设opcache.enable=1,再执行php artisan config:cache、route:cache和view:clear。

确认 OPcache 是否已加载(关键第一步)
别只看 php.ini 改了没——Laragon 的 Web 模式(PHP-FPM 或 Apache)和 CLI 模式用的是两套配置,改错地方等于白干。
新建一个 info.php 放到项目根目录或 public 目录下,内容为:
用浏览器访问 http://localhost/info.php,查找两个关键信息:
-
“Loaded Configuration File” —— 确认你编辑的 php.ini 是它显示的那个路径(常见于
C:\laragon\etc\php\php.ini) -
“Opcode Caching” 区块 —— 必须显示 Enabled,且
opcache.enable值为 On
如果没看到 Opcode Caching,说明扩展根本没加载;如果看到但状态是 Disabled,说明配置被注释或写错位置。
Laragon 中正确启用 OPcache(Windows 专属要点)
Laragon 使用的是 PHP 的线程安全(TS)版本,OPcache 必须通过 zend_extension 加载,且路径必须是绝对路径(相对路径会静默失败)。
打开 Laragon 显示的 php.ini(上面 Loaded Configuration File 路径),在文件末尾添加或修改以下区块:
zend_extension="C:\laragon\bin\php\php-8.2.12\ext\php_opcache.dll"
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=1
opcache.revalidate_freq=2
opcache.fast_shutdown=1
opcache.save_comments=0
⚠️ 注意:
-
zend_extension的路径要严格匹配你当前 Laragon 使用的 PHP 版本目录(如php-8.2.12),可在 Laragon 主界面左下角查看 - 不要写成
extension=opcache—— 这是错的,Laragon 不认 -
opcache.validate_timestamps=1开发时必须设为 1,否则改代码不生效;上线前再改为 0
保存后,在 Laragon 界面点击 PHP → Reload(不是重启 Apache/Nginx),让配置生效。
配合 Laravel 自身缓存命令(缺一不可)
OPcache 只加速 PHP 执行,但 Laravel 的配置、路由、视图解析仍可能拖慢首次响应。开发模式下这些默认不缓存,必须手动触发:
- 进入项目根目录,运行:
php artisan config:cache(生成bootstrap/cache/config.php) - 运行:
php artisan route:cache(适用于无闭包路由的项目) - 运行:
php artisan view:clear(清除旧视图缓存,避免模板不更新)
✅ 验证是否生效:检查 storage/framework/cache/data/ 下是否有 config.php、routes-v7.php 等文件;再用 curl 测 TTFB:
curl -I http://localhost,关注 time_namelookup 和 time_starttransfer,理想值应低于 400ms(本地环境)。
额外提速建议(Laragon 用户常忽略)
本地开发追求快速反馈,但有些设置反而拖慢体验:
-
关闭 Xdebug:Laragon 默认启用 Xdebug,它会让 PHP 执行慢 2–3 倍。在 php.ini 中注释掉
zend_extension=xdebug行,或在 Laragon 设置里关掉 “Xdebug” 开关 -
禁用 APP_DEBUG=true 时的异常页面渲染:.env 中设
APP_DEBUG=false后,错误页不再加载大量调试信息,响应更快 - 用 php-fpm 替代 Apache(可选):Laragon 支持切换 SAPI,在设置中启用 PHP-FPM + Nginx 组合,比 Apache + mod_php 更轻量











