[On-Premises]{class="badge informative" title="Gilt nur für Adobe Commerce On-Premise-Projekte."}

Installieren von Nginx für lokale Bereitstellungen nginx

Dieses Handbuch führt Sie durch die Installation von Nginx für lokale Adobe Commerce-Bereitstellungen und die Konfiguration der Nginx-Einstellungen, die für Commerce erforderlich sind. Es enthält betriebssystemspezifische Verfahren für Ubuntu und CentOS sowie Anleitungen zur Konfiguration von PHP-FPM. Adobe empfiehlt, die Konfigurationsanweisungen in diesem Handbuch zu befolgen, um sowohl die Funktionalität als auch die Sicherheit des Commerce-Programms zu wahren.

Adobe unterstützt die Nginx-Versionen, die in den Systemanforderungen für Ihre Adobe Commerce-Version aufgeführt sind. Unterstützte Versionen variieren je nach Version. Nginx benötigt außerdem eine unterstützte PHP-FPM-Konfiguration. Weitere Informationen zu PHP-Anforderungen finden Sie unter PHP.

Auf Ubuntu installieren

Verwenden Sie diesen Abschnitt, um Adobe Commerce auf Ubuntu mit Nginx, PHP und MySQL zu installieren.

Installieren von Nginx

sudo apt -y install nginx

Sie können auch Nginx aus der Quelle erstellen.

Nachdem Sie die folgenden Abschnitte ausgeführt und die Anwendung installiert haben, verwenden Sie die Beispielkonfigurationsdatei zum ​ von Nginx. Diese empfohlene Konfiguration behält sowohl die Funktionalität als auch die Sicherheit des Commerce-Programms bei.

Installieren und Konfigurieren von PHP-FPM

Adobe Commerce benötigt mehrere PHP Extensions um ordnungsgemäß zu funktionieren. Zusätzlich zu diesen Erweiterungen müssen Sie auch die php-fpm-Erweiterung installieren und konfigurieren, wenn Sie Nginx verwenden.

So installieren und konfigurieren Sie php-fpm:

  1. Installieren Sie die php-fpm- und php-cli-Pakete für die PHP-Version, die von Ihrer Adobe Commerce-Version unterstützt wird. Auf Ubuntu folgen Paketnamen normalerweise diesem Muster:

    code language-bash
    apt-get -y install php<php-version>-fpm php<php-version>-cli
    
    note note
    NOTE
    Ersetzen Sie <php-version> durch die unterstützte PHP-Nebenversion, ​ unter „Systemanforderungen für die Adobe Commerce-Version aufgeführt ist, die Sie installieren. Verwenden Sie denselben Wert in den Dateipfaden, dem Service-Namen und dem Socket-Pfad in den folgenden Schritten.
  2. Öffnen Sie die php.ini Dateien in einem Editor:

    code language-bash
    vim /etc/php/<php-version>/fpm/php.ini
    
    code language-bash
    vim /etc/php/<php-version>/cli/php.ini
    
  3. Bearbeiten Sie beide Dateien so, dass sie den folgenden Zeilen entsprechen:

    code language-conf
    memory_limit = 2G
    max_execution_time = 1800
    zlib.output_compression = On
    
    note note
    NOTE
    Adobe empfiehlt, beim Testen von Adobe Commerce die Speicherbegrenzung auf 2 GB festzulegen. Weitere Informationen finden Sie Erforderliche PHPEinstellungen).
  4. Speichern und Beenden des Editors.

  5. Starten Sie den php-fpm neu:

    code language-bash
    systemctl restart php<php-version>-fpm
    

Installieren und Konfigurieren von MySQL

Weitere Informationen finden Sie MySQL.

Installieren von Adobe Commerce

Sie haben verschiedene Möglichkeiten, Adobe Commerce herunterzuladen:

