我正在尝试使用以下行(作为配置脚本的一部分)通过geerlingguy 的 Ansible Role for PHPopcache.max_accelerated_files
将覆盖 PHP 的设置应用到geerlingguy/centos6的 VM 上:
php_opcache_enabled_in_ini: false
php_opcache_enable_cli: 1
php_opcache_max_accelerated_files: "4096"
这似乎工作(如10-opcache.ini
创建/etc/php.d
)为:
opcache.enable=1
opcache.enable_cli=1
opcache.max_accelerated_files=8192
但是该选项仍然没有被 PHP 覆盖:
$ php -i | grep opcache.max_accelerated_files
opcache.max_accelerated_files => 4000 => 4000
这是因为opcache.ini
已经设置了这个设置:
$ grep ^opcache.max_accelerated_files opcache.ini
opcache.max_accelerated_files=4000
并且不知何故它优先于10-opcache.ini
.
我尝试将默认值更改php_opcache_conf_filename
为opcache.ini
,但随后10-opcache.ini
被覆盖并清除了以前的内容(包括zend_extension=opcache.so
行),因此 OPcache 被禁用。
如何使用 PHP 的 ansible 角色更改 PHP 设置,以便正确应用设置,这将覆盖以前的值?
我认为这是因为
10-opcache.ini
按opcache.ini
字母顺序排列,这与加载顺序有关。所以配置opcache.ini
是最后一个应用的。您可以将文件名更改为类似
zzz-opcache.ini
或我喜欢的方式zzz-custom.ini
在一个文件中添加所有自定义配置。另一方面,为什么你会有两个用于 opcache 的文件?你能把它们合二为一吗?