Attention, cet article a été posté en 2010. Il est
possible que les informations mentionnées ne soient plus d'actualité, ou que mon
opinion ait évolué. Merci d'en tenir compte lors de votre lecture.
Note : Ce billet a été rédigé par Aurelie. Elle est notamment à l’origine de cette 2eme version d’ilonet, basée sur un Wordpress décortiqué et optimisé.
Je vous rappelle le contexte, je me suis proposée pour écrire une petite série de billets sur l’optimisation de Wordpress. En analysant les sources du moteur de blogs, et en bidouillant un peu, j’ai en effet réussi à accélérer son chargement d’environ 27 fois. Et même si cela est plus difficile à quantifier, ces modifications ont aussi un impact important sur la charge du serveur : le blog consomme moins de ressources, donc le serveur est capable d’accueillir plus de lecteurs.
Lors du premier article, je vous présentais les petits trucs à astuces, à mettre en œuvre en premier lieu. Ces modifications ne touchaient que le cœur de Wordpress. Aujourd’hui, elles touchent également à la configuration du serveur. Cela signifie qu'il est souhaitable d'être administrateur du serveur en question ! Notez que je détaille les commandes pour une distribution Linux Debian Lenny, mais qu'elles sont facilement adaptables pour les autres distributions.
Utiliser le cache Wordpress
Je vous propose ici un cache super puissant. Oubliez les extensions qui vous promettent la lune, sans jamais tenir leurs promesses. Intelligent, ce système de cache place en effet les objets les plus utilisés en mémoire vive. C'est-à-dire qu’ils seront accessibles en une fraction de millisecondes, difficile de faire plus rapide !
Pour cela, vous devez au préalable installer Memcached sur votre serveur Web. Sous Linux Debian, utilisez simplement la commande suivante :
aptitude install memcached php5-memcache
Puis redémarrez votre serveur Apache :
/etc/init.d/apache2 restart
Si vous désirez vérifier que tout s’est bien déroulé, créez une page phpinfo.php contenant le code suivant :
test Si vous désirez vérifier q
avec retour
a la ligne
En l’appelant depuis votre navigateur Internet (comme Google Chrome ou Firefox), une rubrique memcache doit être affichée dans la page.
Pour activer le cache Wordpress, vous devez ensuite définir la constante WP_CACHE dans votre fichier wp-config.php, en y insérant la ligne suivante :
define('WP_CACHE', true);
Enfin, récupérez le contenu de ce fichier, puis enregistrez-le sous le nom object-cache.php dans le dossier wp-content/.
A partir de maintenant, l’ensemble du cache Wordpress est persistant, et sauvegardé en mémoire vive. Vous devrez obtenir une nette amélioration.
Utiliser le cache navigateur
Chaque navigateur possède un cache qui leur est propre. Cela lui permet d’éviter de recharger continuellement des images ou fichiers statiques, sans raison. Encore faut-il le prévenir que ce sont des fichiers statiques !
C’est notamment le cas pour l’ensemble de vos images ou feuilles de style CSS. Nous allons donc installer et utiliser le très bon module Apache expires, et le configurer pour mettre un cache de 10 jours sur toutes les images et fichiers CSS.
Pour cela, sous Linux Debian, commencez par créer un fichier nommé expires.conf, dans le dossier /etc/init.d/apache2/mods-available/, contenant les lignes suivantes :
ExpiresActive On
ExpiresByType text/css "access plus 10 days"
ExpiresByType text/javascript "access plus 10 days"
ExpiresByType application/x-javascript "access plus 10 days"
ExpiresByType application/javascript "access plus 10 days"
ExpiresByType image/x-icon "access plus 10 days"
ExpiresByType image/png "access plus 10 days"
ExpiresByType image/gif "access plus 10 days"
ExpiresByType image/jpeg "access plus 10 days"
ExpiresByType image/jpg "access plus 10 days"
ExpiresByType application/x-shockwave-flash "access plus 10 days"
Ensuite, pour activer ce module, tapez la commande suivante :
Puis redémarrez Apache :
/etc/init.d/apache2 restart
Et ensuite ?
Comme dit dans le précédent article, pour ne pas rendre ces manipulations totalement imbuvables, j’ai décidé de les répartir sur plusieurs petits articles.
Le programme des prochains articles est donc : configuration complète d’Apache, configuration du serveur de base de données MySQL et mise en place d’un cache lourd (via l’installation et la configuration d’un proxy).
L’ordre de ces articles n’est pas anodin : les premiers vous présentent les solutions les plus rapides à mettre en place, tandis que le dernier (sur le cache lourd par proxy) vous détaillera la solution ultime que j’ai pu trouver (à elle seule, elle vous permet de diviser le temps de chargement par 20 au moins).