Accélérer un serveur apache avec eaccelerator

Le langage PHP est un langage interprété. Celà signifie qu’à chaque appel d’un fichier .php, le moteur PHP est obligé de compiler le script avant d’en envoyer le résultat à l’utilisateur. En cas d’affluence sur votre site, chaque script peut être interprêté plusieurs fois par minute, augmentant ainsi la charge de votre système.

Je vous propose ici d’installer eaccelerator, qui va stocker la version compilée des scripts PHP, et va ainsi accélérer la navigation sur votre site tout en soulageant la machine.

Installation

En premier lieu, il est nécessaire d’installer sur votre distribution linux les packages requis
apt-get install php5-dev

Il convient ensuite de télécharger eaccelerator sur votre système

cd /tmp
wget http://freefr.dl.sourceforge.net/project/eaccelerator/eaccelerator/eAccelerator%200.9.6.1/eaccelerator-0.9.6.1.zip
unzip eaccelerator-0.9.6.1.zip
cd eaccelerator-0.9.6.1

On peut ensuite le compiler comme on procède habituellement

export PHP_PREFIX="/usr"
$PHP_PREFIX/bin/phpize
./configure   --enable-eaccelerator=shared   --with-php-config=$PHP_PREFIX/bin/php-config
make
make install

Intégration dans PHP

Une fois en place sur votre système, il est nécessaire de demander au moteur PHP de le prendre en compte.

La première étape consiste à créer les répertoires nécessaires pour stocker le cache des fichiers

mkdir /var/cache/eaccelerator
chmod 0777 /var/cache/eaccelerator

Vous pouvez ensuite créer le fichier de configuration de eaccelerator à proprement parler, que nous nommerons /etc/php5/apache2/conf.d/eaccelerator.ini.

extension="eaccelerator.so"
eaccelerator.shm_size="32"
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="6"

Les valeurs présentées ici sont données à titre d’exemple et devront être adaptées à votre infrastructure.

La configuration est prête, il ne reste qu’à redémarrer le serveur apache pour bénéficier de la puissance de php eaccelerator.

/etc/init.d/apache2 reload

Alternatives

Sachez qu’il existe d’autres systèmes de cache équivalents qui peuvent être utilisés en lieu et place de eaccelerator.

  • xcache
  • apc

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *