Como habilitar o OPcache no Debian?

5

Acabou de instalar o php5-fpm. Todas as fontes dizem que o módulo apc foi substituído por OPcache e é compilado por padrão, mas não ativado.

Como posso ativar este módulo? Não consigo encontrar o arquivo opcache.so no meu servidor

Eu verifiquei /usr/lib/php5 e /etc/php5 , mas não consigo encontrá-lo.

php -v
PHP 5.4.4-14+deb7u4 (cli) (built: Aug 23 2013 14:37:41)
    
por user189078 08.09.2013 / 16:31

4 respostas

12

Você pode atualizar o PHP como o shaun m diz, ou se você não quer fazer isso você pode instalar o zendopcache do PECL

Verifique se a versão mais recente aqui instala a versão 7.0.3.

Instale "pecl" via php-pear

'sudo apt-get install -y php-pear'

Instalar dependências de compilação

sudo apt-get install -y build-essential php5-dev

Instale o Zend OpCache

sudo pecl install zendopcache-7.0.3

Encontre a localização do opcache.so

sudo find / -name 'opcache.so'

A minha é

/usr/lib/php5/20100525/opcache.so

Agora crie o opcache.ini

sudo vim /etc/php5/mods-available/opcache.ini

Adicione esta informação

zend_extension=/usr/lib/php5/20100525/opcache.so # File path from above
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

Agora crie um symlink para o arquivo conf

sudo ln -s /etc/php5/mods-available/opcache.ini /etc/php5/conf.d/20-opcache.ini

Reinicie os serviços

sudo service php5-fpm restart
sudo service apache2 restart

Confirme a instalação

php -v

Deve mencionar

Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

Em seguida, (opcionalmente) termine limpando

sudo apt-get remove --purge build-essential php5-dev

Referência

    
por 19.04.2014 / 13:40
2
O

OPCache só é habilitado e compilado por padrão no novo PHP 5.5, não no 5.4 que vem com o Wheezy. Se você gostaria de usar o OPCache e o PHP 5.5 no Debian, você terá que adicionar os repositórios dotdeb (veja abaixo) e instalar a partir daí.

deb http://packages.dotdeb.org wheezy-php55 all 
deb-src http://packages.dotdeb.org wheezy-php55 all
    
por 08.09.2013 / 17:58
0

Para adicionar a resposta de Jeremy Davis ...

Caso seu diretório / tmp esteja montado como "noexec" (evitando a execução de scripts escritos lá, o que é comum em servidores públicos), o comando pecl install falhará assim:

shtool at '/tmp/pear/temp/zendopcache/build/shtool' does not exist or is not executable.
Make sure that the file exists and is executable and then rerun this script.

Para evitar isso, você pode remontar a partição / tmp como exec, em seguida, instalar pecl, quando remontar como noexec, assim:

mount -o remount,exec /tmp
pecl install zendopcache
mount -o remount,noexec /tmp

Depois de checar com nosso sysadmin que estava tudo certo, eu tentei em um servidor em produção e funcionou perfeitamente (você terá que reiniciar o seu PHP (seja o FPM ou um módulo do Apache) depois disso, então provavelmente Não é uma boa idéia em um servidor de carga muito alta, mas para servidores públicos levemente usados, todo o processo parece funcionar muito bem.

    
por 07.04.2016 / 19:17
0

Você pode instalar o APC whit pecl

pecl install apc

php-pear e php-dev são necessários para instalá-lo.

Ou você pode instalar o whit apt-get

apt-get install php5-apc
    
por 08.09.2013 / 20:28