web-dev-qa-db-fra.com

Comment puis-je savoir si PHP la mise en cache est activée?

J'avais l'habitude de penser que la mise en cache était très difficile à installer, alors je ne l'ai jamais fait ... Après avoir lu sur APC, l'installation semble assez facile. J'ai toujours pensé que je devrais modifier beaucoup de code PHP dans mon application pour l'utiliser lol.

Quoi qu'il en soit, je veux installer APC. Je peux utiliser phpinfo () et remarquer que ce n'est pas répertorié sur la page, donc il n'est pas installé. Est-ce que cela se voit aussi pour les divers autres systèmes de cache existants? Je ne souhaite pas installer APC si un autre système de mise en cache est déjà installé car je ne sais pas si cela provoquera des conflits. Est-ce que les hôtes les installent automatiquement pour vous?

Quelles sont les étapes à vérifier pour voir si une sorte de mise en cache est activée?

23
Joker

Toutes les extensions de cache installées seront listées dans votre fichier phpinfo (); Ils doivent être répertoriés comme l'un des arguments de la zone "Configurer la commande" (par exemple, -enable-apc) et doivent avoir leurs propres sections quelque part sur la page.

APC et Memcache sont deux des modules de mise en cache les plus populaires PHP.

11
simshaun

Pour le vérifier par programme:

if(extension_loaded('apc') && ini_get('apc.enabled'))
{
    echo "APC enabled!";
}

Remarque: à partir de la version 5.5 PHP a désormais un cache/optimiseur Opcode (bien que désactivé par défaut) Si vous voulez toujours exécuter APC, il existe l'extension APCu que @alcohol mentionne dans un commentaire. Si vous utilisez cette extension, vous devrez remplacer extension_loaded ('apc') par extension_loaded ('apc u '). Ou vous pouvez le vérifier depuis la ligne de commande:

phpX.Y -i | grep apcu

Assurez-vous cependant que vous utilisez le même PHP binaire utilisé par votre serveur Web.

64
Andreas Bergström

Je pense que généralement, la plupart des fonctionnalités de mise en cache de PHP seront sous la forme d'extensions, et celles-ci devraient apparaître dans un appel phpinfo () (bien que vous deviez les reconnaître). 

Vous en trouverez qui sont écrits en PHP et peuvent mettre en cache les chargements de page, en particulier. lorsque ce contenu est généré à partir d'une base de données ou d'autres requêtes Web, etc., mais celles-ci nécessitent généralement une connaissance de ladite bibliothèque et vous obligent à modifier votre code. 

Cela dépend également du type de mise en cache que vous recherchez, car différents programmes et extensions effectuent différentes tâches. Alors que APC met en cache votre code semi-compilé/interprété pour améliorer les performances, quelque chose comme Memcache (également recommandé) vise à réduire la charge de toute fonctionnalité de base de données que vous utilisez éventuellement. 

Personnellement, je rechercherais la fonctionnalité dont vous avez besoin et installerais celle-ci - à moins que ce ne soit déjà fait. 

0
Adam