PHP开启OPcache提升页面速度完整配置
时间:2026-11-14 07:12 作者:emer 分类: PHP
前言
PHP 每次请求都要重新编译脚本,开启 OPcache 后会把编译结果缓存到内存,重复请求直接执行缓存,页面响应明显变快,是最廉价有效的 PHP 优化手段。很多面板默认没开或参数保守,本文讲解检查扩展、修改 php.ini 参数、重启 PHP-FPM、验证生效的完整步骤,适配 PHP7/8。
操作步骤
1. 检查 OPcache 是否已安装
php -m | grep opcache
有 opcache 输出即已安装;没有则先安装:
# Ubuntu/Debian
sudo apt install -y php-opcache
# 或 pecl
sudo pecl install opcache
2. 找到 php.ini 路径
php --ini
3. 修改 OPcache 参数
opcache.enable = 1
opcache.enable_cli = 0
opcache.memory_consumption = 128
opcache.max_accelerated_files = 10000
opcache.revalidate_freq = 60
opcache.validate_timestamps = 1
opcache.save_comments = 1
4. 重启 PHP-FPM
systemctl restart php-fpm
5. 验证生效
php -r 'var_dump(opcache_get_status()["opcache_enabled"]);'
或新建 info.php:
<?php phpinfo();
浏览器打开看 OPcache 段是否开启。
6. 部署更新代码后清缓存
代码更新但页面还是旧内容时:
systemctl reload php-fpm
常见坑
- CLI 和 FPM 使用不同 php.ini,命令行开了网站没开。
- validate_timestamps 设为 0,更新代码后 OPcache 不刷新,必须手动重启。
- memory_consumption 太小,大量站点缓存被淘汰,命中率下降。
- 改完没重启 php-fpm,参数不生效。
- save_comments 关闭会影响注解框架(如 ThinkPHP、Laravel)。
- 内存不足时盲目调大 memory_consumption,需结合服务器配置。
- 每次发版都 reload,高峰期重载会有短暂停顿。
总结
OPcache 是 PHP 提速标配:确认扩展 → php.ini 打开并合理设参 → 重启 FPM → phpinfo 验证。生产建议 validate_timestamps=1 配合固定缓存时间,发版时 reload 清缓存。监控命中率,低于 90% 再调大内存和文件数。
遇到问题加QQ23979811 协助处理