Il m'a fallu si longtemps pour comprendre que c'était un problème MAMP! Pourquoi OPcache serait-il activé par défaut - et nécessiterait la désactivation de php.ini - dans une application censée être utilisée pour tester des sites Web? Quoi qu'il en soit, j'ai lu tout ce fil et j'ai essayé les différentes solutions.
Voici mes notes sur le fonctionnement de chaque solution et les considérations pour la sélection d'une solution.
Chaque solution fonctionne de manière autonome; pas besoin de redondance.
Solution de code de page Web
opcache_reset ();
<?php opcache_reset(); ?>
- Doit être ajouté dans le code de la page Web.
- Force tous les scripts à être rechargés.
- Fonctionne sans redémarrer le serveur MAMP.
Solutions de configuration de serveur
Important: utilisez le php.ini
fichier dans /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
et non dans
/Applications/MAMP/conf/php5.5.3/php.ini
. Ajustez en conséquence si vous utilisez une version différente de PHP.
enable = 0
[OPcache]
zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
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
enable=0
- Doit être ajouté sous
[OPcache]
dans php.ini
.
- Désactive OPcache.
- Nécessite un redémarrage du serveur MAMP.
opcache.revalidate_freq = 0
[OPcache]
zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.enable_cli=1
- Modifiez
opcache.revalidate_freq
sous [OPcache]
dans php.ini
.
- Permet à OPcache de vérifier les mises à jour toutes les 0 secondes au lieu de toutes les 60 secondes.
- Nécessite un redémarrage du serveur MAMP.
Commenter [OPcache]
;[OPcache]
;zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
;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
- Mettez en commentaire toute la
[OPcache]
section dans php.ini
.
- Supprime OPcache du serveur PHP.
- Nécessite un redémarrage du serveur MAMP.
Considérations
Choisissez la solution de code de page Web si:
- Il vous suffit de forcer l'actualisation du script pour un projet particulier
- Vous ne souhaitez pas redémarrer le serveur MAMP
- Vous ne voulez pas modifier php.ini
Choisissez une solution de configuration de serveur si:
- Vous souhaitez désactiver la mise en cache par défaut au lieu d'avoir à le faire dans chaque projet
- Vous êtes à l'aise avec l'édition de php.ini
Personnellement, je préfère enable=0
car c'est la solution la plus simple pour moi et j'ai besoin de la mise en cache désactivée par défaut.
Références