Implantando o Zend Opcache usando o Cookbook PHP do Chef

1

Eu sou novo no Chef. Eu tentei escrever uma receita que instala o Zend OpCache (para o PHP 5.4, já que ainda não está embutido) usando o livro de receitas do Chef PHP .

Eu tentei usar o php_pear

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

mas o arquivo .ini gerado tem ZendOpcache como o prefixo para as variáveis

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"

o prefixo deve ser opcache .

Eu tentei criar manualmente o arquivo .ini sozinho

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

Quando tentei executar o PHP, existe esse aviso

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

O carregamento do módulo opcache é feito em dois lugares, ZendOpcache.ini e o manual opcache.ini .

A única solução que posso encontrar e trabalhar é esta

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

isso criará dois arquivos ZendOpcache.ini e opcache.ini . Um para carregar o módulo e outro para colocar a configuração.

Parece um desperdício usar dois arquivos de configuração para um módulo. Existe alguma maneira mais simples de fazer isso?

    
por Petra Barus 18.08.2014 / 12:42

2 respostas

1

Estamos usando o Remi repos e é um pacote yum normal e não precisamos sair diretamente para o PECL.

Assim, enquanto a técnica que você está usando na parte inferior recebe uma configuração zend opcache funcional, encontramos uma maneira um pouco melhor instalando o pacote php-pecl-zendopcache yum.

    
por 26.10.2015 / 19:32
0

Experimente o seu livro de culinária default.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
    
por 01.09.2014 / 16:30