Tutoriel : Migrer Prestashop 1.7 en local vers un hébergeur

Tutoriel : Migrer Prestashop 1.7 en local vers votre hébergeur


Si vous avez suivi mon tutoriel pour installer Prestashop 1.7 en local, l’étape suivante est logiquement de mettre le tout en ligne sur votre hébergeur. Découvrons ensemble comment migrer une installation locale de Prestashop 1.7 vers un hébergement et mettre votre boutique en ligne.

Vous y êtes : Prestashop 1.7 a été mis en place sur votre poste en local, après pas mal de boulot, votre boutique est prête à être mise en production.

Le moment est donc venu de transférer votre boutique vers votre hébergeur pour la mettre en ligne.

Voici en quoi consistera le processus de migration :

  1. Exporter la base de données locale
  2. Compresser tous les fichiers qui composent votre boutique
  3. Créer une nouvelle base de données chez votre hébergeur
  4. Importer les données locales de la base
  5. Transférer votre fichier zip et le décompresser chez votre hébergeur
  6. Modifier l’URL de votre boutique dans votre base de données en production
  7. Modifier les informations de connexion à la base dans les paramètres de Prestashop

À quelques subtilités prêtes, ces étapes constitueront l’essentiel du travail que je couvrirai dans ce tutoriel.

Prérequis

Avant de commencer, veuillez bien garder en tête le tutoriel pour installer Prestashop 1.7 en local que j’avais déjà réalisé ici.

Configuration locale

Ma configuration reprend à l’identique ce qui est déjà existant dans ce tutoriel, à savoir :

  1. Une installation de MAMP équipée d’Apache, MySQL, PHPMyAdmin et PHP
  2. Une installation de locale Prestashop 1.7.5.2

En plus de ça, je vous conseille également de disposer d’une application de FTP pour gérer les transferts de fichiers. Dans ce tutoriel j’utiliserai FileZilla qui est la référence gratuite sur PC. Sur Mac j’utilisais l’excellent outil Transmit qui, quant à lui, est payant.

Notez également que j’utiliserai certaines fonctionnalités intégrées du FTP de mon hébergeur et que de, pour ce tutoriel, je migrerai ma boutique vers un hébergement Infomaniak.

Configuration chez l’hébergeur

Veillez à bien contrôler, dans votre hébergement, quelle version de PHP est utilisée. À la date du 19.06.2019, la version de Prestashop que j’utilise est la version 1.7.5.2 et cette version de Prestashop est compatible avec PHP 5.6 jusqu’à PHP 7.2 inclut.

Vérifiez que votre version de PHP soit compatible avec votre version de Prestashop

Mais elle n’est pas compatible avec la version 7.3 de PHP ! Vérifier donc la configuration de votre hébergement et changez ce paramètre si nécessaire.

Attention cependant, modifier la version de PHP peut potentiellement empêcher votre site de fonctionner correctement (si vous avez déjà un site vitrine par exemple). Donc soyez prudents !

Préparation en local

Export de la base de données

Pour commencer, il faudra exporter le contenu de votre base de données depuis votre base de données locale vers la base de votre hébergeur.

Commencez par accéder à PHPMyAdmin depuis votre poste local. Si comme moi vous utilisez MAMP, rendez-vous sur la page de démarrage de celui-ci.

Là choisissez Tools > PHPMyAdmin.

Accéder à PHPMyAdmin depuis MAMP

Entrez vos données de connexion pour accéder à vos bases de données. Sur la gauche, cliquez sur la base de données de votre boutique Prestashop que vous souhaitez exporter.

Là cliquez sur l’onglet Exporter.

Exporter une base de données dans PHPMyAdmin

Dans les options d’export, vous pouvez choisir Rapide pour faire un export direct de toutes les données ou, si vous désirez plus de contrôle, cliquer sur Personnaliser.

Options d'exportation d'une base de données dans PHPMyAdmin

Si vous choisissez de personnaliser l’export, vous aurez par exemple la possibilité de choisir un autre type de fichier que SQL pour la sortie ou de le compresser pour minimiser sa taille.

Une fois votre choix effectué cliquez sur Exécuter pour lancer l’opération. Un fichier [nom de votre base].sql devrait se télécharger, cela peut prendre un certain temps, soyez patient.

Une fois votre fichier correctement téléchargé, l’export de la base de données de votre boutique a été réalisé !

Export des fichiers

Une boutique Prestashop est constituée de centaines de fichiers par défaut. Et après mise en place d’un thème, d’un catalogue de produits, etc. vous pouvez vous retrouver avec une boutique plutôt importante en termes de nombre de fichiers et de poids.

