2018/04/19

修改opcache php.ini后没有生效


使用 lnmp1.4 部署了环境,需要开启opcache

cd lnmp1.4-full
./addons.sh install opcache

提示安装完成后,前往php.ini进行修改配置参数

vi /usr/local/php/etc/php.ini

[opcache]
opcache.enable=1                        # 启用 OPcache
opcache.memory_consumption=256          # 分配给 OPcache 的内存空间(单位:MB),设置一个大于 64 的值
opcache.interned_strings_buffer=64      # 实际字符串的空间(单位:MB)
opcache.max_accelerated_files=32531     # 可以缓存多少个脚本,将这个值尽可能设置为与项目包含的脚本数接近或更大
opcache.validate_timestamps=0           # 0表示不自动释放缓存,性能最佳,需要手动进行释放
opcache.save_comments=1                 # 脚本中保留注释,推荐开启该选项,因为一些库依赖于这个配置
opcache.fast_shutdown=0                 # 快速关闭会给一个更快速清理内存的机制

然后重启php-fpm,接着使用 phpinfo() 查看内容,发现配置没有生效,原因是 opcache 生成了一份单独的配置文件,把php.ini里的配置给重置掉了,通过 phpinfo() 可以看到参数说明

Loaded Configuration File   /usr/local/php/etc/php.ini
Scan this dir for additional .ini files /usr/local/php/conf.d
Additional .ini files parsed /usr/local/php/conf.d/004-opcache.ini

加载配置文件 /usr/local/php/etc/php.ini
加载此目录下额外追加的 .ini 文件 /usr/local/php/conf.d
附加 .ini 文件解析 /usr/local/php/conf.d/004-opcache.ini

也就是说在载入完php.ini后,会去conf.d目录下载入额外的.ini文件配置。所以需求前往 /usr/local/php/conf.d/004-opcache.ini 文件下进行配置修改然后启动即可生效