Comment activer la compression GZIP et optimiser l'exécution PHP chez OVH sur un hébergement mutualisé
Depuis la sortie dans les Webmaster Tools de Google d'un nouveau labo dédié à l'optimisation, de nombreux développeurs ont ouverts les yeux. Leurs sites sont lents, très lents.
Lorsqu'on est en environnement mutualisé on a jamais la main mise sur la configuration du serveur. Du coup, un certain nombre d'hébergeurs, permettent à l'aide de fichiers ".htaccess" de modifier certaines options "globales" de PHP ou Apache dans son environnement.
OVH ne faillit pas à la règle et propose des solutions, pour certaines bien cachées, pour optimiser les performances d'affichage de votre site.
Comment utiliser ces options
Il vous suffit à la racine de votre site de créer un fichier nommé ".htaccess", puis de le remplir avec des "commandes" spécifiques qui permettront de réaliser ce que vous souhaitez à la manière de l'URL Rewriting.
Par exemple chez OVH pour activer l'utilisation de PHP version 5 il vous suffit d'ajouter à votre fichier:
SetEnv PHP_VER 5
Activer l'optimisation de PHP
Il semblerait que l'optimisation de PHP chez OVH ne soit activable que sur PHP version 5 Ã l'aide des outils de ZEND Optimizer.
Pour se faire ajouter les lignes suivantes dans votre ".htaccess":
SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1
SetEnv MAGIC_QUOTES 0
SetEnv PHP_VER 5
Je n'ai pas testé le fonctionnement sans les variables gloables et magic_quotes à OFF mais je pense que cela ne change pas grand chose. Dans tous les cas, je conseil fortement (sauf si vous n'avez pas le choix... Mais bon c'est du "mauvais développement") d'activer ces options.
Activer la compression GZIP
La compression GZIP de vos pages HTML, CSS, JavaScript peut vous faire gagner, suivant les sites, jusqu'a 50% de données à transférer vers les navigateurs de vos visiteurs.
Pour se faire ajouter les lignes suivantes dans votre ".htaccess":
# Commenter la ligne ci-dessous si plantage php_flag zlib.output_compression on
# Activer le filtre SetOutputFilter DEFLATE
# Certains navigateurs ne peuvent pas avoir GZIP (les vieux) BrowserMatch ^Mozilla/4 gzip-only-text/html
# Certains navigateurs ne peuvent pas avoir GZIP (les vieux) BrowserMatch ^Mozilla/4\.0678 no-gzip
# On ne veut pas d'IE BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# On ne compresse pas les images, elles le sont déjà . SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
#on gère le cas des proxy Header append Vary User-Agent env=!dont-vary
Voilà vous venez de faire gagner de précieuses secondes à vos visiteurs, et depuis peu, Google vous le rendra dans votre référencement.



Commentaires
08/12/09 11:20
Merci, très utile.
Sur 90plan, il m'a fallu effectivement commenter la ligne que tu spécifie comme susceptible de faire planter, sinon erreur 500.
Je vais voir ce que cela donne, s'il y a effectivement une vraie amélioration.
Cependant, j'insisterais sur le point du développement : un site bien codé est un site qui a moins tendance à ramer
08/12/09 11:24
Oui je suis totalement d'accord avec toi. Et je ne dirais jamais le contraire
Mais ces deux fonctionnalités permettent de gagner du temps sur des choses qu'un développeur ne peut pas faire lui-même et sur lesquelles il n'a pas forcément la main mise
08/12/09 14:44
Merci Twitter
et Merci Mr Smashou
Je vais tester ca sur Egyptos.
08/12/09 14:48
Quelle est la ligne à commenter pour éviter l'erreur 500 ?
Sinon merci pour cet article qui devrait intéresser pas mal de monde.
08/12/09 16:14
@Nico de rien
@Lione:
php_flag zlib.output_compression on <= la ligne à commenter
10/12/09 22:41
Merci
14/12/09 21:44
Merci pour cette info effectivement j ai vu dans google pour webmaster cette partie
Je viens de tester sur un plan 240 mais j ai l erreur 500
Je ne vois pas comment faire pour commenter cette ligne je dois ecrire quoi?
Merci de votre aide
15/12/09 08:32
Bonjour, soit tu enlève la ligne, soit tu mets un # devant
16/12/09 15:13
merci de ta reponse
SetOutputFilter DEFLATE# Certains navigateurs ne peuvent pas avoir GZIP (les vieux)
BrowserMatch ^Mozilla/4 gzip-only-text/html# Certains navigateurs ne peuvent pas avoir GZIP (les vieux)
BrowserMatch ^Mozilla/4\.0678 no-gzip# On ne veut pas d'IE
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html# On ne compresse pas les images, elles le sont déjà .
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary#on gère le cas des proxy
Header append Vary User-Agent env=!dont-vary
Comme ceux ci c est bon?
Dois je aussi mettre ce code?
SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1
SetEnv MAGIC_QUOTES 0
SetEnv PHP_VER 5
Merci de ta reponse
16/12/09 19:38
oui
16/12/09 21:42
ok merci beaucoup pour les rensignement
Vraiment sympa
a+
17/12/09 08:07
Mais de rien
04/02/10 10:49
Bonjour à tous,
je cherche à activer la compression sur un hébergement ovh pro et je me prends une erreur 500 fatale avec ce code :
php_flag zlib.output_compression On
php_value zlib.output_compression_level 5
ça à marché pour vous ?
cordialement
08/02/10 10:13
Bonjour, je n'ai pas d'hébergement PRO, mais sont ils eux aussi mutualisés? Si tel est le cas, il ne devrait pas y avoir de problèmes particuliers.
Sinon relisez bien la News:
php_flag zlib.output_compression on
Cette ligne peut avoir besoin d'être commenter si elle génère des erreurs.
php_value zlib.output_compression_level 5
Si la première ne fonctionne pas celle-ci ne fonctionnera pas non plus. mais ce n'est pas grave la compression sera quand même activé!
18/04/10 11:09
Bonjour et merci pour le code.
Petite question : que signifie "# On ne veut pas d'IE
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html" ?
Ceux qui utilisent IE (6, 7, 8) n'auront pas la compression ?
Merci d'avance.
21/04/10 11:11
C'est exactement ca, car on ne sait pas en htaccess différencier les versions d'IE et dans mon souvenir IE 6 ne gère pas gzip.