如何通过 Ansible PHP 角色覆盖之前定义的 PHP 值?

如何通过 Ansible PHP 角色覆盖之前定义的 PHP 值?

我正在尝试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_filenameopcache.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 有两个文件?你能将它们合并为一个吗?

相关内容