Dieses Beispiel zeigt eine Composer-basierte Installation über die Befehlszeile.

  1. Melden Sie ​ als „Dateisystemeigentümer bei Ihrem Anwendungs-Server an.

  2. Wechseln Sie in das Verzeichnis des Webservers docroot oder in ein Verzeichnis, das Sie als virtuellen Host docroot konfiguriert haben. Für dieses Beispiel verwenden wir den Ubuntu-/var/www/html.

    code language-bash
    cd /var/www/html
    
  3. Installieren Sie Composer global. Composer ist erforderlich, um Abhängigkeiten vor der Installation von Adobe Commerce zu aktualisieren:

    code language-bash
    curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
    
  4. Erstellen Sie ein Composer-Projekt mit dem Adobe Commerce-Metapaket.

    Magento Open Source

    code language-bash
    composer create-project --repository=https://repo.magento.com/ magento/project-community-edition <install-directory-name>
    

    Adobe Commerce

    code language-bash
    composer create-project --repository=https://repo.magento.com/ magento/project-enterprise-edition <install-directory-name>
    

    Geben Sie nach Aufforderung Ihre Authentifizierungsschlüssel ein. Ihr öffentlicher Schlüssel ist Ihr Benutzername; Ihr privater Schlüssel ist Ihr Kennwort.

  5. Legen Sie vor der Installation der Anwendung Lese- und Schreibberechtigungen für die Webservergruppe fest. Dies ist erforderlich, damit die Befehlszeile Dateien in das Dateisystem schreiben kann.

    code language-bash
    cd /var/www/html/<magento install directory>
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
    
    code language-bash
    chown -R :www-data . # Ubuntu
    
    code language-bash
    chmod u+x bin/magento
    
  6. Installieren Sie über Befehlszeile. In diesem Beispiel wird davon ausgegangen, dass das Installationsverzeichnis magento2ee heißt und sich der Datenbank-Host auf demselben Computer befindet (localhost):

    code language-bash
    bin/magento setup:install \
    --base-url=http://localhost/magento2ee \
    --db-host=localhost \
    --db-name=<db-name> \
    --db-user=<db-user> \
    --db-password=<db-password> \
    --backend-frontname=<backend-uri> \
    --admin-firstname=<admin-first-name> \
    --admin-lastname=<admin-last-name> \
    --admin-email=<admin-email> \
    --admin-user=<admin-user> \
    --admin-password=<admin-password> \
    --language=en_US \
    --currency=USD \
    --timezone=America/Chicago \
    --use-rewrites=1 \
    --search-engine=<search-engine-value> \
    --<search-engine-host-parameter>=search-host.example.com \
    --<search-engine-port-parameter>=9200
    
    note note
    NOTE
    Verwenden Sie den --search-engine und die entsprechenden Host-/Port-Optionen für die Adobe Commerce-Version, die Sie installieren. Bei Versionen vor 2.4.6 verwenden Sie elasticsearch7 mit den --elasticsearch-* Optionen für Elasticsearch 7 oder OpenSearch. Verwenden Sie für Version 2.4.6 und höher den Suchmaschinenwert und die entsprechenden CLI-Optionen, die von dieser Version unterstützt werden.
  7. Wechseln Sie in den Entwicklermodus:

    code language-bash
    cd /var/www/html/magento2/bin
    
    code language-bash
    ./magento deploy:mode:set developer
    

Konfigurieren von nginx

Adobe empfiehlt, Nginx mithilfe der im Installationsverzeichnis bereitgestellten nginx.conf.sample-Konfigurationsdatei und Ihrer virtuellen Nginx-Host-Konfiguration zu konfigurieren, um sowohl die Funktionalität als auch die Sicherheit der Commerce-Anwendung zu wahren.

IMPORTANT
Die nginx.conf.sample-Datei bietet das erforderliche Anwendungs-Routing sowie Regeln zum Härten der Sicherheit. Zum Beispiel schränkt es die Ausführung schädlicher Skripte ein, die auf den Server hochgeladen werden. Wenn Sie diese Datei nicht verwenden oder ihre Regeln ändern, sind Sie für die Implementierung gleichwertiger Sicherheitskontrollen in Ihrer benutzerdefinierten Nginx-Konfiguration verantwortlich.