Taille du dossier contenant votre boutique Prestashop
21’145 fichiers, 4’576 dossiers, un total de 228 Mo rien que pour une simple installation

Vous pourriez exporter votre boutique directement chez votre hébergeur sans aucune action préliminaire.

Mais sachez que si vous tentez de charger le dossier de votre boutique tel quel par FTP, chaque fichier nécessitera une transaction avec le serveur FTP ce qui ralentira considérablement le transfert. Et quand je dis considérablement, c’est un euphémisme !

Autre problème sur lequel je me suis cassé les dents lors de ce genre d’export : il arrive fréquemment que certains fichiers ou dossiers retournent des erreurs et empêchent le transfert de l’intégralité de votre boutique.

Et bon courage pour aller retrouver les fichiers manquants lors d’un transfert problématique !

C’est pourquoi je vous conseil de commencer par compresser votre boutique Prestashop, c’est à dire la transformer en un fichier zip, avant de la transférer.

Compression de la boutique Prestashop à l'aide d'un outil de compression

Cette action aura deux effets : transformer un dossier composé de centaines de fichiers en un seul fichier transférable facilement et réduire la taille du transfert.

Une fois la compression effectuée, connectez-vous à votre FTP avec votre application FTP ou en utilisant directement le gestionnaire de FTP mis à disposition par votre hébergeur.

Rendez-vous dans le dossier où vous souhaitez installer votre boutique et transférez votre fichier ZIP à cet endroit.

Préparation chez l’hébergeur

Importer la base de données locale

Création de la base de données

Connectez-vous à votre hébergeur et rendez-vous dans l’hébergement du site où vous allez installer votre boutique.

Dans les options de votre hébergement, vous devriez trouver la gestion de vos bases de données. Le but est de créer votre propre base pour votre boutique Prestashop.

Chez Infomaniak, cliquer sur Ajouter. Dans la nouvelle fenêtre donner un nom à cette base de données, dans mon cas je l’appellerai demo_prestashop.

Certains hébergeurs ne vous permettront pas de choisir le nom, vous pourrez simplement donner une description. Chez Infomaniak chaque base de données est préfixé par l’identifiant de votre hébergement.

Cet identifiant est également utilisé pour les utilisateurs de votre base de données. Si vous n’avez encore aucun utilisateur vous pouvez cliquer sur Créer un utilisateur associé et là, créer également un utilisateur qui sera administrateur de votre nouvelle base de données.

Ajouter une base de données et un utilisateur associé chez Infomaniak

Conservez bien le nom de votre base de données, le nom de votre utilisateur et votre mot de passe pour plus tard.

Importation des données

Une fois la base créée et associée à votre utilisateur, rendez-vous dans le gestionnaire de base de données. En général les hébergeurs utilisent également PHPMyAdmin.

Dans Infomaniak, cliquez simplement sur Connexion à PHPMyAdmin. Là entrez vos informations de connexion tel que créés tout à l’heure.

Connexion à PHPMyAdmin dans un hébergement Infomaniak

Une fois dans la console d’administration, cliquez sur la base créée pour votre boutique sur la gauche et allez dans le menu Importer.

Là faites Choisir pour récupérer le fichier SQL à importer. Souvenez-vous, nous avons exporté la base de données locale tout à l’heure. Il suffit d’aller récupérer ce fichier SQL.

L’opération peut prendre un certain temps en fonction de la taille de votre base de données, soyez patient ! Une fois l’opération terminée, votre base en locale a bien été migrée sur votre hébergement.

Modifier l’URL de votre boutique en ligne

URL principale

Prestashop conserve dans la base de données les informations de votre base de données locale, définie lors de l’installation.

La plupart des réglages peuvent être conservés sans problème, cependant pour que votre boutique fonctionne il est impératif de modifier l’URL de votre boutique.

Par défaut, lors d’une installation locale, cette URL est localhost. Pour la modifier, cliquez sur votre base de données dans la barre de gauche et dans la liste des tables, recherchez la table ps_shop_url. Faites Enter pour lancer la recherche.

Détail de la table ps_shop_url

Une fois la table trouvée, cliquez sur celle-ci pour en voir le contenu. Vous ne devriez trouver qu’un seul enregistrement renseignant 3 informations importantes :

  • domain : Le nom de domaine HTTP de votre boutique
  • domain_ssl : Le nom de domaine HTTPS de votre boutique
  • physical_uri : Le chemin vers votre boutique depuis le nom de domaine

Dans mon cas, ma boutique se trouvera à l’adresse :

https://lab.newslang.ch/shop/

