PHP opcache 怎么用
日常做网站维护时,你可能会发现:同样的代码,有时候加载速度快得像“秒开”,有时候却要等上好几秒。除了服务器配置,PHP 里有个“隐形加速器”——OPcache,它就是帮代码“跑更快”的关键工具。很多开发者听过它,但不知道怎么用,今天就用大白话讲清它的用法,哪怕是新手也能跟着操作。
先搞懂:OPcache到底在做什么?
打个比方,你平时写的PHP代码,就像刚打印出来的试卷,每次给老师(服务器)批改(执行),都要重新读一遍、理一遍知识点(编译成机器能懂的指令),自然慢。而OPcache就像个“试卷复印机”:第一次把代码编译成“简化版试卷”存在缓存里,下次再用同一份代码,直接拿出缓存里的简化版给老师,不用再重新抄一遍,速度自然提上去。它本身是PHP的官方扩展,不用额外花钱装,只是默认很多服务器没开,或者配得不对。

第一步:先检查OPcache有没有开启
想先用它,得先确定它在工作。打开网站的“php信息文件”(或者服务器的PHP管理面板,比如宝塔、cPanel),搜索“opcache”,如果看到有“opcache.enable = 1”,就说明开了;要是显示“0”,就是没开启。
如果是自己的小服务器,也可以写一行简单的PHP代码验证:
`php
<?php
phpinfo();
?>
`
把这段代码存成phpinfo.php,传到网站根目录,访问这个文件就能看到所有PHP配置,找到OPcache的开关状态。
第二步:基础用法:改配置文件开启并调整参数
OPcache的核心是改PHP的配置文件php.ini,大部分服务器的位置在/etc/php.ini(或者对应PHP版本的目录,比如/etc/php/8.1/fpm/php.ini)。找到OPcache相关的配置项,改这几个关键参数就行:
- 开启核心功能:把opcache.enable设为1,这是基础,不设的话什么都白搭;
- 存多少缓存:opcache.memory_consumption设为128(单位MB,新手不用改太大,128MB足够中小网站用);
- 存多少份代码:opcache.max_accelerated_files设为10000,一般网站的脚本不会超过这个数;
- 自动更新缓存:新手最容易踩的坑是改了代码,页面却还是旧的——这是因为OPcache的缓存没更新,把opcache.revalidate_freq设为60,意思是每60秒检查一次代码有没有修改,自动更新缓存,不用手动清。
改完配置后,记得重启PHP-FPM或者Apache/Nginx服务,让设置生效,比如宝塔面板里点“重启PHP”,或者用命令sudo systemctl restart php8.1-fpm。
进阶用法:手动管理缓存
有时候改完代码立刻要生效,不想等60秒,就可以手动清OPcache缓存。新手可以用两种简单方法:
- 面板操作:如果用的是宝塔、云服务商的管理面板,直接搜“OPcache”,点“清除缓存”按钮,一键搞定;
- 写个小工具:在网站根目录建一个clear_opcache.php文件,内容是:
`php
<?php
if (function_exists('opcache_reset')) {
opcache_reset();
echo 'OPcache缓存已清除';
} else {
echo 'OPcache未开启';
}
?>
`
访问这个文件就能清缓存,用完记得删掉,避免别人恶意清你的缓存。
别踩这几个常见坑
- 不要乱改参数:比如把opcache.memory_consumption设得太小,会导致缓存不够,反而频繁清理,速度更慢;设太大,服务器内存不够用;
- 不要长期不更缓存:大网站如果代码更新了,一定要清缓存,不然用户看到的是旧页面;
- 测试再用:改完配置后,用测速工具(比如PageSpeed)测一下加载速度,要是变慢了,就回头看参数有没有设错。
OPcache是PHP自带的免费加速器,不用花钱装插件,只要开对、调好,中小网站的加载速度能提升30%以上。哪怕是新手,跟着步骤开起来,也能帮网站跑更快,不用再担心用户因为加载慢走掉。