web-dev-qa-db-fra.com

Comment puis-je activer correctement l'OPCache de PHP 5.5 dans Ubuntu 14.04?

Je configure un serveur local pour tester les configurations; c'est un serveur 14.04 LAMP vierge, sélectionné lors de l'installation du système d'exploitation.

Si je comprends bien, OPCache est livré avec PHP 5.5 (php -v le confirme) mais dans un état désactivé. J'ai suivi les suggestions d'Internet pour l'activer, mais je reçois des messages contradictoires quant à savoir si cela a réussi ou non.

Mon php.ini a

zend_extension=/usr/lib/php5/20121212/opcache.so
opcache.enable=1
opcache.enable_cli=1

pourtant php -i, après avoir redémarré la machine, me dit

Opcode Caching => Disabled
Optimization => Disabled
Startup Failed => Opcode Caching is disabled for CLI

opcache.enable => On => On
opcache.enable_cli => Off => Off

c'est-à-dire il est apparemment activé et désactivé simultanément.

L'activation d'OPCache est-elle possible avec le package de référentiel 14.04 PHP ou dois-je compiler PHP à partir du code source?

10
mtdevans

Pour une raison quelconque, définir fast_shutdown=1 posait problème et empêchait le démarrage d’OPCache. Une fois que ceci a été défini sur 0, OPCache est opérationnel et fonctionne correctement (éventuellement lié à ce bogue ?).

Tout ce qui est nécessaire pour activer OPCache est donc de définir

; Determines if Zend OPCache is enabled
opcache.enable=1

dans le php.ini d'Apache suivi d'un redémarrage du serveur

service Apache2 restart

Remarque secondaire: php -i a tendance à utiliser un php.ini différent d'Apache (par exemple, /etc/php5/cli/php.ini), d'où la divergence déroutante dans la question initiale.

8
mtdevans

J'ai rencontré ce même problème tout au long de la journée et je suis heureux de l'avoir résolu de la manière suivante. Bien que la réponse ci-dessus soit marquée comme une réponse, il ressort clairement des commentaires de cette réponse qu'elle ne répond pas complètement à la question.

Le fichier correct à activer est en

/etc/php5/cli/conf.d 

Puis entrez ce qui suit ici

zend_extension=opcache.so
opcache.memory_consumption=128
opcache.max_accelerated_files=2500
opcache.interned_strings_buffer=8
opcache.revalidate_freq=60
opcache.fast_shutdown=1

N'oubliez pas de redémarrer Apache

Utilisez un outil tel que Statut Opcache pour vérifier si tout va bien et cela vous aidera avec les zones à ajuster.

J'espère que ça aide quelqu'un.

2
Vinu D

Je me suis heurté à cela lors de l'utilisation de php-fpm. J'ai découvert dans /etc/php5/fpm/conf.d qu'il y avait un lien symbolique 05-opcache.ini vers ../../mods-available/opcache.ini et un 20-opcache.ini pointant au même endroit. Cela causait un conflit.

J'ai enlevé un (le 20 depuis que eu une date de modification ultérieure), redémarré php-fpm, et tout est revenu.

1
apple4ever

le fichier correct est :/etc/php5/Apache2/conf.d/user.ini

0
Hanmant