APC Cache PHP alternatif Présenté par : MASLINE-CAMERINI Antoine
Plan de la présentation - Pré requis à connaître - Introduction - Principe de fonctionnement - Installation - Utilisation - Comparatif - Conclusion Comparatif avec d’autre accélérateur PHP
Serveur d ’applications Serveur de bases de données Pré requis à connaitre - Php : Langage utilisé pour produire des sites web dynamique. HTML PHP HTTP POST/GET Connexion PHP Requêtes SQL Langage interprété Hypertext Preprocessor. Pages HTML $Résultat Client Serveur d ’applications Serveur de bases de données Navigateur web Apache + PHP
Pré requis à connaitre Quelques petites particularités : Code écrit entre « <?php » et « ?> » langage non typé Variable commençant par $ (exemple : $variable = "ok") foreach ($array_expression as $key => $value) { /* commandes */ }
Pré requis à connaitre
Introduction Signification d’APC ? -> Alternative PHP Cache But ? -> Accélérer la génération de scripts PHP. Le cache PHP alternatif (Alternative PHP Cache - APC) est un cache d'opcode libre et ouvert pour PHP. Son objectif est de fournir un framework libre, ouvert, et robuste, pour la mise en cache et l'optimisation de code intermédiaire PHP. PECL dépôt d ’extension PHP
Principe de fonctionnement Script PHP Parsing PHP Compile Cache OpCode « APC » Execute Output Page HTML
Principe de fonctionnement Benchmark avec Firebug APC sur Symphony 2.4 SANS APC AVEC APC
Installation - Avec de la chance votre hébergeur propose déjà cette extension. - Sinon : - Demander à votre hébergeur de l'installer. - Disposer de votre propre serveur dédié.
Installation (1/3) Installation sous Linux : Pour php < 5.5 >> sudo apt-get install php-apc >> sudo nano /etc/php5/apache2/php.ini Pour php >= 5.5 (OPCache Natif) >> sudo apt-get install php-apcu
Installation (2/3) Pour php < 5.5 Ligne à ajouter
Installation (3/3) Pour php >= 5.5 Redémarrer Apache : Dans php.ini >> zend_extension=/usr/lib/php5/20100525/opcache.so >> opcache.enable=1 Dans /etc/php5/mods-available/apcu.ini >> extension=apcu.so Redémarrer Apache : >> /etc/init.d/apache2 restart
Utilisation Propriété dans « php.ini » - apc.enabled : Activer / désactiver APC. apc.shm_size : La taille en mémoire attribué à APC apc.optimization : Degré d'optimisation - apc.filters : Expressions rationnelles séparées par des virgules. Exemple : apc.filters = "(exemple|index|favori\.php) » - apc.cache_by_default : Utilisation du cache par défaut Exemple : apc.cache_by_default = 0 apc.filters="+(exemple|index|favori\.php) » - apc.ttl : nombre de secondes pendant lesquelles le cache sera conservé.
Utilisation Exemple d’utilisation :
Utilisation Fonctions les plus utilisées Mettre en cache une variable (apc_add | apc_store) Récupérer une variable en cache (apc_fetch) Vérifier si une variable exist (apc_exists) Effacer une variable dans le cache (apc_delete) Supprimer le cache(apc_clear_cache) Mettre à jour une variable (apc_cas) Incrémenter/décrémenter une variable (apc_inc | apc_dec) Compiler un fichier (apc_compile_file) Supprime un fichier du cache (apc_delete_file) apc.add($key, $variable, $ttl) ou apc.add($array, null, $ttl) : Met en cache une variable dans le magasin de données, uniquement si elle ne s'y trouve pas déjà. - apc_fetch ($key, $success) : Récupère une variable stockée dans le cache. apc_exists ($keys) : Vérifie si une ou plusieurs clés APC existent. - apc_delete ($key) : Efface une variable stockée dans le cache. apc.store($key, $variable, $ttl) ou apc.store($array, null, $ttl) : Met en cache une variable dans le magasin. apc_clear_cache ($cache_type) : Efface le cache utilisateur/système.
Utilisation Benchmark avec Apache-Benchmark Sans l’utilisation d’un cache
Utilisation Benchmark avec Apache-Benchmark Avec l’utilisation d’un cache fichier
Utilisation Benchmark avec Apache-Benchmark Avec l’utilisation d’APC
Utilisation - apc_cache_info : Récupère les informations du cache et les métadonnées depuis le magasin APC. - apc_sma_info : Récupère les informations d'allocation mémoire partagée d'APC. apc_sma_info ($limited = false) :: $limited => par defaut à false - apc_cache_info ($cache_type , $limited) : Récupère les informations du cache et les métadonnées depuis le magasin APC. - apc_sma_info ($limited) : Récupère les informations d'allocation mémoire partagée d'APC.
Utilisation Exemple d’utilisation :
Comparatif de cache La comparaison des caractéristiques :
Comparatif de cache Tableau de compatibilité :
Conclusion Facile à installer Gain énorme de vitesse APC Très utilisé Facile à utiliser
Merci de votre attention
Sources http://php.net/manual/fr/book.apc.php http://en.wikipedia.org/wiki/List_of_PHP_accelerators http://www.inmotionhosting.com/support/website/what-is/speed-up-php-with-apc http://www.ricardclau.com/2013/03/apc-vs-zend-optimizer-benchmarks-with-symfony2/ http://forum.phalconphp.com/discussion/2594/opcached-php-frameworks-perform-better-than-phalcon http://getgrav.org/blog/mac-os-x-apache-setup-mysql-vhost-apc http://blog.nicolashachet.com/gestion-de-caches/optimisation-web-php-des-caches-a-tous-les-niveaux/ http://www.stephane-raymond.com/blog/webperf/caching-avance/ http://www.woueb.net/2011/04/11/accelerateur-php-apc/