Mehrere Websites mit Nginx einrichten

Wir gehen davon aus, dass

  • Sie arbeiten an einer Entwicklungsmaschine (Laptop, virtuelle Maschine oder Ähnliches).

    Möglicherweise sind zusätzliche Aufgaben erforderlich, um mehrere Websites in einer gehosteten Umgebung bereitzustellen. Wenden Sie sich diesbezüglich an Ihren Hosting-Provider.

    Für die Einrichtung von Adobe Commerce in der Cloud-Infrastruktur sind zusätzliche Aufgaben erforderlich. Nachdem Sie die in diesem Thema behandelten Aufgaben abgeschlossen haben, finden Sie weitere Informationen unter Einrichten mehrerer Websites oder Stores im Leitfaden Commerce on Cloud Infrastructure.

  • Sie akzeptieren mehrere Domänen in einer Virtual-Host-Datei oder verwenden einen virtuellen Host pro Website. Die Konfigurationsdateien für den virtuellen Host befinden sich in /etc/nginx/sites-available.

  • Sie verwenden den von Commerce bereitgestellten nginx.conf.sample nur mit den in diesem Tutorial behandelten Änderungen.

  • Die Commerce-Software wird in /var/www/html/magento2 installiert.

  • Sie haben zwei andere Websites als die Standardwebsite:

    • french.mysite.mg mit Website-Code french und Store-Ansichtscode fr
    • german.mysite.mg mit Website-Code german und Store-Ansichtscode de
    • mysite.mg ist die standardmäßige Website- und Store-Ansicht
TIP
Hilfe zur Suche nach diesen Werten finden Sie unter Websites erstellen und Speicheransichten erstellen .

Im Folgenden finden Sie eine Roadmap für die Einrichtung mehrerer Websites mit nginx:

  1. Richten Sie Websites, Stores und speichern Sie Ansichten im Admin ein.

  2. Erstellen Sie einen Nginx-virtuellen Host), um viele Websites oder einen Nginx-virtuellen Host pro Commerce-Website zuzuordnen (siehe folgende Schritte).

  3. Übergeben Sie die Werte der MAGE variables $MAGE_RUN_TYPE und $MAGE_RUN_CODE mithilfe des Magento-bereitgestellten nginx.conf.sample an nginx (siehe unten).

    • $MAGE_RUN_TYPE kann entweder store oder website sein:

      • Verwenden Sie website , um Ihre Website in Ihre Storefront zu laden.
      • Verwenden Sie store , um eine beliebige Store-Ansicht in Ihre Storefront zu laden.
    • $MAGE_RUN_CODE ist der eindeutige Website- oder Store-Ansichtscode, der $MAGE_RUN_TYPE entspricht.

  4. Aktualisieren Sie die Basis-URL-Konfiguration auf dem Commerce-Administrator.

Schritt 1: Erstellen von Websites, Geschäften und Speichern von Ansichten in der Admin-Konsole

Siehe Einrichten mehrerer Websites, Stores und Speichern von Ansichten in der Admin-Konsole.

Schritt 2: Erstellen von nginx-virtuellen Hosts

In diesem Schritt wird beschrieben, wie Sie Websites in die Storefront laden. Sie können entweder Websites oder Store-Ansichten verwenden. Wenn Sie Store-Ansichten verwenden, müssen Sie die Parameterwerte entsprechend anpassen. Sie müssen die Aufgaben in diesem Abschnitt als Benutzer mit sudo -Berechtigungen ausführen.

Wenn Sie nur eine nginx-Virtual-Host-Datei verwenden, können Sie Ihre nginx-Konfiguration einfach und sauber halten. Durch die Verwendung mehrerer Virtual-Host-Dateien können Sie jeden Store anpassen (um beispielsweise einen benutzerdefinierten Speicherort für french.mysite.mg zu verwenden).

So erstellen Sie einen virtuellen Host (vereinfacht):

Diese Konfiguration wird mit der nginx-Konfiguration erweitert.

  1. Öffnen Sie einen Texteditor und fügen Sie der neuen Datei /etc/nginx/sites-available/magento den folgenden Inhalt hinzu:

    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;
    }
    
  2. Speichern Sie Ihre Änderungen in den Dateien und beenden Sie den Texteditor.

  3. Überprüfen Sie die Serverkonfiguration:

    code language-bash
    nginx -t
    
  4. Bei erfolgreicher Ausführung wird die folgende Meldung angezeigt:

    code language-none
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    

    Wenn Fehler angezeigt werden, überprüfen Sie die Syntax Ihrer Konfigurationsdateien für virtuelle Hosts.

  5. Erstellen Sie eine symbolische Verknüpfung im Verzeichnis /etc/nginx/sites-enabled :

    code language-bash
    cd /etc/nginx/sites-enabled
    
    code language-bash
    ln -s /etc/nginx/sites-available/magento magento
    

Weitere Informationen zur map -Direktive finden Sie in der nginx-Dokumentation zur map -Direktive.

