[Nur PaaS]{class="badge informative" title="Gilt nur für Adobe Commerce in Cloud-Projekten (von Adobe verwaltete PaaS-Infrastruktur) und lokale Projekte."}

Einrichten mehrerer Websites mit Nginx

Wir gehen davon aus, dass

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

    Möglicherweise sind zusätzliche Aufgaben erforderlich, um mehrere Websites in einer gehosteten Umgebung bereitzustellen. Weitere Informationen erhalten Sie bei Ihrem Hosting-Anbieter.

    Zum Einrichten von Adobe Commerce in der Cloud-Infrastruktur sind zusätzliche Aufgaben erforderlich. Nachdem Sie die in diesem Thema besprochenen Aufgaben abgeschlossen haben, finden Sie weitere Informationen unter Einrichten mehrerer Websites oder Stores im Handbuch zu Commerce in Cloud-Infrastruktur.

  • Sie akzeptieren mehrere Domains in einer Virtual-Host-Datei oder verwenden einen Virtual-Host pro Website. Die Virtual-Host-Konfigurationsdateien befinden sich in /etc/nginx/sites-available.

  • Sie verwenden die von Commerce bereitgestellte nginx.conf.sample nur mit den Änderungen, die in diesem Tutorial erläutert werden.

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

  • Neben der Standardeinstellung gibt es zwei weitere Websites:

    • french.mysite.mg mit Website-Code-french und Store-Ansicht-Code-fr
    • german.mysite.mg mit Website-Code-german und Store-Ansicht-Code-de
    • mysite.mg ist die standardmäßige Website- und Store-Ansicht
TIP
Unter Erstellen von Websites und Erstellen von Store-Ansichten erhalten Sie Hilfe beim Suchen dieser Werte.

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

  1. Einrichten von Websites, Stores und Store-Ansichten im Admin-Bereich.

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

  3. Übergeben Sie die Werte der MAGE-Variablen $MAGE_RUN_TYPE und $MAGE_RUN_CODE mithilfe der von Magento bereitgestellten nginx.conf.sample an nginx (Schritte unten beschrieben).

    • $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-Ansichts-Code, der $MAGE_RUN_TYPE entspricht.

  4. Aktualisieren Sie die Basis-URL-Konfiguration auf der Commerce-Admin.

Schritt 1: Erstellen von Websites, Stores und Store-Ansichten im Admin-Bereich

Siehe Einrichten mehrerer Websites, Stores und Store-Ansichten im Admin.

Schritt 2: Erstellen virtueller nginx-Hosts

In diesem Schritt wird beschrieben, wie Websites in die Storefront geladen werden. 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.

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

So erstellen Sie einen virtuellen Host (vereinfacht):

Diese Konfiguration erweitert die nginx-Konfiguration.

  1. Öffnen Sie einen Texteditor und fügen Sie folgende Inhalte zu einer neuen Datei mit dem Namen /etc/nginx/sites-available/magento 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 Server-Konfiguration:

    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 virtuellen Host-Konfigurationsdateien.

  5. Erstellen Sie eine symbolische Verknüpfung im /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 unter nginx-Dokumentation zur Map-Direktive.

So erstellen Sie mehrere virtuelle Hosts:

  1. Öffnen Sie einen Texteditor und fügen Sie folgende Inhalte zu einer neuen Datei mit dem Namen /etc/nginx/sites-available/french.mysite.mg 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 Verzeichnis 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 Server-Konfiguration:

    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 virtuellen Host-Konfigurationsdateien.

  6. Erstellen Sie symbolische Links im /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 die nginx.conf.sample nicht. Es handelt sich dabei um eine Commerce-Kerndatei, die mit jeder neuen Version aktualisiert werden kann. Kopieren Sie stattdessen die nginx.conf.sample, benennen Sie sie um und bearbeiten Sie dann die kopierte Datei.

So bearbeiten Sie den PHP-Einstiegspunkt für die Hauptanwendung:

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

  1. Öffnen Sie einen Texteditor und überprüfen Sie die nginx.conf.sample Datei ,<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 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 french und die german Websites in Commerce Admin aktualisieren.

Aktualisierung der französischen Website-Basis-URL

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

Aktualisieren der deutschen Website-Basis-URL

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

Cache leeren

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

bin/magento cache:clean config full_page

Überprüfen der Site

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

  1. Suchen Sie die hosts Ihres Betriebssystems.

  2. Fügen Sie die statische Route im folgenden 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. Weitere Informationen erhalten Sie bei Ihrem Hosting-Anbieter.
  • Zum Einrichten von Adobe Commerce in der Cloud-Infrastruktur sind zusätzliche Aufgaben erforderlich. Siehe Einrichten mehrerer Cloud-Websites oder -Stores im Handbuch zu Commerce in der Cloud-Infrastruktur.

Fehlerbehebung

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