Развертывание пехлеви Opcache Используя шеф-повара поваренная книга PHP

Я являюсь новым на Шеф-поваре. Я пытался писать рецепт, который устанавливает Пехлеви OpCache (для PHP 5.4, начиная с не встроенного все же) использование Шеф-повара поваренная книга PHP.

Я пытался использовать php_pear

php_pear "opcache" do
    package_name "ZendOpcache"
    action :install
    preferred_state "beta"
    zend_extensions ["opcache.so"]
    directives node['php']['opcache']['directives']
end

но .ini сгенерированный файл имеет ZendOpcache как префикс для переменных

ubuntu@webserver3:~$ cat /etc/php5/conf.d/ZendOpcache.ini 
; configuration for php ZendOpcache module
zend_extension=/usr/lib/php5/20100525/opcache.so
ZendOpcache.revalidate_freq="60"
ZendOpcache.enable_cli="1"
ZendOpcache.memory_consumption="128"
ZendOpcache.interned_strings_buffer="8"
ZendOpcache.fast_shutdown="1"
ZendOpcache.max_accelerated_files="4000"
ZendOpcache.save_comments="0"

префикс должен быть opcache.

Я затем попробовал, вручную создают .ini файл самостоятельно

template "#{node['php']['ext_conf_dir']}/opcache.ini" do
    source "extension.ini.erb"
    cookbook "php"
    owner "root"
    group "root"
    mode "0644"
    variables(:name => 'opcache', :extensions => {'/usr/lib/php5/20100525/opcache.so' => true}, :directives => node['php']['opcache']['directives'])
   action :create
end

Когда я пытался выполнить PHP существует это предупреждение

PHP Warning:  Module 'Zend OPcache' already loaded in Unknown on line 0
[exec] PHP Warning:  Zend OPcache: module registration failed! in Unknown on line 0

opcache загрузка модуля сделана в двух местах, ZendOpcache.ini и руководство opcache.ini.

Единственное решение, которое я могу предложить и работа, является этим

php_pear "opcache" do
    package_name "ZendOpcache"
    action :install
    preferred_state "beta"
    zend_extensions ["opcache.so"]
end

template "#{node['php']['ext_conf_dir']}/opcache.ini" do
    source "extension.ini.erb"
    cookbook "php"
    owner "root"
    group "root"
    mode "0644"
    variables(:name => 'opcache', :extensions => {}, :directives => node['php']['opcache']['directives'])
    action :create
end

это создаст два файла ZendOpcache.ini и opcache.ini. Один для загрузки модуля и другого для помещения конфигурации.

Это кажется немного ненужным использованием двух файлов конфигурации для одного модуля. Там какой-либо более простой путь состоит в том, чтобы сделать это?

1
задан 18 August 2014 в 13:42
2 ответа

Попробуйте в вашей кулинарной книге по умолчанию.rb:

bash "adding zendopcache-7.0.3" do
  if `php -v | grep OPcache`.empty?
    code <<-EOH
    apt-get install -y php-pear build-essential php5-dev
    pecl install zendopcache-7.0.3
    EOH
  end
end

template "#{node[:php][:ext_conf_dir]}/opcache.ini" do
  source "opcache.ini.erb"
  mode "0644"
end
0
ответ дан 4 December 2019 в 00:20

Мы используем репозитории Remi, это обычный пакет yum, и нам не нужно выйти напрямую в PECL.

Таким образом, хотя метод, который вы используете внизу, дает работающую настройку zend opcache, мы нашли немного лучший способ, просто установив пакет yum php-pecl-zendopcache .

1
ответ дан 4 December 2019 в 00:20

Теги

Похожие вопросы