Accélérer PHP avec APC
Lors de l'exécution d'un script PHP, le code source du ou des fichiers PHP est d'abord compilé en bytecode (appelé opcode) avant d'être exécuté. Cette phase est naturellement lourde en calculs et nécessite de lire chaque fichier sur le disque dur.
Alternative PHP Cache (APC) est une extension PHP qui optimise cet opcode, puis le met en cache, afin d'accélérer l'exécution des applications PHP. Il existe également d'autres accélérateurs PHP, mais APC est de loin le plus utilisé.
L'installation sur Ubuntu est très simple:
sudo apt-get install php-apc
sudo /etc/init.d/apache restart
Un script PHP est également fourni qui permet de contrôler le fonctionnement de APC. Pour l'utiliser, il faut le copier dans l'arborescence du site web, puis de modifier le mot de passe par défaut (normalement à la ligne 42):
sudo cp /usr/share/doc/php-apc/apc.php.gz /var/www/default
sudo gzip -d /var/www/default/apc.php.gz
sudo nano /var/www/default/apc.php
La page web est alors accessible à l'adresse http://www.mon-server.com/apc.php

La configuration de APC se fait dans le fichier /etc/php5/apache2/conf.d/apc.ini. Les paramètres par défaut sont relativement bon, mais on peut légèrement les optimiser:
- Augmenter la quantité de mémoire allouée au cache (paramètre apc.shm_size). Une bonne valeur de départ correspond à la taille de la mémoire RAM du serveur divisée par 16 (donc 256 pour 4Go de RAM);
- Activer le paramètre apc.lazy_classes.
D'autres paramètres existent également. La liste complète est disponible sur la page de configuration de APC. Voici un exemple de fichier /etc/php5/apache2/conf.d/apc.ini :
extension=apc.so
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 256
apc.lazy_classes = 1
Après avoir modifié le fichier, il faut redémarrer Apache, et surtout vérifier que celui-ci a démarré correctement:
sudo /etc/init.d/apache restart
sudo tail /var/log/apache/error.log
Commentaires
Articles similaires
- Système de fichier distribué GlusterFS
- Créer un document Excel (xls) avec PHP
- Compresser les fichiers Javascript et CSS avec YUI Compressor
- Contrôle précis des sessions PHP
- Supprimer les dossiers .svn
- Terminal : chercher dans l'historique
- Le standard PEAR
- Afficher les dates en français
- Protection contre la falsification de requête intersite (Cross-Site Request Forgery CSRF)
- Créer et diffuser un flux RSS
- Utiliser APC comme cache
- Convertir un document OpenOffice (.odt) avec PHP
- HTMLPurifier, les tableaux multidimensionnels (nested arrays) et les formulaires
- Protéger les mots de passe avec PHP
- Autoriser la mise en cache de contenu dynamique PHP
- Créer un bouton "Partager sur Facebook"
- XSS, et comment s'en protéger
- Créer une datagrid avec Mootools
- Des captchas avec PEAR
- Créer des mots de passe avec PEAR
- Utiliser PEAR et PECL derrière un proxy
- Evaluer la qualité de code avec PHP Mess Detector
- Protéger un serveur PHP avec Suhosin
- Accélérateur web Varnish
- Documenter correctement son code avec PhpDocumentor
- Détecter les copier-coller avec PHPCPD
- Obtenir les statistiques d'un projet PHP avec PHP Lines Of Code
- PHP Code Sniffer


