Définition
Nginx est un serveur web très réputé et gagnant de jour en jour en popularité. Il vient en remplacement du serveur web Apache. Il rencontre un grand succès pour les connaisseurs et est actuellement supporté par une communauté très active. Étant bien maintenu, s'il est bien maitrisé, il offre de nombreux avantages en termes de performance en comparaison avec Apache.
Procédure
Nginx est un serveur web très réputé et gagnant de jour en jour en popularité. Il vient en remplacement du serveur web Apache. Il rencontre un grand succès pour les connaisseurs et est actuellement supporté par une communauté très active. Étant bien maintenu, s'il est bien maitrisé, il offre de nombreux avantages en termes de performance en comparaison avec Apache.
Avant de pouvoir migrer votre site, assurez-vous d'avoir ces renseignements :
Pour sauvegarder les fichiers web de votre site Prestashop sur le VPS ISPCONFIG Apache, il vous faudrait vous connecter sur votre site en FTP. Ainsi pour commencer, vous devriez vous assurer d'avoir un compte ftp qui va vous permettre de faire la sauvegarde de votre site.
Si vous avez besoin de modifier les paramètres du compte FTP de votre site à l'intérieur du VPS ISPCONFIG Apache, suivez la procédure suivante :
Connectez-vous sur ISPCONFIG --> Sites --> Utilisateur FTP --> nom de l'utilisateur FTP
Vous pouvez aussi créer un nouveau compte ftp sous ISPCONFIG pour effectuer la sauvegarde.
Une fois que vous avez les paramètres de connexion ftp pour votre site, vous pouvez utiliser votre logiciel ftp client pour vous connecter sur le site à l'intérieur du serveur. Par exemple, avec "FileZilla", il vous faudrait ouvrir l'application, et de spécifier les paramètres de connexion qui sont :
Après cela, vous pouvez cliquer sur le bouton connexion rapide et la connexion à votre site se fera. Des informations concernant la connexion s'afficheront sur l'interface de Filezilla.
Vous seriez accueilli par une fenêtre de validation de certificat que vous devriez confirmer.
Une fois la connexion effectuée, vous trouverez la liste des répertoires liés à votre site dans l'interface dédiée au site distant (à droite). Et à gauche, vous trouverez une interface dédiée au site local qui contiendra vos fichiers locaux dans le répertoire active en cours.
Les fichiers web de votre site se trouvent dans le répertoire web. Faites un double-clic sur le repértoire pour y entrer.
Par la suite, la liste de vos fichiers web dans le site distant s'affiche.
Ensuite dans votre répertoire local (à gauche), naviguez jusqu'à un repertoire où vous souhaitez déposer votre sauvegarde. Créez un nouveau dossier si besoin.
Une fois votre dossier de sauvegarde du site créé, vous devez ensuite selectionner tous les fichiers web dans le site distant.
Enfin, faites un clic droit sur les fichiers sélectionnés et cliquer "télécharger" pour les télécharger dans votre ordinateur dans le répertoire local ouvert.
Patientez jusqu'à ce que le téléchargement soit terminé et vous disposerez d'une sauvegarde des fichiers web de votre site.
[tips_info]Avant d'exporter la base de données de votre site, il est recommandé de mettre la mode maintenance sur votre boutique pour vous assurez que toutes les dernières commandes seront prises en compte avec la migration.[/tips]
Pour exporter la base de données de votre site, il vous faudrait vous connecter sur l'interface phpmyadmin de votre VPS en suivant les procédures indiquées dans cet article "Comment se connecter à l'utilitaire PHPMyAdmin depuis ISP Config ?".
Il vous faudrait sûrement connaitre le nom de la base de données de votre site, le nom d'utilisateur de la base de données et le mot de passe avant de pouvoir y accéder.
Ensuite, une fois que vous êtes sur l'interface de phpmyadmin, vous devez :
Pour recréer le site et sa base de données dans le VPS ISPCONFIG Nginx, il vous faudrait maintenant vous connecter sur l'interface ISPCONFIG de ce VPS.
La connexion sur ISPCONFIG avec le VPS Nginx est similaire à tout VPS avec ISPCONFIG. Vous pouvez suivre les indications dans l'article "Comment accéder à ISPConfig sur mon serveur dédié VPS?" pour vous connecter.
Vous seriez accueilli par l'interface d'authentification d'ISPCONFIG si vous n'êtes pas encore authentifié. Authentifiez-vous avec l'utilisateur admin et vous arriverez à la page d'accueil.
Une fois que vous êtes connecté sur ISPCONFIG, vous pouvez ajouter un nouveau client via le menu client. Tapez-y les informations et enregistrez afin que le client soit créé.
Après cela, pour recréer votre site, vous devez aller dans le menu "Sites" sur le menu de haut, et par la suite cliquer sur le bouton vert "Ajouter un nouveau site".
Tapez les paramètres de votre site très attentivement :
Une fois que vous avez enregistré, la création du site se fera après quelques minutes, et vous percevrez un voyant en rouge en haut, indiquant le nombre de tâche qu'ISPCONFIG est en train de lancer pour appliquer les changements.
La prochaine étape après la création du site est la création de la base de données de votre site.
Recréez la base de données de votre site en suivant la procédure mentionnée dans cet article "Comment créer une base de données sous ISPConfig ?"
Reproduisez convenablement les informations de la base de données de votre site :
Pour vous permettre de déposer les fichiers web que vous venez de sauvegarder via FTP, il vous faudrait créer un utilisateur ftp dans votre serveur VPS ISPCONFIG Nginx. Suivez les indications dans cet article "Comment créer un compte FTP sous ISPConfig ?" pour créer un compte ftp pour votre site.
Une fois que votre compte ftp est créé, vous pouvez vous connecter sur le site dans l'autre VPS, en utilisant votre logiciel ftp client préféré.
Quand vous serez connectés :
L'importation de la base de données de votre site se fait également via l'utilitaire phpmyadmin sur le VPS ISPCONFIG Nginx. Ainsi, comme pour l'exportation, vous devez vous connecter sur phpmyadmin du VPS Nginx.
Sur le VPS Nginx, il vous faudra accéder à l'url de phpmyadmin. Celle-ci est communiquée dans l'email de livraison du VPS, et il est de cette forme :
"https://vpsXXXXX.serveur-vps.net:8081/phpmyadmin" (XXXXX étant le numéro du vps)
Une fois sur la première authentification, tapez :
Vvous arriverez sur l'authentification de phpmyadmin où vous devez taper les accès de l'utilisateur de la base de données que vous avez créé pour le site.
Ensuite, pour l'importation de la base de données : choississez la base de données --> cliquez sur "Importer" --> cliquez sur "Choisir un fichier"
Choisissez le fichier sql de la base de données exportée dans vos repértoires locaux, naviguez plus bas et cliquez le bouton "importer" pour lancer l'importation.
Le temps de l'importation dépendra de la performance de votre connexion internet et de la taille de votre base de données.
Sur une configuration avec Nginx, vous devriez faire des ajustements au niveau du paramètre de votre site, afin que les redirections de base définies sur Prestashop soit conforme au syntaxe de Nginx.
Avant de pouvoir définir les redirections, il vous faudrait noter le lien vers l'interface d'administration de votre boutique. Ce lien se présente sous la forme suivante :
https://nomdelaboutique.tld/adminxxxxxxxxx (xxxxxxxxx étant une suite de caractère aléatoire générée par Prestashop juste après l'installation de la boutique)
Notez bien la dernière partie "adminxxxxxxxxx" car il est différent sur chaque site.
Pour définir des redirections, il vous faudra ajouter des options dans les paramètres du site sur ISPCONFIG, en suivant la procédure suivante :
rewrite ^/(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$1$2.jpg last;
rewrite ^/(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$1$2$3.jpg last;
rewrite ^/(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg last;
rewrite ^/(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg last;
rewrite ^/(\d)(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg last;
rewrite ^/(\d)(\d)(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg last;
rewrite ^/(\d)(\d)(\d)(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg last;
rewrite ^/(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg last;
rewrite ^/c/([\w.-]+)/.+\.jpg$ /img/c/$1.jpg last;
# AlphaImageLoader for IE and FancyBox.
rewrite ^images_ie/?([^/]+)\.(gif|jpe?g|png)$ js/jquery/plugins/fancybox/images/$1.$2 last;
# Web service API.
rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;
# Installation sandbox.
rewrite ^(/install(?:-dev)?/sandbox)/.* /$1/test.php last;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location /adminxxxxxxxxx/ {
if (!-e $request_filename) {
rewrite ^ /adminxxxxxxxxx/index.php last;
}
}
# .htaccess, .DS_Store, .htpasswd, etc.
location ~ /\. {
deny all;
}
# Source code directories.
location ~ ^/(app|bin|cache|classes|config|controllers|docs|localization|override|src|tests|tools|translations|var|vendor)/ {
deny all;
}
# vendor in modules directory.
location ~ ^/modules/.*/vendor/ {
deny all;
}
# Prevent exposing other sensitive files.
location ~ \.(log|tpl|twig|sass|yml)$ {
deny all;
}
# Prevent injection of PHP files.
location /img {
location ~ \.php$ { deny all; }
}
location /upload {
location ~ \.php$ { deny all; }
}
Une fois que vous avez effectués toutes ces procédures, il ne reste plus que le pointage de votre domaine vers le VPS ISPCONFIG Nginx.
La dernière partie qui s'agit du pointage DNS dépendra de votre configuration DNS. Pour pointer votre DNS, il vous faudrait savoir où est gérée la zone DNS de votre domaine.
1. vous pouvez directement mettre à jour l'enregistrement de type A du domaine dans le VPS ISPCONFIG Apache
2. ou recréer la zone DNS sur le VPS Nginx et mettre à jour les serveurs DNS principal et sécondaire en suivant les indications dans cet article "Comment créer un serveur DNS dans ISPConfig sur un serveur dédié VPS ?"
Une fois les paramètres appliqués, il ne vous faudrait plus que de patienter le temps de propagation DNS et votre site sera migré sur le nouveau serveur.
Après cela, vous pouvez créer un certificat Let's Encrypt sur le site qui vient d'être migré en accédant sur l'interface ISPCONFIG du VPS Nginx, en cochant l'option "Let's Encrypt" via le paramètre du site, et enfin en sauvegardant.
La mise en place de certificat Let's Encrypt se fera après quelques minutes.
[tips_info]Après cela, vous pouvez enfin enlever la mode maintenance afin que vos clients puissent à nouveau visiter votre site, et y passer des commandes.[/tips]
Vous êtes désormais en mesures de migrer votre site Prestashop à partir d'un VPS ISPCONFIG avec Apache vers un VPS ISPCONFIG avec Nginx. N'hésitez surtout pas à "déclencher une infogérance" si vous souhaitez profiter de l'expertise de notre equipe pour effectuer la migration à votre place.
Pour aller plus loin
Vous êtes désormais en mesures de migrer votre site Prestashop à partir d'un VPS ISPCONFIG avec Apache vers un VPS ISPCONFIG avec Nginx. N'hésitez surtout pas à "déclencher une infogérance" si vous souhaitez profiter de l'expertise de notre equipe pour effectuer la migration à votre place.