Solutions pour accélérer WordPress
Les problèmes de performance auxquels nous sommes confrontés sur nos blogs WordPress nous amènent à chercher des solutions qui, lorsqu’elles s’empilent, produisent exactement le contraire de l’effet recherché !
Plugins WordPress en mode mutualisé
Parmi les très bons plugins WordPress, signalons WP Super Cache et aussi DB Cache Reloaded. Le premier génère automatiquement des pages statiques évitant l’exécution répétée des scripts Php. Quant au second, il éviterait l’exécution répétée des requêtes SQL. Pour ceux d’entre vous qui ont fait le choix d’un hébergement mutualisé, ce sont là, sans doute, les deux meilleures solutions du moment.
Au vu des tests sur mon serveur dédié, je reste très dubitatif quant à l’accélération que produisent ces deux extensions.
Cache Apache en mode dédié
Il y a aussi les mécanismes de cache spécifiques à Apache. J’avoue ne pas avoir mesuré leur impact réel.
Dans le fichier de configuration du serveur Apache de votre machine dédiée /etc/httpd/conf/httpd.conf sous CentOS, veillez à ce que les modules mod_cache, mod_disk_cache, mod_file_cache, mod_mem_cache soient chargés en les décommentant :
LoadModule cache_module modules/mod_cache.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
Ajoutez, par exemple, en tant que directives globales :
#Un cache de 64 MB
MCacheSize 64000
MCacheMaxObjectCount 1000
MCacheMaxObjectSize 256000
MCacheMinObjectSize 1
Enfin, à l’intérieur des directives relatives à votre VirtualHost, ajoutez ceci par exemple :
CacheEnable mem /
#CacheEnable disk /
#CacheEnable fd /
CacheMaxExpire 3600
#CacheMinFileSize 1
#CacheMaxFileSize 65536
#CacheRoot /tmp
#CacheDirLevels 3
#CacheDirLength 2
Pour être prise en compte, ces directives exigent le rechargement de votre serveur Apache : service httpd restart sous CentOS.
PageSpeed, une solution signée Google
Google vient de mettre à la disposition des administrateurs des plates-formes Web le module Apache PageSpeed. L’éditeur du plus grand moteur de recherche annonce une division du temps de chargement par deux.
Cache MySQL en mode dédié
Très simple à réaliser, il suppose que vous puissiez intervenir sur la configuration du serveur, ce qui est strictement impossible en mode mutualisé.
Éditez le fichier /etc/my.cnf sous CentOs et, pour un cache de 256 Mo, ajoutez les lignes suivantes :
query_cache_size=1
query_cache_size=268435456
Après avoir modifié votre fichier de configuration, rechargez MySQL.
Accélérateur PHP en mode dédié
Si vous êtes en mode dédié, je vous recommande chaudement d’utiliser les extensions eaccelerator sous CentOS. xcache et apc sont également de remarquables accélérateurs.
Vous pouvez aussi faire les modifications suivantes au niveau de votre fichier de configuration /etc/php.ini :
zlib.output_compression = On
zlib.output_compression_level=9
memory_limit=64K
Après modifications, vous devez recharger le service Apache.
Pour eAccelerator, je vous recommande d’apporter les modifications suivantes au niveau du fichier de configuration /etc/php.d/eaccelarator.ini :
eaccelerator.enable = 1
eaccelerator.keys = « shm »
eaccelerator.sessions = « shm »
eaccelerator.content = « shm »
eaccelerator.shm_only = 1
Pour fixer la taille utilisée à 64MB :
eaccelerator.shm_size = « 64 »
Memcache sous PHP et W3 Total Cache (Mode dédié)
Cette méthode est tout particulièrement réservée aux serveurs dédiés. Vous devez tout d’abord installer memcached sous CentOS en ayant ajouté au préalable les dépôts stables nécessaires à l’opération et le paquet yum-priorities :
- yum update
- yum install php-pear
- yum install php-devel
- yum install httpd-devel
- yum install gcc make
- yum install zlib-devel
- yum install libevent libevent-devel
- yum install memcached php-pecl-memcache
Vous disposez d’une méthode alternative pour installer l’extension php : pecl install memcache.
Une fois installé, vous devez lancer le service memcached : service memcached start.
Installez alors le plugin WordPress W3 Total Cache. Son installation nécessite d’avoir désactivé les autres plugins de gestion de cache et tout particulièrement DB Cache Reloaded cité ci-dessus. Après avoir activé l’extension W3 Total Cache, cliquez sur le bouton Compatibility Check sur la page de l’extension et appliquez les instructions d’installations… si nécessaire.
Activez alors les quatre niveaux de cache (page, minify, database et object) selon la méthode Memcached à partir des listes déroulantes.
Squid en proxy transparent
Antoine Benkemoun a réalisé un article « éclairant » au sujet de la mise en place d’un reverse proxy avec Squid. Dans la même famille, signalons l’excellent proxy, Varnish.
J’ai, pour ma part, mis en place Squid pour limiter sur le flux sortant. Cela présente un intérêt très relatif !
Documentation officielle
- eAccelerator
- cache de requêtes MySQL
- Guide la mise en cache – Serveur Apache HTTP Version 2.2
- Memcached