Donc les champs deviendront :

  • domain : lab.newslang.ch
  • domain_ssl : lab.newslang.ch
  • physical_uri : /shop/

Il n’y aura pas de distinction de domaine entre la version HTTP et HTTPS et le chemin vers ma boutique sera dans le sous-dossier /shop/. Si votre boutique est à la racine, entrez simplement / mais il est important de bien saisir le slash final !

URL de la boutique et SSL

Si vous recherchez la table ps_configuration dans la liste de table, vous verrez qu’elle se compose de plusieurs centaines d’enregistrements qui gèrent la configuration principale de votre boutique.

Table ps_configuration dans la base de données de Prestashop

Dans ces enregistrements, 4 sont importants dans notre cas :

  • PS_SSL_ENABLED : Indique si SSL est activé, donc si on accèdera à votre boutique en HTTPS ou non
  • PS_SSL_ENABLED_EVERYWHERE : Flag supplémentaire permettant de forcer l’utilisation de SSL partout dans la boutique
  • PS_SHOP_DOMAIN : Identique à la colonne domain de la table ps_shop_url
  • PS_SHOP_DOMAIN_SSL : Identique à la colonne domain_ssl de la table ps_shop_url

Les 2 premiers enregistrements doivent être passées de 1 à 0 pour activer SSL si vous travaillez sur un hébergement en HTTPS, sinon vous pouvez les laisser à zéro sans autre.

Pour les 2 derniers enregistrements, selon certaines il n’est pas indispensable de les changer, Prestashop s’en occupant par la suite, mais je préfère le faire dès le départ pour éviter tout problème d’accès.

Décompresser votre boutique sur le FTP

Certains outils de FTP vous permettront peut-être de décompresser un fichier ZIP, mais pas FileZilla. Pas d’inquiétude, le gestionnaire de FTP d’Infomaniak propose cette option.

Accédez à vos réglages FTP dans l’hébergement Web de votre site et cliquez sur Connexion au FTP Manager.

Connexion au FTP Manager dans la console d'infomaniak

Là entrez vos informations de connexion pour ouvrir une session et accéder aux fichiers présents sur votre hébergement.

Rendez-vous dans le dossier où se trouve votre fichier compressé et cliquez simplement sur ce dernier, là l’outil de décompression s’exécutera et vous demandera où vous souhaitez extraire vos données.

Décompression de votre boutique chez l'hébergeur

Souvenez-vous, si vous avez compressé votre dossier shop en local par exemple et que vous choisissez, comme dans cet exemple, de l’extraire à la racine de votre site, le dossier shop sera créé à nouveau. Votre boutique se trouvera alors dans ce sous-dossier et pas à la racine.

Vous pourrez, après avoir extrait vos fichiers, vous rendre dans le dossier shop et déplacer l’intégralité de son contenu à la racine si vous le désirez. Ce genre d’action ne prend qu’une seconde.

Modifier les paramètres de connexion de votre boutique

Maintenant si vous tentez d’accéder à votre boutique Prestashop vous devriez tomber sur une erreur 500. Si vous aviez le Mode Debug activé lors du transfert, l’erreur devrait être bien plus claire.

Erreur retournée par Prestashop si les identifiants à la base sont incorrects

En gros, les paramètres de Prestashop sont toujours configurés pour fonctionner avec votre base de données locale et non avec la base de données crée chez votre hébergeur.

Pour modifier ces réglages, accédez à votre boutique par FTP et allez ouvrir le fichier [votre-boutique]/app/config/parameters.php. Il devrait ressembler à quelque chose de ce genre.

<?php return array (
  'parameters' => 
  array (
    'database_host' => '127.0.0.1',
    'database_port' => '',
    'database_name' => 'demo_shop',
    'database_user' => 'shop_admin',
    'database_password' => '******',
    'database_prefix' => 'ps_',
    'database_engine' => 'InnoDB',
    'mailer_transport' => 'smtp',
    'mailer_host' => '127.0.0.1',
    'mailer_user' => NULL,
    'mailer_password' => NULL,
    'secret' => 'y2I4Ig25CtK9uIcW596bK49c74uFmOeJbnVGoWX6AnudtuW2e4JZnNHS',
    'ps_caching' => 'CacheMemcache',
    'ps_cache_enable' => false,
    'ps_creation_date' => '2019-05-21',
    'locale' => 'fr-FR',
    'cookie_key' => 'renHkCaFZkM4V1QcnUZdkWfdVSpGo95IkevMEJVtA01Ix73WamoULVnN',
    'cookie_iv' => '12hqypXk',
    'new_cookie_key' => 'def00000fb0e609cfbe92d6745108ce0d351259eb5c614aedc08d9268da8bf6ea25a7578f0c8cbc59bd0de8c3f6ac714f812c41725ab06a470a72fe5fe321d6def907a91',
  ),
);

