Configuration de plusieurs sites web avec Nginx
Nous supposons que :
-
Vous travaillez sur une machine de développement (ordinateur portable, machine virtuelle ou autre).
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 requises pour configurer Adobe Commerce sur l’infrastructure cloud. Une fois les tâches décrites dans cette rubrique terminées, reportez-vous à la section Configuration de plusieurs sites Web ou magasins du guide sur l’infrastructure de Commerce on Cloud.
-
Vous acceptez plusieurs domaines dans un fichier d’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 avez deux sites web autres que le site par défaut :
french.mysite.mg
avec le code de site webfrench
et le code d’affichage de magasinfr
german.mysite.mg
avec le code de site webgerman
et le code d’affichage de magasinde
mysite.mg
est le site web par défaut et la vue de magasin par défaut
Voici une feuille de route pour la configuration de plusieurs sites web avec nginx :
-
Configurez les sites web, les magasins et les vues de magasin dans l’administrateur.
-
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 variables MAGE
$MAGE_RUN_TYPE
et$MAGE_RUN_CODE
à ingérer à l’aide dunginx.conf.sample
fourni par le Magento (étapes détaillées ci-dessous).-
$MAGE_RUN_TYPE
peut êtrestore
ouwebsite
:- Utilisez
website
pour charger votre site web dans votre vitrine. - 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éation de sites web, magasins et magasins d’affichages dans l’administration
Voir Configuration de plusieurs sites web, magasins et vues de magasin dans l’Admin.
Étape 2 : création d’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 magasin ; si vous utilisez des vues de magasin, 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 des privilèges sudo
.
En n'utilisant qu'un 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 french.mysite.mg
par exemple).
Pour créer un hôte virtuel (simplifié) :
Cette configuration s’étend sur la 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éez 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, consultez la documentation nginx sur la directive map.
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 les contenus suivants :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éez 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 : Modification de nginx.conf.sample
nginx.conf.sample
; il s’agit d’un fichier Commerce principal qui peut être mis à jour avec chaque nouvelle version. Copiez plutôt le fichier nginx.conf.sample
, renommez-le, puis modifiez le fichier copié.Pour modifier 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 : mise à jour de la configuration de l’URL de base
Vous devez mettre à jour l’URL de base pour les sites web french
et german
dans l’administrateur 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.
- Remplacez la portée de configuration par 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 vers
http://french.magento24.com/
. - Développez la section URL de base (sécurisées) et mettez à jour la valeur URL de base sécurisée et URL de lien de base sécurisé vers
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.
- Remplacez la portée de configuration par 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 vers
http://german.magento24.com/
. - Développez la section URL de base (sécurisées) et mettez à jour la valeur URL de base sécurisée et URL de lien de base sécurisé vers
https://german.magento24.com/
. - Cliquez sur Enregistrer la configuration et enregistrez les modifications apportées à la configuration.
Nettoyer le cache
Exécutez la commande suivante pour nettoyer les caches config
et full_page
.
bin/magento cache:clean config full_page
Vérification du site
À moins que vous n’ayez configuré DNS pour les URL de vos magasins, vous devez ajouter un itinéraire statique à 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 requises pour configurer Adobe Commerce sur l’infrastructure cloud. Voir Configuration de plusieurs sites Web ou magasins clouddans le guide sur l’infrastructure de Commerce on Cloud.
Dépannage
- Si vos sites français et allemand renvoient 404 s mais que votre administrateur charge, veillez à avoir terminé Étape 6 : ajoutez le code de magasin à l’URL de base.
- Si toutes les URL renvoient 404, veillez à redémarrer votre serveur web.
- Si l’administrateur ne fonctionne pas correctement, assurez-vous de configurer correctement vos hôtes virtuels.