必须启用并调优OPcache:确认opcache.enable=1且zend_extension=opcache.so已加载进PHP-FPM进程,编辑正确php.ini(非CLI配置),设memory_consumption=256、max_accelerated_files=20000等参数,重启php74-fpm后用phpinfo()和opcache_get_status()验证命中率≥80%。

PHP 7.4部署在宝塔面板后网站响应慢、TTFB高、CPU占用持续偏高,说明PHP脚本仍在重复执行读取→分词→解析→编译全过程,必须启用并调优OPcache,同时确保其真正加载进PHP-FPM进程而非仅CLI环境。
确认OPcache是否真在Web环境运行
很多人点完“启用OPcache”就以为生效了,结果页面照旧卡顿。根本原因是:CLI(命令行)和Web(PHP-FPM)用的是两套php.ini,【php -m | grep opcache成功不代表网页能用】。
在网站根目录新建info.php,内容为<?php phpinfo(); ?>,用浏览器访问它。
搜索Loaded Configuration File,复制显示的完整路径——这才是你要验证的php.ini位置,不是/etc/php/7.4/cli/php.ini。
立即学习“PHP免费学习笔记(深入)”;
在该页面中再搜Opcode Caching,状态必须显示Enabled;同时检查opcache.enable行右侧值必须是On(不是1或空)。
若出现opcache_get_status()报Call to undefined function,说明扩展压根没加载进Web SAPI,后续所有调参都无效。
手动编辑php.ini启用并配置关键参数
宝塔后台“性能调整”页暴露的参数太少,真正影响缓存命中率的是以下几项,必须手动写入正确的php.ini:
第一步:进入宝塔 → 软件商店 → 找到已安装的PHP 7.4 → 设置 → 配置修改。
第二步:搜索[opcache],若无此区块,在文件末尾新增一行:[opcache]。
第三步:确认存在且未被注释的加载行:【zend_extension=opcache.so】(不是extension=opcache.so;写错会静默失败,不报错也不生效)。
第四步:在[opcache]区块下添加或修正以下参数:
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=1
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=0
注意:opcache.max_accelerated_files设为20000是针对WordPress插件多或vendor文件超15000的项目;若你项目PHP文件总数不足3000,设7963更稳(质数可减少哈希冲突)。
重启PHP-FPM服务使配置真正生效
只点宝塔界面上的“保存”按钮,只是把内容写入php.ini,OPcache仍不会加载进PHP-FPM进程。
必须让PHP-FPM完整重启,重新读取ini文件。
在宝塔PHP设置页右上角点击“重载配置”,它会自动执行systemctl restart php74-fpm。
或者手动执行:sudo systemctl restart php74-fpm(服务名必须是php74-fpm,不是php-fpm或php74)。
重启后,刷新info.php页面,再次确认Opcode Caching状态为Enabled;再执行php -r "print_r(opcache_get_status()['opcache_statistics']);",观察opcache_hit_rate是否≥80%。



















