(modifié le 8 juillet 2015 à 13:11)

Vous êtes hébergé chez OVH en hébergement mutualisé et votre site se charge lentement ? Plus particulièrement si vous utilisez un CMS lourd (pléonasme ?).

ovh-server

Voici une astuce pour permettre de réduire le temps de chargement d'un site web afin qu'il soit jusqu'à 7 fois moins long. selon OVH.

A l'occasion du OVH Summit 2013, OVH a annoncé du changement sur les offres d'hébergement mutualisé avec une refonte des offres destinées au grand public et aux professionnels. Nous savons que PHP-FPM sera mis en oeuvre.

Quelques explications techniques

PHP-FPM utilise le gestionnaire de processus FastCGI qui accélère le traitement de pages, en opposition à une installation classique d'Apache avec son module PHP (mod_php couplé à prefork-mpm). Au lieu d’embarquer l’interpréteur avec le serveur HTTP c'est un système de communication (socket ou TCP) qui permet au serveur de demander à un programme tiers d'interpréter le code.  On comprend vite que si l'interprétation du code est déporté sur une machine dédiée les gains en terme de performance peuvent être importants, à condition d'avoir un lien IP entre les deux qui tient la route. Du coup on utilise un autre module apache de remplacement : mod_fcgid ou mod_fastcgi (le plus utilisé).

Pour ne pas rentrer d'avantage dans les explications je vous renvoie vers ce billet chez lolart qui répond aussi à la question nginx, lighttpd and co.

Activer PHP-FPM sur les anciennes offres

Il sera possible de migrer vers les nouvelles offres en mutualisé si vous êtes déjà client, probablement sous condition(s) (réengagement par exemple). Même si vous ne migrez pas, il est possible d'activer PHP-FPM sur les anciennes offres.

Pour activer PHP-FPM il faut créer un fichier .ovhconfig à la racine de votre hébergement (généralement "www") contenant :

app.engine=php                                                                                                                  
app.engine.version=5.4
http.firewall=none
environment=production

La version de PHP contenue dans app.engine.version est modifiable par  5.3, 5.4 ou 5.5 (attention au conflit avec un htaccess en amont). Un message d'erreur "Not implemented" apparaîtra si votre version n'est pas supportée.

La directive environment spécifie le cache des fichiers statiques et le comportement des erreurs PHP :

  • mode development : aucun cache n'est appliqué , les erreurs PHP apparaissent sur votre site (display_errors=on)
  • mode production (option par défaut) : les fichiers statiques (images, vidéo, audio) ont une expiration plus grande ce qui maximise la mise en cache des fichiers sur les navigateurs, les erreurs PHP n'apparaissent pas sur votre site (display_errors=off)

D'après OVH : La version actuelle du moteur php-fpm est la 5.4.16 (la 5.4.18 sera appliquée sous peu, puis la branche 5.5 sera ajouté)

Attention : à partir de php-fpm et pour des raisons de sécurité les options suivantes sont désactivées (options dépréciées par php) : register_globals, magic_quotes_gpc

Désactiver PHP-FPM

Soit vous supprimez le fichier .ovhconfig soit vous remplacez son contenu par :

app.engine=phpcgi
app.engine.version=AUTO

Verdict

De mon côté j'ai pu testé cette modification sur un Prestashop en offre Perso (25 Go) et il est vrai que le site gagne franchement en rapidité. A vous de tester et de me donner votre feedback sur cette optimisation. C'est surtout OVH qui va être gagnant en terme de ressources car ils vont pouvoir réduire drastiquement la charge et donc le nombre de serveurs à maintenir en production.

ps: je sais que vous êtes nombreux à être déçus par OVH suite à la décision prise concernant l'arrêt temporaire de la livraison de serveurs dédiés, et particulièrement le KS2G. Le but de ce billet n'est pas développer un argumentaire pour ou contre OVH

source

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter