2013
fév
2





Installer Magento sur un Mutualisé OVH, c’est possible !

C'est un sujet qui a déjà été traité sur quelques blogs spécialisés Magento ou encore quelques forums, mais souvent ceux-ci sont trop anciens ou n'apportent pas une réponse suffisamment complète à une question fréquemment posée : est-il possible d'installer Magento sur un hébergement mutualisé OVH ?

magento lent

Connaitre les minimums requis Magento

Avant de se lancer dans une quelconque procédure : rendons-nous sur le site de Magento afin d'y trouver les minimums techniques requis du serveur et y relever les points importants. J'ai volontairement supprimé certains éléments.

  • Système d'exploitation :
    • Linux x86, x86-64
  • Serveur web :
    • Apache 2.0.x
    • Apache 2.2.x
  • Compatibilité php :
    • 5.2.13 - 5.3.15
    • Memory_limit no less than 256Mb (preferably 512)
  • MySQL:
    • 4.1.20 or newer
    • InnoDB storage engine
  • Paramétrage serveur :
    • Ability to run scheduled jobs (crontab) with PHP 5
    • Ability to override options in .htaccess files

La liste complète des System Requirements est disponible ici.

Connaitre la configuration d'un serveur mutualisé OVH

Tout d'abord sachez qu'entre un mutualisé perso, pro, business ou premium, vous aurez la même configuration serveur. Les différences se situent au niveau de l'espace disque, des comptes email, et des bases de données SQL.

Si votre site internet est lent sur un mutualisé perso, il ne sera logiquement pas plus rapide sur un pro, business ou premium. Donc, penser que passer d'une base de donnée SQL Perso à une base SQL Pro ou Privé rendra votre site plus rapide, vous faites erreur. Ces options ne sont pratiques que lorsque vous avez besoin de plusieurs base de données ou que vous lorsque vous avez des requêtes importantes à faire.

ovh mutualise perso pro premium

Mais quand on se penche techniquement, qu'avons-nous dans un hébergement mutualisé OVH ?

  • Serveur linux x86_64
  • Php 5.2 à 5.4
  • Memory_limit 128 Mb
  • MySQL 5.1

Vous ne voyez pas un problème ? Magento ne doit pas avoir un Memory_limit inférieur à 256 Mb et recommande même 512 Mb, là où un mutualisé OVH offre au maximum 128 Mb (que ce soit en perso, pro, business ou premium).

memory limit mutualisé ovh

Optimiser Magento pour un mutualisé OVH

Alors ok, on a bien compris, un mutualisé OVH n'est pas fait pour faire fonctionner correctement Magento. Néanmoins, j'ai réussi à le faire fonctionner avec quelques optimisations avec des temps de chargement tout à fait corrects.

Optimisation du template

Cette recommandation est valable pour n'importe quel site web, sur n'importe quel hébergement. Optimisez votre template ! Les images, les javascripts, le CSS : votre site doit être le plus léger possible ! C'est la base, plus votre site est lourd, plus vous sollicitez votre hébergement. Sur le Magento en question j'arrive à un peu moins de 700 ko.

Pour tester votre site internet, vous pouvez utiliser l'excellent GTmetrix.

gtmetrix

Modification du  .htaccess

De nombreuses optimisations sont possibles dans le .htaccess (modifier la version de php, activer la compression gzip, la gestion du cache des images, etc). La principale est d'activer si ce n'est pas déjà fait la compression web côté serveur en ajoutant la ligne ci-dessous au début de votre fichier .htaccess.

SetOutputFilter DEFLATE

Répertoire cache /tmp/

Parfois activer le cache Magento génère des erreurs. Avant tout, vérifiez que le répertoire /tmp/ situé à la racine de votre Magento possède les bons droits en écriture. Ouvrez ensuite le fichier /lib/Zend/Cache/Backend/File.php et vers la ligne 91 précisez le répertoire /tmp/ comme ci-dessous puis sauvez.

