thinkphp5.0.24本身不控制opcache,需在php层面配置启用;确认opcache扩展已加载后,须设置opcache.enable=1等关键参数,并注意tp5注解路由依赖opcache.save_comments=1。

ThinkPHP5.0.24本身不控制OPcache,开启OPcache是PHP层面的配置动作,与框架安装完成与否无关。只要PHP版本 ≥ 5.5.0(TP5.0.24最低要求PHP5.4,但OPcache从PHP5.5起才内置),就可以启用。
确认PHP已编译并启用OPcache扩展
在项目根目录运行以下命令:
php -m | grep opcache若输出 opcache,说明扩展已加载;若无输出,需先启用:
- Linux/macOS:检查 php.ini 中是否包含 zend_extension=opcache.so(路径可能为
/usr/lib/php/.../opcache.so) - Windows:确认 php.ini 含有 zend_extension=php_opcache.dll,且该文件存在于
ext/目录下 - 重启Web服务器(如Apache、Nginx)或PHP-FPM进程使配置生效
关键OPcache配置项(建议写入php.ini)
仅开启扩展不够,必须设置合理参数才能真正生效并适配TP5应用:
- opcache.enable=1 —— 全局启用(CLI模式下默认关闭,Web请求中必须为1)
- opcache.enable_cli=0 —— 命令行禁用(避免think命令执行异常)
- opcache.memory_consumption=128 —— 分配128MB内存(中小项目够用,可按需调至256)
- opcache.max_accelerated_files=4000 —— ThinkPHP类文件较多,建议 ≥ 3000
- opcache.revalidate_freq=60 —— 每60秒检查一次PHP文件修改(开发环境可设为0,生产环境勿为0)
- opcache.fast_shutdown=1 —— 加速脚本结束时的清理过程
- opcache.save_comments=1 —— 必须开启,否则ThinkPHP的注解路由、反射类信息会失效
验证OPcache是否生效
创建一个 opcache-test.php 文件,内容如下:
访问该文件,或直接运行:
php -r "print_r(opcache_get_status());"重点查看:
- opcache_enabled → 应为 true
- memory_usage.used_memory_human → 显示已使用内存(非零即生效)
- opcache_statistics.hits → 请求命中数应随访问增长
ThinkPHP5.0.24特别注意事项
TP5.0.24未做OPcache兼容性破坏,但有两点易被忽略:
- 不要在 runtime/ 目录下启用OPcache自动缓存(它只缓存PHP脚本,不缓存模板或日志)
- 若使用了自定义的 thinkphp/library/think/Loader.php 或手动 require_once 大量文件,确保这些文件也受OPcache覆盖(默认是的)
- 升级或更换PHP版本后,OPcache缓存会自动清空,无需手动干预
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