Bei diesen Anweisungen wird davon ausgegangen, dass Sie den Ubuntu-Standardspeicherort für den virtuellen Nginx-Host wie /etc/nginx/sites-available und den Ubuntu-Standardstammordner wie /var/www/html verwenden. Sie können diese Speicherorte an Ihre Umgebung anpassen.

  1. Erstellen Sie einen neuen virtuellen Host für Ihre Site:

    code language-bash
    vim /etc/nginx/sites-available/magento
    
  2. Fügen Sie die folgende Konfiguration hinzu:

    code language-conf
    upstream fastcgi_backend {
      server  unix:/run/php/php<php-version>-fpm.sock;
    }
    
    server {
    
      listen 80;
      server_name www.magento-dev.com;
      set $MAGE_ROOT /var/www/html/magento2;
      include /var/www/html/magento2/nginx.conf.sample;
    }
    
    note note
    NOTE
    Die include-Anweisung muss auf die Beispielkonfigurationsdatei nginx in Ihrem Installationsverzeichnis verweisen.
  3. Ersetzen Sie www.magento-dev.com durch Ihren Domain-Namen. Dieser muss mit der Basis-URL übereinstimmen, die Sie bei der Installation von Adobe Commerce angegeben haben.

  4. Speichern und Beenden des Editors.

  5. Aktivieren Sie den neu erstellten virtuellen Host, indem Sie einen Symlink zu ihm im /etc/nginx/sites-enabled erstellen:

    code language-bash
    ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled
    
  6. Überprüfen Sie, ob die Syntax korrekt ist:

    code language-bash
    nginx -t
    
  7. Nginx neu starten:

    code language-bash
    systemctl restart nginx
    

Überprüfen der Installation

Um die Installation zu überprüfen, öffnen Sie einen Webbrowser und navigieren Sie zur Basis-URL Ihrer Site. Weitere Informationen finden Sie unter Überprüfen der Installation.

Installieren auf CentOS 7

Verwenden Sie diesen Abschnitt, um Adobe Commerce auf CentOS 7 mit Nginx, PHP und MySQL zu installieren.

Installieren von Nginx

yum -y install epel-release
yum -y install nginx

Nachdem die Installation abgeschlossen ist, starten Sie nginx und konfigurieren Sie es so, dass es beim Booten startet:

systemctl start nginx
systemctl enable nginx

Nachdem Sie die folgenden Abschnitte ausgeführt und die Anwendung installiert haben, verwenden Sie eine Beispielkonfigurationsdatei für Nginx.

Installieren und Konfigurieren von PHP-FPM

Adobe Commerce benötigt mehrere PHP-Erweiterungen, um ordnungsgemäß zu funktionieren. Zusätzlich zu diesen Erweiterungen müssen Sie auch die php-fpm-Erweiterung installieren und konfigurieren, wenn Sie Nginx verwenden.

  1. Installieren Sie php-fpm:

    code language-bash
    yum -y install <php-fpm-package>
    
  2. Öffnen Sie die /etc/php.ini in einem Editor.

    note note
    NOTE
    Installieren Sie das Paket, das php-fpm für die PHP-Version bereitstellt, die von der Adobe Commerce-Version unterstützt wird, die Sie installieren. Paketnamen variieren je nach Repository und Betriebssystem. Siehe Systemanforderungen.
  3. Entfernen Sie den Kommentar für die cgi.fix_pathinfo und ändern Sie den Wert in 0.

  4. Bearbeiten Sie die Datei so, dass sie mit den folgenden Zeilen übereinstimmt:

    code language-conf
    memory_limit = 2G
    max_execution_time = 1800
    zlib.output_compression = On
    
    note note
    NOTE
    Adobe empfiehlt, beim Testen von Adobe Commerce die Speicherbegrenzung auf 2 GB festzulegen. Weitere Informationen finden Sie Erforderliche PHPEinstellungen).
  5. Entfernen Sie den Kommentar für den Sitzungspfadordner und legen Sie den Pfad fest:

    code language-conf
    session.save_path = "/var/lib/php/session"
    
  6. Speichern und Beenden des Editors.

  7. Öffnen Sie /etc/php-fpm.d/www.conf in einem Editor.

  8. Bearbeiten Sie die Datei so, dass sie mit den folgenden Zeilen übereinstimmt:

    code language-conf
    user = nginx
    group = nginx
    listen = /run/php-fpm/php-fpm.sock
    listen.owner = nginx
    listen.group = nginx
    listen.mode = 0660
    
  9. Entfernen Sie den Kommentar für die Umgebungszeilen:

    code language-conf
    env[HOSTNAME] = $HOSTNAME
    env[PATH] = /usr/local/bin:/usr/bin:/bin
    env[TMP] = /tmp
    env[TMPDIR] = /tmp
    env[TEMP] = /tmp
    
  10. Speichern und Beenden des Editors.

  11. Erstellen Sie ein Verzeichnis für den PHP-Sitzungspfad und ändern Sie den Besitzer in den nginx Benutzer und die Gruppe:

    code language-bash
    mkdir -p /var/lib/php/session/
    
    code language-bash
    chown -R nginx:nginx /var/lib/php/
    
  12. Erstellen Sie ein Verzeichnis für den PHP-FPM-Socket und ändern Sie den Besitzer in den nginx Benutzer und die Gruppe:

    code language-bash
    mkdir -p /run/php-fpm/
    
    code language-bash
    chown -R nginx:nginx /run/php-fpm/
    
  13. Starten Sie den php-fpm-Service und konfigurieren Sie ihn so, dass er beim Starten gestartet wird:

    code language-bash
    systemctl start php-fpm
    
    code language-bash
    systemctl enable php-fpm
    
  14. Stellen Sie sicher, dass der php-fpm Dienst ausgeführt wird:

    code language-bash
    netstat -pl | grep php-fpm.sock
    

