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 ?).
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
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
9 commentaires
Il est tard je n'ai pas encore testé ta solution, mais je suis également sous Presta et chez OVH. C'est vraiment une excellente astuce que tu donne la, j'ai bookmarké ton article, je reviens vers toi dès que j'ai testé.
Par contre, une petite question, j'ai regardé quelques services en ligne qui propose de checker le temps de chargement d'un site, mais, les résultats diffèrent complètement. Alors je me doute qu'avec des mutualisés on ne peut jamais avoir le même temps de chargement à chaque fois, mais comment faire pour mesurer plus ou moins correctement et voir si il y a un réel changement ?
@Michael: Effectivement sur du mutualisé les benchmarks sont peu représentatifs. Quelques sites toutefois :
Merci pour ton aide Mr Xhark, je ne me souvenais même plus de PageSpeed de Google !
Merci pour le partage de cette info qui me fait découvrir cette fonction.
Depuis peu chez Ovh, je n'avais pas remarqué ce fichier. Il est en fait situé à la racine mais sous le répertoire www puisque OVH donne en plus de l'espace du domaine une zone technique accessible via FTP.
Bien que le billet soit relativement vieux il serait bon lorsque l'on se veut bloggueur de savoir écrire correctement..
La lecture de votre article est une torture tant il y a de fautes aussi aberrantes les unes que les autres...
Parler et écrire sa langue natale n'est pas une option ni même un luxe. Il n'y a pas besoin de faire des études supérieures, elle s'apprend dès la primaire !
A bon entendeur mais sachez que je me suis arrêtée au premier paragraphe tellement ça m'a choquée.
@Pseudo: N'hésitez pas à signaler une coquille via les commentaires ou la page contact, on corrigera avec plaisir