Améliorer le temps de réponse de WordPress avec le .htaccess et PHP 5

J’expliquais dans un billet précédent une technique pour améliorer grandement la vitesse de réponse d’un blog sous WordPress, et de passer, pour moi, d’un temps moyen de 1.6 seconde (pour une page déjà cachée par wp-Super-Cache) à 300 ms en moyenne, ce en copiant la page directement à la racine du site, afin que Apache n’ait pas à exécuter WordPress pour envoyer la page. A la faveur d’un appel de Stan, j’ai eu les conseil prodigués par Gonzague, qui se sont révélés très payants. Ces conseils concernent le .htaccess.

Benchmark sur Ez-Publish montrant les différences entre PHP 4 et PHP5, sur un nombre de requêtes exécutables par seconde.

Quel sont ces conseils ?

Rajouter tout simplement trois lignes dans votre fichiers .htaccess, entre les lignes # BEGIN WordPress et # END WordPress les lignes :

SetEnv REGISTER_GLOBALS 0

SetEnv ZEND_OPTIMIZER 1

SetEnv MAGIC_QUOTES 0

SetEnv PHP_VER 5

A quoi servent ces lignes ?

Comme l’explique très bien OVH, « Cet exemple permet de désactiver REGISTER_GLOBALS, d’activer ZEND_OPTIMIZER et MAGIC_QUOTES et d’utiliser PHP 5 avec les fichiers en extensions php. »

Plus précisément, comme le dit Semageek :

On désactive la directive REGISTER_GLOBALS qui n’apporte rien à WordPress, tout comme la directive MAGIC_QUOTES avec « SetEnv MAGIC_QUOTES 0 ».

On active cependant le module ZEND_OPTIMIZER qui permet d’optimiser le code PHP et de mettre en cache les requêtes les plus utilisées

On active aussi le PHP en version 5 qui sera bien utile pour pas de module WordPress.

Notez que la ligne ZEND_OPTIMIZER ne sert à quelque chose que si ZEND est installé sur votre serveur, ce qui n’est pas toujours le cas. Pour en savoir plus sur les MAGIC_QUOTES, je vous renvoie .

Quels résultats ?

Sachez tout d’abord que PHP 5 est connu pour être beaucoup plus performant (et rapide) que PHP 4. Donc l’activation de PHP 5 va accélérer méchamment votre site, comme je l’ai constaté moi aussi.

En ce qui concerne le temps de réponse, j’ai pu constater une très nette amélioration, avec un temps de réponse de 300 ms en moyenne, comme le montre le graphique ci-dessous (le .htaccess a été mis en place hier, mais à 1h30 du matin, j’ai mis à jour ma version de WordPress).

Alors, ce que je ne comprends pas dans l’affaire, c’est depuis quand PHP 5 n’est plus activé, parce que j’avais déjà donné un conseil plus ou moins similaire il y a un peu plus de 6 mois. En tout cas, là c’est bien repartit, donc je ne me plaint pas 😉

[Image]

15 réflexions sur « Améliorer le temps de réponse de WordPress avec le .htaccess et PHP 5 »

  1. J'imagine pas ce que sa devais être avant vu comment c'est long pour le moment …

    RépondreRépondre
  2. Ces directives ne sont que pour l'hébergement mutualisé chez OVH …

    RépondreRépondre
  3. Oui, elle sont « prises chez OVH », mais pas valables seulement pour l'hébergement OVH, puisque toutes les directives peuvent se retrouver chez un hébergeur comme un autre.

    Si je prends l'exemple de 1and1, ces directives fonctionnent (en tout cas, chez moi, elles fonctionne, et je suis chez 1and1).

    RépondreRépondre
  4. Et bien je passe d'un temps de réponse maximum de 0.5 secondes actuellement (pour la page HTML), contre jusqu'à 2 secondes précédemment. Donc un gain de 1.5 seconde tout de même !

    RépondreRépondre
  5. Oui, toi tu es chez OVH, donc on est sûr et certain que ça fonctionne ! J'ai été sur ton blog, c'est effectivement assez rapide actuellement 🙂

    RépondreRépondre
  6. Perso sur mon serveur dédié (Mac Mini, Mac Os X léopard Server + iTools) cela fonctionne très bien, cependant je travaille en parallèle dessus alors certains ralentissements peuvent se faire sentir !! Ensuite j'ai aussi fait des test avec mon.itor.us et le gain est réel !

    RépondreRépondre
  7. Oui, j'utilises Google page Speed quand je suis sur FF, mais les dev tools de Chrome 4 Dev sont aussi bien.

    RépondreRépondre
  8. moi je n'ai pas un gain énorme en modifiant le htacces je passe de 1.5 seconde a 1.35, Par contre je n'utilise pas super cache car avec ovh il semblerais qu'il y ai des problèmes et que cela ne fasse qu'augmenter le temps de chargement, ( info trouver sur le forum d'ovh )

    RépondreRépondre
  9. Et sinon, tu as trouvé un moyen de diminuer le temps de chargement ? Je serais intéressé si tu as quelque chose !

    RépondreRépondre
  10. Cette solution est compatible avec wp super cache.
    Voici ce que donne mon htaccess en tenant compte de vos infos, est-ce correct ?

    SetEnv PHP_VER 5
    SetEnv REGISTER_GLOBALS 0
    SetEnv ZEND_OPTIMIZER 1
    SetEnv MAGIC_QUOTES 0
    SetEnv PHP_VER 5
    # BEGIN WPSuperCache

    RewriteEngine On
    RewriteBase /
    AddDefaultCharset UTF-8
    RewriteCond %{REQUEST_URI} !^.*[^/]$
    RewriteCond %{REQUEST_URI} !^.*//.*$
    RewriteCond %{REQUEST_METHOD} !POST
    RewriteCond %{QUERY_STRING} !.*=.*
    RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress|wp-postpass_).*$
    RewriteCond %{HTTP_USER_AGENT} !^.*(2.0\ MMP|240×320|400X240|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|Googlebot-Mobile|hiptop|IEMobile|KYOCERA/WX310K|LG/U990|MIDP-2.|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|PlayStation\ Portable|portalmmm|Proxinet|ProxiNet|SHARP-TQ-GX10|SHG-i900|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|webOS|Windows\ CE|WinWAP|YahooSeeker/M1A1-R2D2|iPhone|iPod|Android|BlackBerry9530|LG-TU915\ Obigo|LGE\ VX|webOS|Nokia5800).*
    RewriteCond %{HTTP:Accept-Encoding} gzip
    RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz -f
    RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz [L]

    RewriteCond %{REQUEST_URI} !^.*[^/]$
    RewriteCond %{REQUEST_URI} !^.*//.*$
    RewriteCond %{REQUEST_METHOD} !POST
    RewriteCond %{QUERY_STRING} !.*=.*
    RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress|wp-postpass_).*$
    RewriteCond %{HTTP_USER_AGENT} !^.*(2.0\ MMP|240×320|400X240|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|Googlebot-Mobile|hiptop|IEMobile|KYOCERA/WX310K|LG/U990|MIDP-2.|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|PlayStation\ Portable|portalmmm|Proxinet|ProxiNet|SHARP-TQ-GX10|SHG-i900|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|webOS|Windows\ CE|WinWAP|YahooSeeker/M1A1-R2D2|iPhone|iPod|Android|BlackBerry9530|LG-TU915\ Obigo|LGE\ VX|webOS|Nokia5800).*
    RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html -f
    RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html [L]

    # END WPSuperCache

    Merci !!

    RépondreRépondre
  11. Excellente ressource que voici. Suite à la lenteur du chargement de mes pages, j’ai appliqué vos recommandations, reconfiguré mon plugin de cache et c’est beaucoup plus rapide qu’avant. J’ai aussi quelques soucis de chargement de javascript qui ralentissent mes pages.

    Il va falloir que je me penche sérieusement sur la question. Merci pour les tuyaux en tout cas.

    RépondreRépondre

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.