2020-12-25 23:47:02
在Windows 11上开启PHP的OPcache功能,可通过以下步骤实现性能优化:
一、核心配置步骤定位php.ini文件
路径通常位于PHP安装目录(如C:php)或集成环境目录(如XAMPP的xamppphp、WAMP的wamp64binphpphp-x.x.x)。
若找不到,可通过命令行执行php --ini查看加载的配置文件路径。

编辑php.ini文件
用文本编辑器(如VS Code、Notepad++)打开php.ini,搜索[opcache]区块。若不存在,需手动添加至文件末尾。

启用OPcache扩展
找到;zend_extension=php_opcache.dll(或类似行),删除行首分号;以启用扩展。
确保路径正确,例如:zend_extension="C:phpextphp_opcache.dll"
配置关键参数在[opcache]区块下添加或修改以下配置:
opcache.enable=1 ; 必须设为1以启用OPcacheopcache.memory_consumption=128 ; 共享内存大小(MB),根据服务器内存调整opcache.interned_strings_buffer=8 ; 字符串存储优化(MB)opcache.max_accelerated_files=10000 ; 缓存文件数量上限opcache.revalidate_freq=0 ; 生产环境设为0(配合validate_timestamps=0)opcache.validate_timestamps=0 ; 生产环境关闭时间戳验证(需手动清缓存)opcache.fast_shutdown=1 ; 启用快速关机opcache.enable_cli=0 ; 禁用CLI模式(除非必要)开发环境建议:opcache.revalidate_freq=60 ; 每60秒检查文件更新opcache.validate_timestamps=1 ; 允许自动感知代码变更
保存并重启Web服务器
保存php.ini修改后,重启Apache/Nginx/IIS服务使配置生效。
验证OPcache是否启用
创建phpinfo.php文件,内容为<?php phpinfo(); ?>,放置于Web根目录。
浏览器访问该文件,搜索“OPcache”。若看到独立区块且“Opcode Caching”显示为“Up and Running”,则配置成功。

开发/生产环境混淆
问题:生产环境未关闭validate_timestamps,导致代码更新不生效。
解决:生产环境设为opcache.validate_timestamps=0,手动清缓存(调用opcache_reset()或重启服务)。
内存分配不合理
问题:memory_consumption过小导致缓存驱逐,过大浪费内存。
解决:初始设为128MB,通过phpinfo()查看命中率调整。
CLI模式误启
问题:CLI脚本未加速。
解决:默认关闭opcache.enable_cli=0,仅在必要时开启。
文件权限问题
问题:OPcache无权限写入缓存目录。
解决:检查系统临时目录或PHP配置目录的读写权限。
通过以上步骤和注意事项,可高效启用OPcache并规避常见问题,结合其他优化手段进一步提升PHP应用性能。