Arrêter la mise en cache de PHP 5.5.3 dans MAMP
a installé MAMP sur un nouveau Macbook avec PHP 5.5.3.
recharger et rafraîchir ne rien faire. Toujours rien. Cherchez sur Google pendant quelques minutes pour essayer de découvrir ce qui ne va pas, revenez nous rafraîchir. Elle fonctionne. Ce que le diable?
je suis entré en php.ini et désactivé tous les nouveaux OPcache et défini le temps de cache par défaut à 0. Ajout d'en-têtes au document pour ne pas forcer la mise en cache. Toujours le même problème. Ce que le diable se passe ici?
L'onglet Réseau affiche une requête HTTP 200, donc n'importe quel nouveau HTML dans le fichier index.php
rend bien, mais le nouveau PHP qui doit être rendu par le serveur est retardé et n'est pas rendu jusqu'à ce qu'un ensemble prédéterminé de temps passe que je ne sais pas comment changer. Ce qui se passe?
j'ai vérifié cela aussi dans Safari donc c'est certainement une chose de serveur qui empêche le fichier de rendre.
fait intéressant cependant, si je vais dans MAMP et changer le PHP version vers L'ancienne (PHP 5.2 ou quelque chose comme ça) il affichera normalement, sans "problèmes de mise en cache". Passer à PHP 5.5 et il raccroche. Dans les préférences MAMP, les options de mise en cache pour 5.5 n'existent même pas et sont automatiquement désactivées.
9 réponses
Désactiver OPCache
MAMP tourne maintenant sur OPCache par défaut, vous pouvez le désactiver en éditant votre php.fichier ini. Assurez-vous de modifier le php correcte.ini.
je rencontrais moi-même le même problème. MAMP avec PHP version 5.5.3 exécute OPcache par défaut, mais vous ne pouvez pas l'éteindre dans l'interface graphique comme vous le pouvez avec L'ancienne version PHP 5.2.17. Vous devez commenter manuellement toutes les lignes OPcache à la fin du php.fichier ini (MAMP/bin/php/[version]/conf / php.ini) et assurez-vous d'arrêter et démarrer les serveurs pour que les modifications prennent effet.
j'ai mis à jour L'URI, les modifications peuvent être réfléchies en changeant aussi /conf/ sous le dossier php, mais il semble que MAMP les ignorera après redémarrage .
j'ai ajouté opcache_reset (); dans mon PHP principal pour arrêter cette mise en cache.
L'enlever de php5.5.3/conf/php.ini
n'a rien fait pour moi.
Modifier
S'avère Qu'il y a aussi un /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
. Il
fonctionne si j'ai fait un commentaire là-bas.
1) in /Applications/MAMP/bin/php/php5.5.3 / conf / php.ini
2) définir opcache.revalidate_freq=0
3) redémarrage MAMP
m'a pris tellement de temps pour comprendre que c'était un problème de MAMP! Pourquoi OPcache serait activé par défaut-- et requerrait php.Je Bricole pour désactiver-- dans une application qui est censée être utilisée pour tester des sites web? Quoi qu'il en soit, j'ai lu tout ce fil et essayé les différentes solutions.
Voici mes notes sur le fonctionnement de chaque solution et les considérations pour choisir une solution.
chaque solution fonctionne de manière autonome; Non besoin de redondance.
"1519250920 Page de code solution
opcache_reset ();
<?php opcache_reset(); ?>
- doit être ajouté dans le code de la page web.
- oblige tous les scripts à être rechargés.
- fonctionne sans redémarrer le serveur MAMP.
configuration du Serveur de solutions
Important: utilisez le fichier php.ini
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]
dansphp.ini
. - Désactive OPcache.
- nécessite le 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
- modifier
opcache.revalidate_freq
sous[OPcache]
dansphp.ini
. - permet à OPcache de vérifier les mises à jour toutes les 0 secondes au lieu de toutes les 60 secondes.
- nécessite le 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
- Commentaire de l'ensemble de la
[OPcache]
, rubriquephp.ini
. - supprime OPcache du PHP serveur.
- nécessite le redémarrage du serveur MAMP.
considérations
choisir la solution de code de page Web si:
- Vous avez juste besoin de la force de script rafraîchissant pour un projet particulier
- vous ne voulez pas redémarrer le serveur MAMP
- vous ne voulez pas éditer php.ini
Choisissez une solution de configuration de serveur si:
- vous voulez désactiver la mise en cache par défaut au lieu de devoir 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 que la mise en cache soit désactivée par défaut.
Références
il semble que ce soit finalement une option GUI. MAMP 3.0.7.2 for Mac OS X
.
c'était douloureux de passer une heure à essayer de comprendre ce que ça pouvait être.
je viens d'ajouter ceci à la fin du code et redémarrer MAMP.
opcache.revalidate_freq=0
opcache_reset();
Edit " /Applications/MAMP/conf / php5.5.3 / php.ini", et rechercher [OPcache] et ajouter ce code sous elle directement:
opcache.enable=0
ceci désactivera opcache lorsque vous utilisez PHP dans le serveur MAMP.
Oh man, je suis content, j'ai trouvé ce thread! J'étais tirant sur mes cheveux! Je viens de mettre à jour MAMP hier et n'ai pas remarqué ce problème de cache jusqu'à aujourd'hui alors que je travaillais sur un projet. Pensais que j'étais en train de perdre mon esprit. Je viens de changer "/Applications/MAMP/conf/php5.5.3 / php.ini " très bas du fichier opcache.enable=0
c'est également courant dans la version Windows de MAMP.
C:\MAMP\conf\php5.6.3\php.ini
est au bas du dossier.
l'autre problème que j'ai trouvé, était sur un QNAP NAS TS-431. Cette mise en cache est activé, et si vous travaillez avec l'évolution dynamique des fichiers, ou d'essayer de développer sur ce, vous serez d'arracher vos cheveux. Comme pour les autres commentaires, juste un commentaire c'. Le réglage est situé dans:
Panneau de configuration/Applications/serveur Web/PHP.ini de Maintenance.
une fois de plus, vous trouverez les paramètres au bas du fichier.