我正在尝试opcache.max_accelerated_files
通过以下方式应用覆盖 PHP 的设置geerlingguy 的 PHP 的 Ansible 角色到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 设置,以便正确应用设置并覆盖先前的值?
答案1
我认为这是因为按字母顺序排列10-opcache.ini
在前面opcache.ini
,这与加载顺序有关。因此的配置opcache.ini
是最后应用的。
您可以将文件名更改为类似的名称,或者按照我喜欢的方式在一个文件中zzz-opcache.ini
添加所有自定义配置。zzz-custom.ini
另一方面,为什么 opcache 有两个文件?你能将它们合并为一个吗?