Installieren und Konfigurieren von MySQL

Weitere Informationen finden Sie MySQL.

Installieren von Adobe Commerce

Sie haben verschiedene Möglichkeiten, Adobe Commerce herunterzuladen:

Dieses Beispiel zeigt eine Composer-basierte Installation über die Befehlszeile.

  1. Melden Sie ​ als „Dateisystemeigentümer bei Ihrem Anwendungs-Server an.

  2. Wechseln Sie in das Verzeichnis des Webservers docroot oder in ein Verzeichnis, das Sie als virtuellen Host docroot konfiguriert haben. Verwenden Sie für dieses Beispiel die CentOS-/usr/share/nginx/html.

    code language-bash
    cd /usr/share/nginx/html
    
  3. Installieren Sie Composer global. Composer ist erforderlich, um Abhängigkeiten vor der Installation von Adobe Commerce zu aktualisieren:

    code language-bash
    curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
    
  4. Erstellen Sie ein Composer-Projekt mit dem Adobe Commerce-Metapaket.

    Magento Open Source

    code language-bash
    composer create-project --repository=https://repo.magento.com/ magento/project-community-edition <install-directory-name>
    

    Adobe Commerce

    code language-bash
    composer create-project --repository=https://repo.magento.com/ magento/project-enterprise-edition <install-directory-name>
    

    Geben Sie nach Aufforderung Ihre Authentifizierungsschlüssel ein. Ihr öffentlicher Schlüssel ist Ihr Benutzername; Ihr privater Schlüssel ist Ihr Kennwort.

  5. Legen Sie vor der Installation der Anwendung Lese- und Schreibberechtigungen für die Webservergruppe fest. Dies ist erforderlich, damit die Befehlszeile Dateien in das Dateisystem schreiben kann.

    code language-bash
    cd /usr/share/nginx/html/<magento install directory>
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
    
    code language-bash
    chown -R :nginx . # CentOS
    
    code language-bash
    chmod u+x bin/magento
    
  6. Installieren Sie über Befehlszeile. In diesem Beispiel wird davon ausgegangen, dass das Installationsverzeichnis magento2ee heißt und sich der Datenbank-Host auf demselben Computer befindet (localhost):

    code language-bash
    bin/magento setup:install \
    --base-url=http://localhost/magento2ee \
    --db-host=localhost \
    --db-name=<db-name> \
    --db-user=<db-user> \
    --db-password=<db-password> \
    --backend-frontname=<backend-uri> \
    --admin-firstname=<admin-first-name> \
    --admin-lastname=<admin-last-name> \
    --admin-email=<admin-email> \
    --admin-user=<admin-user> \
    --admin-password=<admin-password> \
    --language=en_US \
    --currency=USD \
    --timezone=America/Chicago \
    --use-rewrites=1
    
  7. Wechseln Sie in den Entwicklermodus:

    code language-bash
    cd /usr/share/nginx/html/magento2/bin
    
    code language-bash
    ./magento deploy:mode:set developer
    

