eAccelerator, booster PhP
Par LePiaf le vendredi, octobre 2 2009, 09:28 - Truc et astuce - Lien permanent
Par moment, l'éléPHPant est assez lourd
, et pour éviter que le
serveur ne s'écroule sous son poids, il faut mettre des éléments en cache. Le
système dotclear, par exemple, à son propre système de cache. Il met en cache
les templates, mais ce n'est pas suffisant. Et si on mettait le code en cache,
le pré-compiler.
Plusieurs système de cache existe, les plus connu, zend, apc et eaccelerator. Ici, je vais parler de eAccelerator.
eAccelerator, qu'est ce que c'est ?
eAccelerator is a free open-source PHP accelerator, optimizer, and dynamic content cache. It increases the performance of PHP scripts by caching them in their compiled state, so that the overhead of compiling is almost completely eliminated. It also optimizes scripts to speed up their execution. eAccelerator typically reduces server load and increases the speed of your PHP code by 1-10 times.
eAccelerator va mettre en cache la forme pré-complié de PHP.
Comment installer ?
Il faut télécharger les paquet développeur
aptitude install build-essential php5-dev
Ensuite télécharger les sources sur le site : www.eaccelerator.net
cd /tmp wget
http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6-rc1.tar.bz2
tar xvjf eaccelerator-0.9.6-rc1.tar.bz2 cd
eaccelerator-0.9.6-rc1 phpize ./configure
make make install
eAccelerator est maintenant installé. Il faut créé le fichier de configuration. Les fichiers de conf pour apache2 se situe dans /etc/php5/conf.d
nano /etc/php5/conf.d/eaccelerator.ini
et placer ces lignes dans ce fichier
extension="eaccelerator.so"
eaccelerator.shm_size="16"
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"
Pour savoir a quoi corresponde ses lignes, référez vous au guide :
3 paramètres importants :
- eaccelerator.shm_size : taille du cache en Mo
- eaccelerator.cache_dir : répéertoir du cache
- eaccelerator.enable : activer ou désactiver eAccelerator
N'oubliez pas de restart apache
/etc/init.d/apache2 restart
Comment savoir que eAccelerator est bien installé ?
créez un fichier phpinfo.
nano /var/www/info.php placer <?php phpinfo();
?> et aller vers ce fichier sur votre navigateur.
normalement il affiche
C'est fini ! 
Cadeau bonus : créé une RAM disque
Ca va vite hein
mais on peut aller encore plus vite. Et pourquoi pas
mettre le cache en RAM, après tout, la RAM il y en a beaucoup maintenant.
Certains serveurs montent a plusieurs giga de RAM. Mon modeste serveur possède
512Mo.
On va créé une RAM disque, c'est a dire un disque mais qui sera en RAM.
Etant donné que la RAM est beaucoup beaucoup plus rapide que le disque 
Il faut d'abord créé un dossier.
mkdir /var/cache/cache_eaccelerator chmod -R 777
/var/cache/cache_eaccelerator
Il faut monter un disque. Or il n'existe pas. On va lui définir une taille, disons, 64Mo. Le système de fichier est tmpfs, il permet d'accéder à la RAM.
mount -t tmpfs -o size=64M tmpfs
/var/cache/cache_eaccelerator
Ensuite, faire pointer le cache vers ce dossier et le tour est joué !
Ajouter une ligne dans le fstab pour qu'il se monte automatiquement au restart du serveur.
tmpfs /var/cache/cache_eaccelerator defaults,rw,size=64M 0
0
Conséquence, réduction de la charge CPU, et un site qui s'affiche beaucoup plus vite. Il faudrait faire des benchmark (test), mais ça fera l'objet d'un autre article.

Source :
note : j'ai mis le cache firefox sur une ram disque, et c'est
super ! 



Commentaires
hihihi oui c super utile