Voici les informations importantes que vous devrez changer, tel que je devrais les entrer avec ma configuration (le mot de passe étant masqué volontairement) :

'database_host' => 'ofxn.myd.infomaniak.com',
'database_name' => 'ofxn_demo_prestashop',
'database_user' => 'ofxn_demo',
'database_password' => '******',

Pas de soucis pour database_name, database_user et database_password, reprenez simplement ce que vous avez utilisé lors de la création de votre base de données tout à l’heure.

Pour l’hôte, en règle générale il ne s’agit pas de 127.0.0.1 ou de lolcalhost (du moins pas pour un hébergement mutualisé). Chez Infomaniak, en vous rendant dans la page de gestion de vos bases de données, l’hôte vous sera donné dans l’en-tête.

Nom de l'hôte pour votre serveur de base de données

Il vous suffira de le reprendre dans ce fichier de configuration.

Une fois les modifications appliquées et enregistrez, actualisez la page de votre shop. L’erreur concernant votre base de données devrait avoir disparue… mais il y a de grande chance que la page reste introuvable !

Restaurer l’accès à votre boutique

Il est possible (voir même normal) que vous ne puissiez pas accéder à votre boutique immédiatement après cette modification. Voici deux erreurs que vous pourriez rencontrer.

ERR_TOO_MANY_REDIRECTS

Si la page vous renvoit cette erreur, cela signifie que la configuration définie dans votre table ps_shop_url créé une boucle de redirection infinie. C’est à dire qu’à chaque nouvel accès à votre boutique, celle-ci redirige vers une page incorrecte qui tente elle-même de rediriger vers cette même page et ainsi de suite.

Cette erreur m’est arrivée à plusieurs reprise, vérifiez bien les informations saisies dans cette table. Je répète les points importants :

  • domain et domain_ssl sont en générale similaires et représentent votre nom de domaine, sans http ni https en préfixe et sans / en fin de chaîne
  • physical_uri doit représenter l’accès à votre boutique à partir du nom de domaine. Si vous êtes à la racine, un simple / suffit, sinon, il faut entrer le slash de départ et de fin, sans le nom de domaine, par exemple /shop/

Si tout vous semble correct, n’hésitez pas à aller vérifier également dans la table ps_configuration que le SSL soit activé ou désactivé en fonction de votre utilisation.

Objet non trouvé ou Erreur 404

Si l’une de ces deux erreurs arrivent, une simple suppression du fichier .htaccess à la racine de votre boutique devrait vous permettre de les régler. Si l’erreur ERR_TOO_MANY_REDIRECTS persiste également, tentez la chose suivante.

Accédez à votre boutique par FTP et à la racine de celle-ci, supprimez le fichier .htaccess. Celui-ci est généré par Prestashop et s’occupe de toutes les redirections de votre boutique (utilisation des permaliens, restriction d’accès aux pages admin, etc.).

Une fois le fichier supprimé, si l’accès à votre boutique ne fonctionne toujours pas, accédez au back office de celle-ci. Pour se faire tapez simplement le chemin vers le dossier d’administration tel qu’il existe dans votre boutique, par exemple /admin123xyz.

Vous devriez pouvoir accéder à votre back office. Là le but sera de recréer un .htaccess propre. Pour se faire, rendez-vous dans Paramètres de la boutique > Trafic et SEO.

Prestashop > Paramètres de la boutique > Trafic et SEO

Dans cette fenêtre, allez sous Configuration des URL et désactivez le mode de réécriture d’URL. Et cliquez sur Enregistrer.

Désactiver le mode de réecriture des URL dans Prestashop

Puis activez ce mode à nouveau pour forcer la réécriture des fichiers .htaccess.

Une fois cette action réalisée, votre boutique devrait être accessible !

Conclusion

Ça y est, vous avez mis votre boutique en ligne et tout fonctionne à merveille. Si ce n’est pas le cas, n’hésitez pas à me contacter en commentaire pour me détailler votre problème.

J’ai moi-même découvert plusieurs soucis au fil de ce tutoriel (version de PHP, problèmes de redirections, etc.) que j’ai documenté ici, mais si vous deviez trouver une autre spécialité non répertoriée, je suis à votre disposition pour tenter de vous aider à la régler !

Grâce à ce tutoriel, vous devriez avoir toutes les clés en main pour mettre votre boutique en production sur votre hébergeur.



Aucun commentaire

0 commentaires

Soumettre un commentaire

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

derniers articles
de mon blog