Konfigurieren von nginx

Es wird empfohlen, Nginx mithilfe der nginx.conf.sample-Datei im Installationsverzeichnis und Ihrer virtuellen Nginx-Host-Konfiguration zu konfigurieren.

IMPORTANT
Die nginx.conf.sample-Datei bietet das erforderliche Anwendungs-Routing sowie Regeln zum Härten der Sicherheit. Zum Beispiel schränkt es die Ausführung schädlicher Skripte ein, die auf den Server hochgeladen werden. Wenn Sie diese Datei nicht verwenden oder ihre Regeln ändern, sind Sie für die Implementierung gleichwertiger Sicherheitskontrollen in Ihrer benutzerdefinierten Nginx-Konfiguration verantwortlich.

Bei diesen Anweisungen wird davon ausgegangen, dass Sie den CentOS-Standardspeicherort für den virtuellen Nginx-Host wie /etc/nginx/conf.d und den standardmäßigen Docroot wie /usr/share/nginx/html verwenden. Sie können diese Speicherorte an Ihre Umgebung anpassen.

  1. Erstellen Sie einen neuen virtuellen Host für Ihre Site:

    code language-bash
    vim /etc/nginx/conf.d/magento.conf
    
  2. Fügen Sie die folgende Konfiguration hinzu:

    code language-conf
    upstream fastcgi_backend {
      server  unix:/run/php-fpm/php-fpm.sock;
    }
    
    server {
    
      listen 80;
      server_name www.magento-dev.com;
      set $MAGE_ROOT /usr/share/nginx/html/magento2;
      include /usr/share/nginx/html/magento2/nginx.conf.sample;
    }
    
    note note
    NOTE
    Die include-Anweisung muss auf die Beispielkonfigurationsdatei nginx in Ihrem Installationsverzeichnis verweisen.
  3. Ersetzen Sie www.magento-dev.com durch Ihren Domain-Namen.

  4. Speichern und Beenden des Editors.

  5. Überprüfen Sie, ob die Syntax korrekt ist:

    code language-bash
    nginx -t
    
  6. Nginx neu starten:

    code language-bash
    systemctl restart nginx
    

Konfigurieren von SELinux und Firewall

SELinux ist standardmäßig unter CentOS 7 aktiviert. Verwenden Sie den folgenden Befehl, um die Ausführung zu bestätigen:

sestatus

So konfigurieren Sie SELinux und Firewall:

  1. Installieren der SELinux-Verwaltungstools:

    code language-bash
    yum -y install policycoreutils-python
    
  2. Führen Sie die folgenden Befehle aus, um den Sicherheitskontext für das Installationsverzeichnis zu ändern:

    code language-bash
    semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/app/etc(/.*)?'
    
    code language-bash
    semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/var(/.*)?'
    
    code language-bash
    semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/pub/media(/.*)?'
    
    code language-bash
    semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/pub/static(/.*)?'
    
    code language-bash
    restorecon -Rv '/usr/share/nginx/html/magento2/'
    
  3. Installieren Sie das Firewall-Paket:

    code language-bash
    yum -y install firewalld
    
  4. Starten Sie den Firewall-Dienst, und konfigurieren Sie ihn so, dass er beim Starten gestartet wird:

    code language-bash
    systemctl start firewalld
    
    code language-bash
    systemctl enable firewalld
    
  5. Führen Sie die folgenden Befehle aus, um Ports für HTTP und HTTPS zu öffnen, damit Sie über einen Webbrowser auf die Basis-URL zugreifen können:

    code language-bash
    firewall-cmd --permanent --add-service=http
    
    code language-bash
    firewall-cmd --permanent --add-service=https
    
    code language-bash
    firewall-cmd --reload
    

Überprüfen der Installation

Um die Installation zu überprüfen, öffnen Sie einen Webbrowser und navigieren Sie zur Basis-URL Ihrer Site. Weitere Informationen finden Sie unter Überprüfen der Installation.

recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995