开启OPcache可提升PHP应用响应速度30%以上,需验证安装、配置关键参数(如opcache.enable=1、memory_consumption等)、重启服务,并合理处理部署缓存刷新。

直接开启OPcache就能让多数PHP应用响应速度提升30%以上,关键是几步配置要到位,不是装上就完事。
确认OPcache是否已安装并启用
很多环境默认没开,得先验证:
- 终端运行 php -m | grep opcache,有输出说明扩展已加载
- 新建一个PHP文件写 phpinfo(),浏览器访问后搜索“OPcache”,看“Opcode Caching”是否显示 Enabled
- 执行 var_dump(opcache_get_status()),返回数组且 opcache_enabled 为 true 才算真正跑起来了
修改php.ini启用并调关键参数
找到你的php.ini(用 php --ini 查路径),在文件末尾添加或修改以下区块:
- zend_extension=opcache.so(Linux)或 zend_extension=php_opcache.dll(Windows),确保这行没被注释
- opcache.enable=1(必须设为1;CLI环境可设为0避免干扰调试)
- opcache.memory_consumption=128(中小项目够用,大应用建议256或512)
- opcache.max_accelerated_files=20000(Composer项目常超默认4000,务必调高)
- opcache.validate_timestamps=0(生产环境关时间戳检查,避免I/O拖慢)
- opcache.revalidate_freq=0(配合上一条,彻底跳过自动检测)
- opcache.fast_shutdown=1(加速脚本终止清理,推荐开启)
重启服务并验证生效
改完配置不重启等于白改:
- 必须重启 PHP-FPM(如 systemctl restart php-fpm)
- 如果用Nginx/Apache,也需重启对应Web服务(systemctl restart nginx 或 apache2)
- 再跑一次 opcache_get_status(),重点看 opcache_enabled、memory_usage.used_memory 和 opcache_statistics.num_cached_scripts 是否有值
部署更新时别卡在缓存里
代码发了但页面没变?大概率是OPcache没刷新:
- 开发/测试环境可设 opcache.validate_timestamps=1,改完代码自动重载
- 生产环境建议配合部署脚本调用 opcache_reset(),或写个简单 opcache-reset.php 接口供curl触发
- 注意:OPcache是进程级缓存,PHP-FPM worker之间不共享,但单个worker内复用高效
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