So erstellen Sie mehrere virtuelle Hosts:

  1. Öffnen Sie einen Texteditor und fügen Sie der neuen Datei /etc/nginx/sites-available/french.mysite.mg den folgenden Inhalt hinzu:

    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;
    }
    
  2. Erstellen Sie eine weitere Datei mit dem Namen german.mysite.mg im selben Ordner mit folgendem Inhalt:

    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;
    }
    
  3. Speichern Sie Ihre Änderungen in den Dateien und beenden Sie den Texteditor.

  4. Überprüfen Sie die Serverkonfiguration:

    code language-bash
    nginx -t
    
  5. Bei erfolgreicher Ausführung wird die folgende Meldung angezeigt:

    code language-none
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    

    Wenn Fehler angezeigt werden, überprüfen Sie die Syntax Ihrer Konfigurationsdateien für virtuelle Hosts.

  6. Erstellen Sie symbolische Links im Verzeichnis /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
    

Schritt 3: Ändern Sie nginx.conf.sample

TIP
Bearbeiten Sie nicht die Datei "nginx.conf.sample". Es handelt sich um eine Kerndatei von Commerce, die mit jeder neuen Version aktualisiert werden kann. Kopieren Sie stattdessen die Datei "nginx.conf.sample", benennen Sie sie um und bearbeiten Sie dann die kopierte Datei.

Bearbeiten des PHP-Einstiegspunkts für die Hauptanwendung:

So ändern Sie die nginx.conf.sample-Datei**:

  1. Öffnen Sie einen Texteditor und überprüfen Sie die Datei nginx.conf.sample , <magento2_installation_directory>/nginx.conf.sample. Suchen Sie nach dem folgenden Abschnitt:

    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;
    }
    
  2. Aktualisieren Sie die Datei nginx.conf.sample mit den folgenden beiden Zeilen vor der Include-Anweisung:

    code language-conf
    fastcgi_param MAGE_RUN_TYPE $MAGE_RUN_TYPE;
    fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE;
    

Ein Beispiel für einen aktualisierten PHP-Einstiegspunkt für die Hauptanwendung sieht wie folgt aus:

# 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;
}

Schritt 4: Aktualisieren der Basis-URL-Konfiguration

Sie müssen die Basis-URL für die Websites french und german im Commerce-Admin aktualisieren.

Aktualisieren der Basis-URL der französischen Website

  1. Melden Sie sich beim Commerce-Administrator an und navigieren Sie zu "Stores"> "Einstellungen"> "Konfiguration"> "Allgemein"> "Web".
  2. Ändern Sie den Konfigurationsbereich in die french-Website.
  3. Erweitern Sie den Abschnitt Basis-URLs und aktualisieren Sie den Wert Basis-URL und den Wert Basis-Link-URL auf http://french.magento24.com/.
  4. Erweitern Sie den Abschnitt Basis-URLs (sicher) und aktualisieren Sie den Wert Sichere Basis-URL und den Wert Sichere Basis-Link-URL auf https://french.magento24.com/.
  5. Klicken Sie auf Konfiguration speichern und speichern Sie die Konfigurationsänderungen.

Aktualisieren der deutschen Website-Basis-URL

  1. Melden Sie sich beim Commerce-Administrator an und navigieren Sie zu "Stores"> "Einstellungen"> "Konfiguration"> "Allgemein"> "Web".
  2. Ändern Sie den Konfigurationsbereich in die german-Website.
  3. Erweitern Sie den Abschnitt Basis-URLs und aktualisieren Sie den Wert Basis-URL und den Wert Basis-Link-URL auf http://german.magento24.com/.
  4. Erweitern Sie den Abschnitt Basis-URLs (sicher) und aktualisieren Sie den Wert Sichere Basis-URL und den Wert Sichere Basis-Link-URL auf https://german.magento24.com/.
  5. Klicken Sie auf Konfiguration speichern und speichern Sie die Konfigurationsänderungen.

Cache leeren

Führen Sie den folgenden Befehl aus, um die Caches config und full_page zu bereinigen.

bin/magento cache:clean config full_page

Überprüfen der Site

Sofern kein DNS für die URLs Ihrer Stores eingerichtet ist, müssen Sie in Ihrer hosts -Datei eine statische Route zum Host hinzufügen:

  1. Suchen Sie die Datei des Betriebssystems hosts .

  2. Fügen Sie die statische Route im Format hinzu:

    code language-conf
    <ip-address> french.mysite.mg
    <ip-address> german.mysite.mg
    
  3. Rufen Sie eine der folgenden URLs in Ihrem Browser auf:

    code language-http
    http://mysite.mg/admin
    http://french.mysite.mg/frenchstoreview
    http://german.mysite.mg/germanstoreview
    
INFO
  • Möglicherweise sind zusätzliche Aufgaben erforderlich, um mehrere Websites in einer gehosteten Umgebung bereitzustellen. Wenden Sie sich diesbezüglich an Ihren Hosting-Provider.
  • Weitere Aufgaben sind erforderlich, um Adobe Commerce in der Cloud-Infrastruktur einzurichten. Weitere Informationen finden Sie unter Einrichten mehrerer Cloud-Websites oder -Stores im Handbuch Commerce on Cloud Infrastructure.

Fehlerbehebung

  • Wenn Ihre französischen und deutschen Sites 404 s zurückgeben, Ihr Admin jedoch geladen wird, stellen Sie sicher, dass Sie Schritt 6: Hinzufügen des Store-Codes zur Basis-URL abgeschlossen haben.
  • Wenn alle URLs 404 s zurückgeben, stellen Sie sicher, dass Sie Ihren Webserver neu starten.
  • Wenn der Administrator nicht ordnungsgemäß funktioniert, stellen Sie sicher, dass Sie Ihre virtuellen Hosts ordnungsgemäß eingerichtet haben.
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c