21avr.2007
eAccelerator: PHP Accelerator, optimizer & dynamic content cache
eAccelerator est un accélérateur, optimiseur et cache pour interpréteur PHP.
Une fois compilé et installé sur votre serveur, il permet une accélération du temps de génération d'un script PHP.
Mais comment fait-il celà ? Explications, installation et configuration ...
- La première fonction de eAccelerator est d'optimiser les scripts PHP.
En effet, il est quelques fois possible d'améliorer un script afin qu'il demande moins de ressources à l'éxécution.
Parfois, il arrive d'utiliser des "raccourcis" de codage, ou des structures visuellement plus claires, mais qui sont plus gourmandes que d'autres méthodes.
eAccelerator se charge du sale boulot.
Je ne saurais pas vous dire exactement ce que fait eAccelerator dans cette étape, mais le gain peut être non-négligeable selon votre manière de coder.
Cette fonction peut-être activée/désactivée selon vos besoins (cf. configuration).
- La fonction principale d'eAccelerator est de mettre en cache les script "compilés".
Pour celà, il se sert du travail effectué par l'interpréteur (lire l'article du JDN Développeurs à ce sujet).
Habituellement, l'interpréteur recommence son travail à chaque exécution d'un script. Si un script A est exécuté 5 fois en 10 secondes, l'interpréteur fait 5 fois le même travail. Même si le script n'a pas été modifié dans cet intervalle de temps.
Ainsi, eAccelerator vérifie à chaque exécution si le script a été modifié depuis sa dernière compilation. Si tel est le cas, il demande à l'interpréteur de le recompiler. Sinon, il va chercher et exécute la version du script compilé qu'il a en cache. Le gain de temps est considérable étant donné qu'un script est rarement modifié comparé au nombre d'exécutions qu'il peut être demandé.
La mis en cache s'effectue généralement en mémoire vive (selon la configuration) afin d'améliorer encore plus l'accès aux données.
Je parle de "compilation" même si ce n'est pas exactement celà, mais ça reste le terme le plus représentatif du travail effectué.
- Installer eAccelerator sous Linux (Debian based dists)
1. Vérifiez que vous possédez le package "php-dev" ou "php5-dev" selon votre version de PHP, nécessaire à la compilation.
aptitude install php5-dev
2. Téléchargez la dernière version d'eAccelerator (0.9.5.1 à l'heure actuelle)
wget http://bart.eaccelerator.net/source/0.9.5.1/eaccelerator-0.9.5.1.tar.bz2
3. Décompressez l'archive
bunzip2 eaccelerator-0.9.5.1.tar.bz2 tar xvf eaccelerator-0.9.5.1.tar
4. Allez dans le répertoire des sources:
cd ./eaccelerator-0.9.5.1
5. Exécutez ces commandes successives pour lancer la compilation:
phpize ./configure make
6. La compilation a crée un fichier eaccelerator.so dans le sous-dossier modules.
Vous pouvez lancer la commande
make install
pour copier ce fichier dans le répertoire des extensions de PHP. Sinon, il vous faut le faire à la main.
7. Il faut à présent informer l'interpréteur PHP qu'il a un nouveau module à charger. Modifiez votre php.ini et ajoutez-y ces lignes:
extension="eaccelerator.so" eaccelerator.shm_size="256" eaccelerator.cache_dir="/var/cache/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"
Toutes les options disponibles sont décrites sur le site d'eAccelerator: http://www.eaccelerator.net/wiki/Settings
8. Créez le dossier de cache qui sera utilisé par eAccelerator:
mkdir /var/cache/eaccelerator chmod 777 /var/cache/eaccelerator
9. Rechargez Apache
/etc/init.d/apache2 reload
Tout doit être OK!
Pour vérifier qu'eAccelerator fonctionne, lancez la commande
php -v
Qui doit retourner quelque chose qui contient (entre autres choses):
with eAccelerator v0.9.5.1, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
Vos pages doivent à présent se charger plus rapidement qu'avant (jusqu'à 50% plus rapide).
Références:


