Configuration de plusieurs sites web avec Nginx
Nous supposons que :
-
Vous travaillez sur une machine de développement (ordinateur portable, machine virtuelle ou similaire).
Des tâches supplémentaires peuvent être nécessaires pour déployer plusieurs sites web dans un environnement hébergé. Pour plus d’informations, contactez votre fournisseur d’hébergement.
Des tâches supplémentaires sont nécessaires pour configurer Adobe Commerce sur l’infrastructure cloud. Une fois les tâches décrites dans cette rubrique terminées, consultez Configuration de plusieurs sites web ou magasins dans le guide Commerce sur les infrastructures cloud.
-
Vous acceptez plusieurs domaines dans un fichier hôte virtuel ou utilisez un hôte virtuel par site web ; les fichiers de configuration de l'hôte virtuel se trouvent dans
/etc/nginx/sites-available
. -
Vous utilisez le
nginx.conf.sample
fourni par Commerce avec uniquement les modifications abordées dans ce tutoriel. -
Le logiciel Commerce est installé dans
/var/www/html/magento2
. -
Vous disposez de deux sites web autres que le site par défaut :
french.mysite.mg
avec le code du site webfrench
et le code d’affichage du magasinfr
german.mysite.mg
avec le code du site webgerman
et le code d’affichage du magasinde
mysite.mg
est le site web et la vue de magasin par défaut
Voici une feuille de route pour configurer plusieurs sites web avec des onglets :
-
Configurez des sites web, des boutiques et des affichages de boutique dans l’Administration.
-
Créez un hôte virtuel Nginx) pour mapper de nombreux sites web ou un hôte virtuel Nginx par site web Commerce (étapes détaillées ci-dessous).
-
Transmettez les valeurs des et
$MAGE_RUN_TYPE
variables MAGE$MAGE_RUN_CODE
à nginx à l’aide dunginx.conf.sample
fourni par Magento (étapes détaillées ci-dessous).-
$MAGE_RUN_TYPE
peut êtrestore
ouwebsite
:- Utilisez
website
pour charger votre site web dans votre storefront. - Utilisez
store
pour charger n’importe quelle vue de magasin dans votre storefront.
- Utilisez
-
$MAGE_RUN_CODE
est le code d’affichage unique du site web ou du magasin qui correspond à$MAGE_RUN_TYPE
.
-
-
Mettez à jour la configuration de l’URL de base sur l’administrateur Commerce.
Étape 1 : créer des sites web, des boutiques et des vues de boutique dans l’Administration
Voir Configuration de plusieurs sites web, boutiques et vues de boutique dans l’Administration.
Étape 2 : Créer des hôtes virtuels nginx
Cette étape explique comment charger des sites web sur le storefront. Vous pouvez utiliser des sites web ou des vues de boutique. Si vous utilisez des vues de boutique, vous devez ajuster les valeurs de paramètre en conséquence. Vous devez effectuer les tâches de cette section en tant qu’utilisateur disposant de droits d’sudo
.
En utilisant un seul fichier d'hôte virtuel nginx, vous pouvez garder votre configuration nginx simple et propre. En utilisant plusieurs fichiers d’hôtes virtuels, vous pouvez personnaliser chaque magasin (pour utiliser un emplacement personnalisé pour les french.mysite.mg
, par exemple).
Pour créer un hôte virtuel (simplifié) :
Cette configuration se développe sur configuration nginx.
-
Ouvrez un éditeur de texte et ajoutez le contenu suivant à un nouveau fichier nommé
/etc/nginx/sites-available/magento
:code language-conf map $http_host $MAGE_RUN_CODE { default ''; french.mysite.mg french; german.mysite.mg german; } server { listen 80; server_name mysite.mg french.mysite.mg german.mysite.mg; set $MAGE_ROOT /var/www/html/magento2; set $MAGE_MODE developer; set $MAGE_RUN_TYPE website; #or set $MAGE_RUN_TYPE store; include /var/www/html/magento2/nginx.conf; }
-
Enregistrez vos modifications dans les fichiers et quittez l’éditeur de texte.
-
Vérifiez la configuration du serveur :
code language-bash nginx -t
-
En cas de réussite, le message suivant s’affiche :
code language-none nginx: configuration file /etc/nginx/nginx.conf test is successful
Si des erreurs s’affichent, vérifiez la syntaxe de vos fichiers de configuration d’hôte virtuel.
-
Créer un lien symbolique dans le répertoire
/etc/nginx/sites-enabled
:code language-bash cd /etc/nginx/sites-enabled
code language-bash ln -s /etc/nginx/sites-available/magento magento
Pour plus d'informations sur la directive map, voir nginx documentation on the map directive.
Pour créer plusieurs hôtes virtuels :
-
Ouvrez un éditeur de texte et ajoutez le contenu suivant à un nouveau fichier nommé
/etc/nginx/sites-available/french.mysite.mg
:code language-conf server { listen 80; server_name french.mysite.mg; set $MAGE_ROOT /var/www/html/magento2; set $MAGE_MODE developer; set $MAGE_RUN_TYPE website; #or set $MAGE_RUN_TYPE store; set $MAGE_RUN_CODE french; include /var/www/html/magento2/nginx.conf; }
-
Créez un autre fichier nommé
german.mysite.mg
dans le même répertoire avec le contenu suivant :code language-conf server { listen 80; server_name german.mysite.mg; set $MAGE_ROOT /var/www/html/magento2; set $MAGE_MODE developer; set $MAGE_RUN_TYPE website; #or set $MAGE_RUN_TYPE store; set $MAGE_RUN_CODE german; include /var/www/html/magento2/nginx.conf; }
-
Enregistrez vos modifications dans les fichiers et quittez l’éditeur de texte.
-
Vérifiez la configuration du serveur :
code language-bash nginx -t
-
En cas de réussite, le message suivant s’affiche :
code language-none nginx: configuration file /etc/nginx/nginx.conf test is successful
Si des erreurs s’affichent, vérifiez la syntaxe de vos fichiers de configuration d’hôte virtuel.
-
Créer des liens symboliques dans le répertoire
/etc/nginx/sites-enabled
:code language-bash cd /etc/nginx/sites-enabled
code language-bash ln -s /etc/nginx/sites-available/french.mysite.mg french.mysite.mg
code language-bash ln -s /etc/nginx/sites-available/german.mysite.mg german.mysite.mg
Étape 3 : Modifier nginx.conf.sample
nginx.conf.sample
; il s’agit d’un fichier Commerce de base qui peut être mis à jour à chaque nouvelle version. Copiez plutôt le fichier nginx.conf.sample
, renommez-le, puis modifiez le fichier copié.Pour éditer le point d'entrée PHP de l'application principale :
Pour modifier le fichier nginx.conf.sample
** :
-
Ouvrez un éditeur de texte et passez en revue le fichier
nginx.conf.sample
,<magento2_installation_directory>/nginx.conf.sample
. Recherchez la section suivante :code language-conf # PHP entry point for main application location ~ (index|get|static|report|404|503|health_check)\.php$ { try_files $uri =404; fastcgi_pass fastcgi_backend; fastcgi_buffers 1024 4k; fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off"; fastcgi_param PHP_VALUE "memory_limit=1G \n max_execution_time=18000"; fastcgi_read_timeout 600s; fastcgi_connect_timeout 600s; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
-
Mettez à jour le fichier
nginx.conf.sample
avec les deux lignes suivantes avant l’instruction d’inclusion :code language-conf fastcgi_param MAGE_RUN_TYPE $MAGE_RUN_TYPE; fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE;
Voici un exemple de point d’entrée PHP mis à jour pour l’application principale :
# PHP entry point for main application
location ~ (index|get|static|report|404|503|health_check)\.php$ {
try_files $uri =404;
fastcgi_pass fastcgi_backend;
fastcgi_buffers 1024 4k;
fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off";
fastcgi_param PHP_VALUE "memory_limit=1G \n max_execution_time=18000";
fastcgi_read_timeout 600s;
fastcgi_connect_timeout 600s;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# START - Multisite customization
fastcgi_param MAGE_RUN_TYPE $MAGE_RUN_TYPE;
fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE;
# END - Multisite customization
include fastcgi_params;
}
Étape 4 : mettre à jour la configuration de l’URL de base
Vous devez mettre à jour l’URL de base pour les sites Web french
et german
dans l’administration Commerce.
Mettre à jour l'URL de base du site Web français
- Connectez-vous à l’administrateur Commerce et accédez à Magasins > Paramètres > Configuration > Général > Web.
- Modifiez la portée de la configuration sur le site web
french
. - Développez la section URL de base et mettez à jour la valeur URL de base et URL de lien de base sur
http://french.magento24.com/
. - Développez la section URL de base (sécurisée) et mettez à jour la valeur URL de base sécurisée et URL de lien de base sécurisée sur
https://french.magento24.com/
. - Cliquez sur Enregistrer la configuration et enregistrez les modifications apportées à la configuration.
Mettre à jour l’URL de base du site web allemand
- Connectez-vous à l’administrateur Commerce et accédez à Magasins > Paramètres > Configuration > Général > Web.
- Modifiez la portée de la configuration sur le site web
german
. - Développez la section URL de base et mettez à jour la valeur URL de base et URL de lien de base sur
http://german.magento24.com/
. - Développez la section URL de base (sécurisée) et mettez à jour la valeur URL de base sécurisée et URL de lien de base sécurisée sur
https://german.magento24.com/
. - Cliquez sur Enregistrer la configuration et enregistrez les modifications apportées à la configuration.
Nettoyage du cache
Exécutez la commande suivante pour nettoyer les caches config
et full_page
.
bin/magento cache:clean config full_page
Vérification de votre site
À moins que le DNS n’ait été configuré pour les URL de vos magasins, vous devez ajouter un itinéraire statique vers l’hôte dans votre fichier hosts
:
-
Recherchez le fichier
hosts
de votre système d’exploitation. -
Ajoutez l’itinéraire statique au format :
code language-conf <ip-address> french.mysite.mg <ip-address> german.mysite.mg
-
Accédez à l’une des URL suivantes dans votre navigateur :
code language-http http://mysite.mg/admin http://french.mysite.mg/frenchstoreview http://german.mysite.mg/germanstoreview
- Des tâches supplémentaires peuvent être nécessaires pour déployer plusieurs sites web dans un environnement hébergé. Pour plus d’informations, contactez votre fournisseur d’hébergement.
- Des tâches supplémentaires sont nécessaires pour configurer Adobe Commerce sur l’infrastructure cloud. Voir Configuration de plusieurs sites web ou magasins cloud dans le guide Commerce sur l’infrastructure cloud.
Dépannage
- Si vos sites français et allemands renvoient 404 mais que votre administrateur charge, veillez à terminer Étape 6 : ajouter le code de magasin à l’URL de base.
- Si toutes les URL renvoient des URL 404, veillez à redémarrer votre serveur web.
- Si l’administrateur ne fonctionne pas correctement, assurez-vous de configurer correctement vos hôtes virtuels.