protected $_options = array(
'cache_dir' => '/tmp',

Activation du Flat catalog

Sans entrer dans les détails, Magento propose une solution alternative d'indexation des données : le Flat Catalog. Il permet de réduire sensiblement les temps d'accès en réorganisant les données. Pour l'activer faites :

  • Système,
  • Configuration,
  • Catalogue,
  • Frontend,
  • Utiliser le catalogue à plat pour les catégories : oui,
  • Utiliser le catalogue à plat pour les produits : oui.

float catalog magento

Activation du cache

Activer le cache c'est aussi la base de l'optimisation Magento. Pour faire simple, le cache revient à stocker de nombreux éléments comme le html, les éléments de traductions, catalogue produit et autres fichiers qui sont régulièrement sollicités par les utilisateurs mais qui n'ont pas vocation à changer régulièrement.

Pour activer le cache Magento, rendez vous dans Système puis faites Gestion du cache. Dans le nouvel écran, cochez tous les éléments qu'il est possible de mettre en cache puis dans Action sélectionnez Activer puis faites Valider.

gestion du cache magento

Activation de la compilation

Enfin, technique ultime : activer la compilation. Attention cependant, si cette fonctionnalité permet d'augmenter les performances de votre Magento, certains plugins ne sont pas compatibles.

Pour activer la compilation, rendez-vous dans Système, Outils puis sélectionnez Compilation. Ensuite, cliquez sur Lancer le processus de compilation. Ne vous inquiétez pas, le processus peut prendre un peu de temps. Une fois la compilation activée, pensez à tester l'intégralité des fonctionnalités de votre Magento, en front comme en back. En effet, il arrive que la compilation génère des erreurs sur certains plugins non natifs à Magento.

compilation magento

Si des bugs apparaissent trois solutions : débugger le plugin, désactiver le plugin ou désactiver la compilation. L'idéal étant la première.

Sur un hébergement mutualisé, il est possible de constater une amélioration très significative du temps de chargement.

Performance et solution alternative

Avec toutes ces solutions, il est possible de passer à des temps de chargement complet moyen de 10 secondes au départ à 3 secondes avec optimisations et ce, sur un hébergement mutualisé. Certes ce n'est pas la réactivité d'un dédié mais si le site ne dépasse pas 200 visites / jour et n'a pas un catalogue produit digne d'un Cdiscount, cela devrait suffire.

temps chargement magento

Alors quelle solution lorsque c'est toujours trop lent ? Passer d'un mutualisé à un VPS, mais ce sera le sujet d'un autre article...

NB : Je ne suis pas affilié à OVH et je ne connais pas les offres des hébergements mutualisés chez les autres prestataires. L'objet de cet article est bien défini pour les mutualisés OVH.

16 Comments to “Installer Magento sur un Mutualisé OVH, c’est possible !”

  • Fab 8 février 2013 à 17 h 52 min

    Testé et désapprouvé. Magento consomme beaucoup trop de ressource pour être correctement exploité sur un mutu OVH.

    De plus, si on se penche sur le CMS Magento à la base, c’est que l’on a prévu d’établir une grosse plateforme e-commerce et pas un petit prestashop. Dans cette optique là, autant se concentrer directement sur un serveur dédié puissant et réactif.

  • Alexandre 8 février 2013 à 18 h 15 min

    Merci pour votre commentaire. Vous avez lu le titre mais avez-vous seulement lu l’article ?

  • JC 6 mars 2013 à 13 h 50 min

    J’ai un site Magento en test. J’ai rajouté echo « .memory_get_peak_usage() »; à la fin dans index.php.
    En me baladant dans toutes les pages, le script n’a jamais affiché plus de 35 MB. Pourquoi Magento demande une config avec 256 MB, cela parait surdimensionné pour un script?

  • Fedir 16 mars 2013 à 21 h 10 min

    Salut,

    Merci pour cette article précieuse. Il y a beaucoup de spéculants, qui demande des sommes astronomiques pour l’hébergement d’un boutique Magento, même, si les dimensions de la boutique sont minimales.

    @JC Je pense, 256 Mo on peut avoir besoin pendant le temp de développement et mise à jours, mais, si vous développez sur une machine locale, le serveur en production va pas demander trop de ressources avec les themes de base. 128 Mo doit être suffisant.

    En ce moment, je pense de tester un transfert d’un boutique existant Magento sur la plateforme OVH, pour confirmer cette possibilité.

    Cordialement,
    Fedir

  • Alexandre 16 mars 2013 à 21 h 56 min

    Hello,

    256 Mb c’est parce qu’en effet Magento est très gourmand en requêtes. Rien que charger une liste de produits est gourmand…

    Bref même si cette méthode fonctionne, elle est valable pour un faible trafic. Je suis depuis passé sur un VPS OVH et ça tourne à merveille !

  • Adrien 16 mai 2013 à 14 h 19 min

    Salut,

    Merci pour ce super article! J’ai suivi quelques un de tes conseils et mon site Magento est effectivement passé d’un temps de chargement cauchemardesque de 10 scd à un pénible 3scd… ce qui est net un progrès mais toujours pas satisfaisant.

    Bref, tout ça pour dire que j’attends avec impatience ton article pour passer d’un mutualisé à un VPS =)

    Peut être que tu peux déjà lacher un petit spoil et nous dévoiler quel config de VPS tu as choisis pour que Magento tourne à merveille!

    Cordialement,
    Adrien

  • Alexandre 16 mai 2013 à 14 h 36 min

    Bonjour Adrien,

    En effet je suis passé sur un VPS OVH depuis quelques petits mois. Il faudrait que je fasse un article pas à pas mais je peux te dire que sur un VPS Cloud 2 de chez OVH ça tourne à merveille et je pense même qu’un VPS Cloud 1 peut faire fonctionner un Magento sans soucis.

    Le plus problématique est le transfert du mutualisé vers le VPS car ça demande un config bien précise avec les bons droits au niveau des dossiers et fichiers.

  • Adrien 16 mai 2013 à 15 h 49 min

    Super! J’avais peur qu’il faille plus, je pense donc que je commencerai directement avec un VPS Cloud 2.

    Ok, je m’attellerai à la migration dans les jours qui viennent, j’espère ne pas trop galérer… à moins qu’un futur super article de retour d’expérience sorte d’ici là et m’épargne d’éventuels soucis ;)

    Merci pour la réponse rapide et merci du partage!

    Bonne journée.

  • Alexandre 16 mai 2013 à 16 h 03 min

    De mémoire avant le transfert, vide et désactive tous les caches, désactive la compilation. Lors du transfert fait bien attention aux droits des fichiers et dossiers ainsi qu’aux propriétaires des dossiers (www-data) c’est très important. Enfin après le transfert, il faut vider à nouveau tous les caches. Il faut également penser à installer tous les modules php qui vont bien.

    Autant l’installation d’un Magento tout propre c’est simple, le transfert est plus complexe.

  • Julien DOMBRET 21 août 2013 à 18 h 43 min

    Salut,
    pour le Répertoire cache /tmp/ :
    il est plus « propre » de modifier le fichier index.php : $_ENV[‘TMP’] = ‘./var/cache/';

  • Alexandre 1 octobre 2013 à 19 h 19 min

    @Julien : Merci pour l’astuce !

  • mico 8 avril 2014 à 20 h 00 min

    Bonjour
    Merci infiniment pour ce guide, très important.

    @Alexandre :
    tu dis : « Avant tout, vérifiez que le répertoire /tmp/ situé à la racine de votre Magento possède les bons droits en écriture »
    ça serait quoi les « bons droits » par exemple ou au minimum ?
    750, 650, ou 650 ou 655

    @Julien,
    J’aimerai comprendre, que veut tu dire par là, qu’il ne faut pas du tout modifier le fichier : /lib/Zend/Cache/Backend/File.php
    mais qu’il faut plutôt aller dans le fichier : index.php (de quel repertoire ?)
    puis remplacer :
    $_ENV[‘TMP’] = ‘./var/cache/’;
    par
    $_ENV[‘TMP’] = ‘/tmp’;

    C’est bien ça ?

    Merci encore pour votre assistance.

  • frederic 28 septembre 2016 à 10 h 44 min

    Bonjour Alexandre,
    je suis très intéressé par le  » pas à pas » pour une installation sur un VPS.
    Par ailleurs, j’hésite entre un mag en 1.9.x et un mag en 2.1.x
    la bibliothèque de modules est plus fournie avec la V1, mais la 2 est livrée avec jQuery…
    That’s the question.

    Merci.

  • Alexandre 28 septembre 2016 à 11 h 26 min

    Bonjour Frédéric,

    Pour le VPS c’est encore plus simple qu’en 2014. Vous pouvez prendre un VPS Cloud 1 chez OVH avec une licence plesk gratuite qui simplifie l’administration du VPS. Vous pourrez installer plus simplement Magento, presque comme si c’était un mutualisé.

    Pour Magento 1.9 et 2.1 c’est un excellente question. Aujourd’hui à l’agence nous continuons de faire du Magento 1.9 car nous avons des connecteurs avec des ERP ou des modules spécifiques pour cette version. Disons que si vous n’avez pas de grosses spécificités vous pouvez tenter la version 2.1 (car il faudra y passer un jour ou l’autre), sinon vous pouvez aussi rester sur 1.9 qui est éprouvée.

  • Eric 1 novembre 2016 à 23 h 36 min

    Bonjour,

    Je suis en train de tester Magento sur un « performance 1″. Avez-vous des retours ?

    J’ai actuellement un problème d’erreurs 403 avec les liens symboliques qui ne sont pas accessibles.

    Une idée ?

    Bàv.

  • Sébastian 12 janvier 2017 à 14 h 49 min

    Bonjour à tous !

    Tout d’abord, un merci pour ce tuto clairement détaillé et qui offre pas mal de perspectives au niveau des choix de l’hébergement…

    @Eric,

    Je souhaite de mon coté effectuer ma première installation de Magento avec une version 2 (Support Front jQuery) et en exploiter le noyau afin de déployer sur sur un CMS WordPress qui lui sera la partie visible et principale de la solution.
    Cela sur une offre Performance 1 – 2014 boostée.

    Je serais preneur d’information concernant ta problématique sur les erreurs 403 !

    @%all_readers…
    Pour information, il est évident que ma question à vrai dire vous semblera détournée du fait qu’il est largement possible d’exploiter un WooCommerce avec le CMS WordPress…
    En effet, il est fort probable que mon client tende vers l’utilisation de Magento !

    A voir sur le tas en fonction de la topologie des produits à diffuser, et la négo concernant les spécificités techniques..

    Merci encore,
    Seb

Poster un commentaire

Mes tweets

Mes sites

Sites amis