Accélérer PHP avec APC
Posté le Wednesday 15 February 2012 | Catégories : PHP, Linux, Ubuntu, Optimisation
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