[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:
-
Installieren Sie die
php-fpm- undphp-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>-clinote 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. -
Öffnen Sie die
php.iniDateien in einem Editor:code language-bash vim /etc/php/<php-version>/fpm/php.inicode language-bash vim /etc/php/<php-version>/cli/php.ini -
Bearbeiten Sie beide Dateien so, dass sie den folgenden Zeilen entsprechen:
code language-conf memory_limit = 2G max_execution_time = 1800 zlib.output_compression = Onnote note NOTE Adobe empfiehlt, beim Testen von Adobe Commerce die Speicherbegrenzung auf 2 GB festzulegen. Weitere Informationen finden Sie Erforderliche PHPEinstellungen). -
Speichern und Beenden des Editors.
-
Starten Sie den
php-fpmneu: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.
-
Melden Sie als „Dateisystemeigentümer bei Ihrem Anwendungs-Server an.
-
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 -
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 -
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.
-
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 . # Ubuntucode language-bash chmod u+x bin/magento -
Installieren Sie über Befehlszeile. In diesem Beispiel wird davon ausgegangen, dass das Installationsverzeichnis
magento2eeheiß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>=9200note note NOTE Verwenden Sie den --search-engineund die entsprechenden Host-/Port-Optionen für die Adobe Commerce-Version, die Sie installieren. Bei Versionen vor 2.4.6 verwenden Sieelasticsearch7mit 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. -
Wechseln Sie in den Entwicklermodus:
code language-bash cd /var/www/html/magento2/bincode 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.
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.
-
Erstellen Sie einen neuen virtuellen Host für Ihre Site:
code language-bash vim /etc/nginx/sites-available/magento -
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. -
Ersetzen Sie
www.magento-dev.comdurch Ihren Domain-Namen. Dieser muss mit der Basis-URL übereinstimmen, die Sie bei der Installation von Adobe Commerce angegeben haben. -
Speichern und Beenden des Editors.
-
Aktivieren Sie den neu erstellten virtuellen Host, indem Sie einen Symlink zu ihm im
/etc/nginx/sites-enablederstellen:code language-bash ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled -
Überprüfen Sie, ob die Syntax korrekt ist:
code language-bash nginx -t -
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.
-
Installieren Sie
php-fpm:code language-bash yum -y install <php-fpm-package> -
Öffnen Sie die
/etc/php.iniin einem Editor.note note NOTE Installieren Sie das Paket, das php-fpmfü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. -
Entfernen Sie den Kommentar für die
cgi.fix_pathinfound ändern Sie den Wert in0. -
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 = Onnote note NOTE Adobe empfiehlt, beim Testen von Adobe Commerce die Speicherbegrenzung auf 2 GB festzulegen. Weitere Informationen finden Sie Erforderliche PHPEinstellungen). -
Entfernen Sie den Kommentar für den Sitzungspfadordner und legen Sie den Pfad fest:
code language-conf session.save_path = "/var/lib/php/session" -
Speichern und Beenden des Editors.
-
Öffnen Sie
/etc/php-fpm.d/www.confin einem Editor. -
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 -
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 -
Speichern und Beenden des Editors.
-
Erstellen Sie ein Verzeichnis für den PHP-Sitzungspfad und ändern Sie den Besitzer in den
nginxBenutzer und die Gruppe:code language-bash mkdir -p /var/lib/php/session/code language-bash chown -R nginx:nginx /var/lib/php/ -
Erstellen Sie ein Verzeichnis für den PHP-FPM-Socket und ändern Sie den Besitzer in den
nginxBenutzer und die Gruppe:code language-bash mkdir -p /run/php-fpm/code language-bash chown -R nginx:nginx /run/php-fpm/ -
Starten Sie den
php-fpm-Service und konfigurieren Sie ihn so, dass er beim Starten gestartet wird:code language-bash systemctl start php-fpmcode language-bash systemctl enable php-fpm -
Stellen Sie sicher, dass der
php-fpmDienst 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.
-
Melden Sie als „Dateisystemeigentümer bei Ihrem Anwendungs-Server an.
-
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 -
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 -
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.
-
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 . # CentOScode language-bash chmod u+x bin/magento -
Installieren Sie über Befehlszeile. In diesem Beispiel wird davon ausgegangen, dass das Installationsverzeichnis
magento2eeheiß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 -
Wechseln Sie in den Entwicklermodus:
code language-bash cd /usr/share/nginx/html/magento2/bincode 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.
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.
-
Erstellen Sie einen neuen virtuellen Host für Ihre Site:
code language-bash vim /etc/nginx/conf.d/magento.conf -
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. -
Ersetzen Sie
www.magento-dev.comdurch Ihren Domain-Namen. -
Speichern und Beenden des Editors.
-
Überprüfen Sie, ob die Syntax korrekt ist:
code language-bash nginx -t -
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:
-
Installieren der SELinux-Verwaltungstools:
code language-bash yum -y install policycoreutils-python -
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/' -
Installieren Sie das Firewall-Paket:
code language-bash yum -y install firewalld -
Starten Sie den Firewall-Dienst, und konfigurieren Sie ihn so, dass er beim Starten gestartet wird:
code language-bash systemctl start firewalldcode language-bash systemctl enable firewalld -
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=httpcode language-bash firewall-cmd --permanent --add-service=httpscode 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.