Magento Installation · 20 min read · Oct 20, 2025

So installieren Sie Magento eCommerce auf Ubuntu 22.04 mit Nginx und Elasticsearch

Magento ist eine Open-Source-E-Commerce-Plattform, die in PHP geschrieben ist. Es wurde 2018 von Adobe übernommen und als Adobe eCommerce bezeichnet. Es wird auch als kommerzielles und cloudbasiertes Produkt angeboten. Sie können Magento verwenden, um professionelle Einkaufswebsites mit hoher Kapazität zu erstellen. Es bietet sowohl einen Einzelhandels- als auch einen Mehrhandelsmodus. Es kommt mit vielen Modulen, um seine Funktionalität zu erweitern.

In diesem Tutorial installieren wir die Open-Source-Community-Edition von Magento. Sie bietet alle Funktionen, die Sie benötigen, um einen professionellen Online-Shop einzurichten. Wir werden auch Elasticsearch installieren, um im Produktkatalog zu suchen, Redis für den Sitzungs- und Dateicache und es mit dem Nginx-Server bereitstellen.

Voraussetzungen

  • Ein Server, der Ubuntu 22.04 mit mindestens 2 GB RAM ausführt. Möglicherweise benötigen Sie mehr RAM, je nach Ihren Anforderungen.
  • Ein Nicht-Root-Benutzer mit Sudo-Rechten.
  • Ein vollständig qualifizierter Domainname (FQDN) für den Server, magento.example.com
  • Stellen Sie sicher, dass alles aktualisiert ist. $ sudo apt update $ sudo apt upgrade
  • Einige Pakete, die Ihr System benötigt. $ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y Einige dieser Pakete sind möglicherweise bereits auf Ihrem System installiert.

Schritt 1 - Firewall konfigurieren

Der erste Schritt besteht darin, die Firewall zu konfigurieren. Ubuntu wird standardmäßig mit ufw (Uncomplicated Firewall) geliefert.

Überprüfen Sie, ob die Firewall aktiv ist.

$ sudo ufw status

Sie sollten die folgende Ausgabe erhalten.

Status: inactive

Erlauben Sie den SSH-Port, damit die Firewall die aktuelle Verbindung beim Aktivieren nicht unterbricht.

$ sudo ufw allow OpenSSH

Erlauben Sie auch die HTTP- und HTTPS-Ports.

$ sudo ufw allow http
$ sudo ufw allow https

Aktivieren Sie die Firewall

$ sudo ufw enable
Befehl kann bestehende SSH-Verbindungen stören. Mit der Operation fortfahren (y|n)? y
Firewall ist aktiv und beim Systemstart aktiviert

Überprüfen Sie den Status der Firewall erneut.

$ sudo ufw status

Sie sollten eine ähnliche Ausgabe sehen.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Schritt 2 - PHP und seine Erweiterungen installieren

Ubuntu 22.04 wird mit der PHP-Version 8.1.2 ausgeliefert, die etwas veraltet ist. Wir werden die neueste PHP-Version 8.2 mit Hilfe des PHP-Repositorys von Ondrej installieren.

$ sudo add-apt-repository ppa:ondrej/php

Installieren Sie als Nächstes PHP und seine von Magento benötigten Erweiterungen.

$ sudo apt install php8.2-fpm php8.2-mysql php8.2-bcmath php8.2-xml php8.2-zip php8.2-curl php8.2-mbstring php8.2-gd php8.2-tidy php8.2-intl php8.2-cli php8.2-soap php8.2-xsl libsodium-dev libsodium23 libssl-dev libcurl14-openssl-dev

Überprüfen Sie die Installation.

$ php --version
PHP 8.2.5 (cli) (built: Apr 14 2023 04:27:02) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.5, Copyright (c) Zend Technologies
    mit Zend OPcache v8.2.5, Copyright (c), von Zend Technologies

Schritt 3 - Composer installieren

Composer ist ein Abhängigkeitsverwaltungswerkzeug für PHP und wird für die Installation von Magento benötigt.

Führen Sie die folgenden Befehle aus, um die Composer-Binärdatei herunterzuladen. Magento benötigt Composer 2.2 LTS, daher haben wir den Befehl entsprechend geändert.

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php --2.2
$ php -r "unlink('composer-setup.php');"

Installieren Sie Composer, indem Sie die Binärdatei in das Verzeichnis /usr/local/bin verschieben.

$ sudo mv composer.phar /usr/local/bin/composer

Überprüfen Sie die Installation, indem Sie die Version überprüfen.

$ composer --version
Composer version 2.2.21 2023-02-15 13:07:40

Schritt 4 - MySQL installieren

Ubuntu 22.04 wird mit der neuesten Version von MySQL ausgeliefert. Sie können es mit einem einzigen Befehl installieren.

$ sudo apt install mysql-server

Überprüfen Sie die Version von MySQL.

$ mysql --version
mysql  Ver 8.0.33-0ubuntu0.22.04.1 für Linux auf x86_64 ((Ubuntu))

Dieser Schritt ist notwendig für MySQL-Versionen 8.0.28 und höher. Geben Sie die MySQL-Shell ein.

$ sudo mysql

Führen Sie den folgenden Befehl aus, um das Passwort für Ihren Root-Benutzer festzulegen. Stellen Sie sicher, dass es eine Mischung aus Zahlen, Großbuchstaben, Kleinbuchstaben und Sonderzeichen enthält.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';

Verlassen Sie die Shell.

mysql> exit

Führen Sie das MySQL-Sicherheitsinstallationsskript aus.

$ sudo mysql_secure_installation

Zuerst werden Sie nach Ihrem Root-Passwort gefragt. Geben Sie es ein. Als Nächstes werden Sie gefragt, ob Sie die Validate Password-Komponente installieren möchten. Es überprüft die Stärke der in MySQL verwendeten Passwörter. Drücken Sie Y, um es zu installieren. Als Nächstes werden Sie gefragt, welches Niveau der Passwortvalidierungspolitik Sie festlegen möchten. Wählen Sie 2, da es die stärkste ist.

Sichern der MySQL-Serverbereitstellung.

Geben Sie das Passwort für den Benutzer root ein:

VALIDATE PASSWORD COMPONENT kann verwendet werden, um Passwörter zu testen
und die Sicherheit zu verbessern. Es überprüft die Stärke des Passworts
und erlaubt den Benutzern, nur solche Passwörter festzulegen, die
sicher genug sind. Möchten Sie die VALIDATE PASSWORD-Komponente einrichten?

Drücken Sie y|Y für Ja, eine andere Taste für Nein: Y

Es gibt drei Ebenen der Passwortvalidierungspolitik:

NIEDRIG    Länge >= 8
MITTEL Länge >= 8, numerisch, gemischte Groß- und Kleinschreibung sowie Sonderzeichen
STARK Länge >= 8, numerisch, gemischte Groß- und Kleinschreibung, Sonderzeichen und Wörterbuchdatei

Bitte geben Sie 0 = NIEDRIG, 1 = MITTEL und 2 = STARK ein: 2
Verwenden des vorhandenen Passworts für root.

Geschätzte Stärke des Passworts: 100

Geben Sie als Nächstes N ein, um zu verweigern, Ihr Root-Passwort zu ändern. Geben Sie auch Y ein, um anonyme Benutzer zu entfernen, entfernte Root-Anmeldungen zu verweigern, die Testdatenbank zu entfernen und die Berechtigungstabellen neu zu laden.

Ändern Sie das Passwort für root? ((Drücken Sie y|Y für Ja, eine andere Taste für Nein): N

 ... überspringen.
Standardmäßig hat eine MySQL-Installation einen anonymen Benutzer,
was es jedem ermöglicht, sich bei MySQL anzumelden, ohne ein Benutzerkonto zu haben.
Dies ist nur für Tests gedacht und um die Installation etwas reibungsloser zu gestalten.
Sie sollten sie entfernen, bevor Sie in eine Produktionsumgebung wechseln.

Anonyme Benutzer entfernen? (Drücken Sie y|Y für Ja, eine andere Taste für Nein): Y
Erfolg.

Normalerweise sollte root nur von
'localhost' aus verbunden werden dürfen. Dies stellt sicher, dass jemand nicht das
Root-Passwort über das Netzwerk erraten kann.

Verweigern Sie die Remote-Root-Anmeldung? (Drücken Sie y|Y für Ja, eine andere Taste für Nein): Y
Erfolg.

Standardmäßig kommt MySQL mit einer Datenbank namens 'test', auf die
jeder zugreifen kann. Dies ist ebenfalls nur für Tests gedacht
und sollte entfernt werden, bevor Sie in eine Produktionsumgebung wechseln.

Testdatenbank und Zugriff darauf entfernen? (Drücken Sie y|Y für Ja, eine andere Taste für Nein): Y
 - Testdatenbank wird gelöscht...
Erfolg.

 - Berechtigungen für die Testdatenbank werden entfernt...
Erfolg.

Das Neuladen der Berechtigungstabellen stellt sicher, dass alle Änderungen
bis jetzt sofort wirksam werden.

Berechtigungstabellen jetzt neu laden? (Drücken Sie y|Y für Ja, eine andere Taste für Nein): Y
Erfolg.

Alles erledigt!

Schritt 5 - MySQL konfigurieren

Melden Sie sich bei der MySQL-Shell an. Geben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden.

$ sudo mysql -u root -p

Erstellen Sie eine Datenbank für Magento.

mysql> CREATE DATABASE magento;

Erstellen Sie ein SQL-Benutzerkonto.

mysql> CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Your_password2';

Gewähren Sie dem Benutzer alle Berechtigungen für die Datenbank.

mysql> GRANT ALL PRIVILEGES ON magento.* TO 'magentouser'@'localhost';

Aktualisieren Sie die Benutzerberechtigungen.

mysql> FLUSH PRIVILEGES;

Verlassen Sie die Shell.

mysql> exit

Schritt 6 - Nginx installieren

Ubuntu 22.04 wird mit einer älteren Version von Nginx ausgeliefert. Um die neueste Version zu installieren, müssen Sie das offizielle Nginx-Repository herunterladen.

Importieren Sie den Signaturschlüssel von Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Fügen Sie das Repository für die stabile Version von Nginx hinzu.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Aktualisieren Sie die System-Repositorys.

$ sudo apt update

Installieren Sie Nginx.

$ sudo apt install nginx

Überprüfen Sie die Installation.

$ nginx -v
nginx version: nginx/1.24.0

Starten Sie den Nginx-Server.

$ sudo systemctl start nginx

Schritt 7 - SSL installieren

Wir müssen Certbot installieren, um das SSL-Zertifikat zu generieren. Sie können Certbot entweder über das Repository von Ubuntu installieren oder die neueste Version mit dem Snapd-Tool herunterladen. Wir werden die Snapd-Version verwenden.

Ubuntu 22.04 wird standardmäßig mit Snapd installiert. Führen Sie die folgenden Befehle aus, um sicherzustellen, dass Ihre Version von Snapd auf dem neuesten Stand ist.

$ sudo snap install core && sudo snap refresh core

Installieren Sie Certbot.

$ sudo snap install --classic certbot

Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin erstellen.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu generieren.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d magento.example.com

Der obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/magento.example.com auf Ihrem Server herunter.

Generieren Sie ein Diffie-Hellman-Gruppe-Zertifikat.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Überprüfen Sie den Certbot-Erneuerungsdienst.

$ sudo systemctl list-timers

Sie finden snap.certbot.renew.service als einen der Dienste, die geplant sind.

NEXT                        LEFT          LAST                        PASSED        UNIT                      ACTIVATES
.....
Sun 2023-02-26 06:32:00 UTC 9h left       Sat 2023-02-25 18:04:05 UTC 2h 59min ago  snap.certbot.renew.timer  snap.certbot.renew.service
Sun 2023-02-26 06:43:20 UTC 9h left       Sat 2023-02-25 10:49:23 UTC 10h ago       apt-daily-upgrade.timer   apt-daily-upgrade.service
Sun 2023-02-26 09:00:06 UTC 11h left      Sat 2023-02-25 20:58:06 UTC 5min ago      apt-daily.timer           apt-daily.service

Führen Sie einen Testlauf des Prozesses durch, um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert.

$ sudo certbot renew --dry-run

Wenn Sie keine Fehler sehen, sind Sie bereit. Ihr Zertifikat wird automatisch erneuert.

Schritt 8 - Elasticsearch installieren

Elasticsearch wird von Magento für Produktsuchen verwendet. Wir werden Elasticsearch 7.x mit seinem offiziellen Repository installieren, da es die Version ist, die mit Magento kompatibel ist.

Importieren Sie den GPG-Schlüssel von Elasticsearch.

$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

Fügen Sie das Elasticsearch-Repository hinzu.

$ echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list

Aktualisieren Sie die Repository-Liste des Systems.

$ sudo apt update

Installieren Sie Elasticsearch.

$ sudo apt install elasticsearch

Elasticsearch benötigt viel Speicher. Sie müssen seine Nutzung je nach Größe Ihres Servers einschränken. Erstellen Sie die Datei /etc/elasticsearch/jvm.options.d/memory.options und öffnen Sie sie zur Bearbeitung.

$ sudo nano /etc/elasticsearch/jvm.options.d/memory.options

Fügen Sie den folgenden Code ein.

-Xms1g
-Xmx1g

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden. Dies konfiguriert Elasticsearch so, dass es 1 GB RAM verwendet. Sie können jeden Wert nach Bedarf verwenden.

Starten und aktivieren Sie den Dienst.

$ sudo systemctl enable elasticsearch --now

Überprüfen Sie, ob Elasticsearch funktioniert.

$ curl http://localhost:9200

Sie sollten die folgende Ausgabe sehen.

{
  "name" : "magento",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "6yks8tZ6T4GskIwWoXuSLA",
  "version" : {
    "number" : "7.17.10",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "fecd68e3150eda0c307ab9a9d7557f5d5fd71349",
    "build_date" : "2023-04-23T05:33:18.138275597Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Schritt 9 - Redis-Server installieren

Magento verwendet Redis für die Sitzungs- und Cache-Speicherung. Es ist völlig optional und Sie können die Datenbank für die Sitzungs Speicherung verwenden. Aber Redis macht einen besseren Job. Die neueste Version von Magento funktioniert mit Redis 7.0. Ubuntu wird mit Redis 6.0 ausgeliefert, daher werden wir das Redis-Repository für die Installation verwenden.

Importieren Sie den offiziellen Redis-GPG-Schlüssel.

$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

Fügen Sie das APT-Repository zu Ihrer Quellenliste hinzu.

$ echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

Aktualisieren Sie die Repository-Liste des Systems.

$ sudo apt update

Führen Sie den folgenden Befehl aus, um den Redis-Server zu installieren.

$ sudo apt install redis

Bestätigen Sie die Redis-Version.

$ redis-server -v
Redis server v=7.0.11 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=3af367a78d5e21e9

Lassen Sie uns die Dienstverbindung mit dem folgenden Befehl überprüfen.

$ redis-cli

Sie werden zur Redis-Shell gewechselt.

Der erste Schritt besteht darin, das Passwort für den Standardbenutzer von Redis festzulegen. Ersetzen Sie Your_Redis_Password durch ein starkes Passwort Ihrer Wahl. Stellen Sie sicher, dass Sie das Passwort mit dem Zeichen > voranstellen.

127.0.0.1:6379> acl setuser default >Your_Redis_Password

Testen Sie die Redis-Authentifizierung.

127.0.0.1:6379> AUTH Your_Redis_Password
OK

Pingen Sie den Dienst.

127.0.0.1:6379> ping
PONG

Verlassen Sie den Dienst, indem Sie exit eingeben.

Schritt 10 - Magento herunterladen

Erstellen Sie ein Webstammverzeichnis für Magento.

$ sudo mkdir /var/www/magento -p

Geben Sie die Rechte für das Magento-Verzeichnis an den aktuellen Benutzer.

$ sudo chown $USER:$USER /var/www/magento/ -R

Wechseln Sie in das Verzeichnis /var/www.

$ cd /var/www

Bevor wir fortfahren, benötigen Sie die Authentifizierungsschlüssel, die vom Magento-Repository benötigt werden. Besuchen Sie die Website https://account.magento.com/ und Sie erhalten die folgende Seite, die Sie auffordert, sich mit Ihrer Adobe-ID anzumelden.

Adobe ID Anmeldeseite

Klicken Sie auf die Schaltfläche Mit Adobe ID anmelden, um zur folgenden Seite zu gelangen.

Magento Adobe Anmeldeseite

Wenn Sie eine Adobe-ID haben, geben Sie Ihre Anmeldedaten ein, um fortzufahren, oder Sie können hier ein Konto erstellen. Nachdem Sie Ihr Konto erstellt und sich angemeldet haben, öffnen Sie die URL https://marketplace.magento.com/customer/accessKeys/. Sie können auch auf diese Seite zugreifen, indem Sie Ihr Profil besuchen und auf den Link Zugriffsschlüssel klicken.

Adobe Magento-Profil Zugriffsschlüssel-Seite

Klicken Sie auf die Schaltfläche Einen neuen Zugriffsschlüssel erstellen, um Ihren Authentifizierungsschlüssel zu erstellen. Geben Sie Ihrem Schlüssel einen Namen zur Identifizierung.

Magento Zugriffsschlüssel

Notieren Sie sich sowohl den öffentlichen als auch den privaten Schlüssel für den nächsten Schritt.

Erstellen Sie das Magento-Projekt.

$ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento

Sie werden nach dem Benutzernamen und Passwort für das Repository gefragt. Verwenden Sie den öffentlichen Schlüssel als Ihren Benutzernamen und den privaten Schlüssel als Ihr Passwort. Sie werden gefragt, ob Sie die Anmeldedaten im Composer-Konfigurationsverzeichnis speichern möchten. Geben Sie y ein, um dies zu tun.

Erstellen eines Projekts "magento/project-community-edition" bei "./magento"
    Authentifizierung erforderlich (repo.magento.com):
      Benutzername: 53211xxxxxxxxxxxxxxxxxxxxxxxxxxx
      Passwort:
Möchten Sie die Anmeldedaten für repo.magento.com in /home/navjot/.config/composer/auth.json speichern? [Yn] y
Installiere magento/project-community-edition (2.4.6)
  - Herunterladen von magento/project-community-edition (2.4.6)
  - Installiere magento/project-community-edition (2.4.6): Archiv extrahieren
Projekt in /var/www/magento erstellt
Lade Composer-Repositories mit Paketinformationen
Info von https://repo.packagist.org: #StandWithUkraine
Aktualisiere Abhängigkeiten
Lock-Datei-Operationen: 564 Installationen, 0 Updates, 0 Entfernungen
  - Sperren von 2tvenom/cborencode (1.0.2)
  - Sperren von adobe-commerce/adobe-ims-metapackage (2.2.0)
...............................................

Führen Sie die folgenden Befehle aus, um die Dateiberechtigungen festzulegen und die Magento-Binärdatei ausführbar zu machen. Setzen Sie auch den Besitzer des Magento-Verzeichnisses auf den Nginx-Benutzer, damit dieser auf die Website zugreifen kann.

$ cd /var/www/magento/
$ sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R :nginx .
$ sudo chmod u+x bin/magento

Schritt 11 - Magento installieren

Stellen Sie sicher, dass Sie sich im Magento-Verzeichnis befinden.

$ cd /var/www/magento

Führen Sie den folgenden Befehl aus, um Magento zu installieren.

$ bin/magento setup:install \
--base-url=http://magento.example.com \
--use-secure=1 \
--base-url-secure=https://magento.example.com \
--use-secure-admin=1 \
--db-host=localhost \
--db-name=magento \
--db-user=magentouser \
--db-password=Your_password2 \
--admin-firstname=Navjot \
--admin-lastname=Singh \
[email protected] \
--admin-user=navjot \
--admin-password=admin_password \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1 \
--elasticsearch-host=http://127.0.0.1 \
--elasticsearch-port=9200 \
--session-save=redis \
--session-save-redis-db=0 \
--session-save-redis-password=redis_password \
--cache-backend=redis \
--cache-backend-redis-db=2 \
--cache-backend-redis-password=redis_password \
--page-cache=redis \
--page-cache-redis-db=4 \
--page-cache-redis-password=redis_password

Sobald der Vorgang abgeschlossen ist, erhalten Sie eine ähnliche Ausgabe.

.......
[ERFOLG]: Magento-Installation abgeschlossen.
[ERFOLG]: Magento Admin-URI: /admin_19uadb
Nichts zu importieren.

Notieren Sie sich die Admin-URI, die Sie später benötigen, um auf das Administrationspanel zuzugreifen.

Erstellen Sie Magento-Cronjobs.

$ php bin/magento cron:install

Überprüfen Sie den Cronjob.

$ crontab -l

Sie sollten die folgende Ausgabe sehen.

#~ MAGENTO START d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c
* * * * * /usr/bin/php8.2 /var/www/magento/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/magento/var/log/magento.cron.log
#~ MAGENTO END d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c

Schritt 12 - PHP-FPM konfigurieren

Öffnen Sie die Datei /etc/php/8.2/fpm/pool.d/www.conf.

$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf

Wir müssen den Unix-Benutzer/die Gruppe der PHP-Prozesse auf nginx setzen. Suchen Sie die Zeilen user=www-data und group=www-data in der Datei und ändern Sie sie in nginx.

...
; Unix-Benutzer/-gruppe der Prozesse
; Hinweis: Der Benutzer ist obligatorisch. Wenn die Gruppe nicht festgelegt ist, wird die Gruppe des Standardbenutzers verwendet.
;       wird verwendet.
; RPM: apache-Benutzer, der gewählt wurde, um Zugriff auf dieselben Verzeichnisse wie httpd zu gewähren
user = nginx
; RPM: Halten Sie eine Gruppe, die im Protokollverzeichnis schreiben darf.
group = nginx
...

Suchen Sie die Zeilen listen.owner = www-data und listen.group = www-data in der Datei und ändern Sie sie in nginx.

; Setzen Sie Berechtigungen für den Unix-Socket, falls einer verwendet wird. In Linux müssen Lese-/Schreibberechtigungen festgelegt werden,
; um Verbindungen von einem Webserver zu ermöglichen. Viele
; BSD-abgeleitete Systeme erlauben Verbindungen unabhängig von Berechtigungen. Der Besitzer
; und die Gruppe können entweder nach Namen oder nach ihren numerischen IDs angegeben werden.
; Standardwerte: Benutzer und Gruppe sind als laufender Benutzer festgelegt
;                 Modus ist auf 0660 festgelegt.
listen.owner = nginx
listen.group = nginx

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Erhöhen Sie die Ausführungszeit für PHP-FPM und PHP-CLI auf 180 Sekunden.

$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/cli/php.ini

Erhöhen Sie das Speicherkontingent für PHP-FPM von 128 MB auf 256 MB. Sie können das Kontingent je nach Größe und Anforderungen Ihres Servers erhöhen.

$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini

Magento setzt standardmäßig das Dateigrößenlimit für die Medienbibliothek auf 2 MB. Führen Sie die folgenden Befehle aus, um das Dateigrößenlimit auf 25 MB zu erhöhen.

$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 25M/g' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php/8.2/fpm/php.ini

Aktivieren Sie die Zlib-Komprimierung.

$ sudo sed -i 's/zlib.output_compression = Off/zlib.output_compression = On/g' /etc/php/8.2/fpm/php.ini

Starten Sie den PHP-FPM-Dienst neu.

$ sudo systemctl restart php8.2-fpm

Ändern Sie die Gruppe des PHP-Sitzungsverzeichnisses in Nginx.

$ sudo chgrp -R nginx /var/lib/php/sessions

Schritt 13 - Nginx konfigurieren

Öffnen Sie die Datei /etc/nginx/nginx.conf zur Bearbeitung.

$ sudo nano /etc/nginx/nginx.conf

Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf; hinzu.

server_names_hash_bucket_size  64;

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/magento.conf zur Bearbeitung.

$ sudo nano /etc/nginx/conf.d/magento.conf

Fügen Sie den folgenden Code ein.

upstream fastcgi_backend {
  server  unix:/run/php/php8.2-fpm.sock;
}

server {
  # Leiten Sie alle http-Anfragen zu https weiter
  listen 80;
  listen [::]:80;
  server_name magento.example.com;
  return 301 https://$host$request_uri;
}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name magento.example.com;

  set $MAGE_ROOT /var/www/magento;
  include /var/www/magento/nginx.conf.sample;
  client_max_body_size 25m;

  access_log /var/log/nginx/magento.access.log;
  error_log  /var/log/nginx/magento.error.log;

  # TLS-Konfiguration
  ssl_certificate /etc/letsencrypt/live/magento.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/magento.example.com/privkey.pem;
  ssl_trusted_certificate /etc/letsencrypt/live/magento.example.com/chain.pem;
  ssl_protocols TLSv1.2 TLSv1.3;

  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
  ssl_prefer_server_ciphers on;
  ssl_session_cache shared:SSL:50m;
  ssl_session_timeout 1d;

  # OCSP Stapling ---
  # Holen Sie sich OCSP-Datensätze aus der URL in ssl_certificate und cachen Sie sie
  ssl_stapling on;
  ssl_stapling_verify on;
  ssl_dhparam /etc/ssl/certs/dhparam.pem;
}

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden, nachdem Sie fertig sind.

Magento wird mit einer Nginx-Konfigurationsvorlage unter /var/www/magento/nginx.conf.sample geliefert, die wir in unserer Konfiguration eingebunden haben. Die Variable $MAGE_ROOT verweist auf das Magento-Webstammverzeichnis, das wir in unserer Datei festgelegt haben und das in der Beispielkonfigurationsdatei verwendet wird.

Überprüfen Sie die Syntax der Nginx-Konfigurationsdatei.

$ sudo nginx -t
nginx: die Konfigurationsdatei /etc/nginx/nginx.conf hat die Syntax ok
nginx: die Konfigurationsdatei /etc/nginx/nginx.conf-Test war erfolgreich

Starten Sie den Nginx-Dienst neu.

$ sudo systemctl restart nginx

Öffnen Sie die Magento-Website über die URL https://magento.example.com. Sie sollten die folgende Seite sehen.

Magento-Homepage

Wenn CSS und JS bei Ihnen nicht geladen werden, führen Sie die folgenden Befehle aus.

$ cd /var/www/magento
$ php bin/magento setup:static-content:deploy -f
$ php bin/magento indexer:reindex

Schritt 14 - Zwei-Faktor-Authentifizierung deaktivieren

Bevor wir auf das Administrationspanel zugreifen, müssen wir die standardmäßig aktivierte Zwei-Faktor-Authentifizierung deaktivieren. Magento versucht, während der Installation über sendmail E-Mails zu senden, um die Zwei-Faktor-Authentifizierung zu aktivieren, aber da wir das nicht konfiguriert haben, ist der einzige Weg, auf das Dashboard zuzugreifen, zuerst die Funktion zu deaktivieren.

Wenn Sie sendmail auf Ihrem Server konfiguriert haben, um E-Mails zu senden, können Sie diesen Schritt überspringen. Um die Zwei-Faktor-Authentifizierung zu deaktivieren, müssen wir zwei von Magentos Modulen mit den folgenden Befehlen deaktivieren.

$ php /var/www/magento/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:disable Magento_TwoFactorAuth

Führen Sie den folgenden Befehl aus, um die Klassen zu erstellen.

$ php /var/www/magento/bin/magento setup:di:compile

Löschen Sie auch den Cache.

$ php /var/www/magento/bin/magento c:c

Schritt 15 - Zugriff auf das Administrationsportal

Sie müssen das Administrationsportal mit der URI öffnen, die das Magento-Installationsskript Ihnen gegeben hat. Wenn Sie es irgendwie vergessen haben oder verloren haben, können Sie die URI erneut mit dem folgenden Befehl abrufen.

$ php /var/www/magento/bin/magento info:adminuri
Admin-URI: /admin_19uadb

Öffnen Sie die URL https://magento.example.com/admin_19uadb in Ihrem Browser und Sie erhalten den folgenden Bildschirm.

Magento Admin-Dashboard-Anmeldeseite

Geben Sie Ihre während der Installation angegebenen Administratoranmeldeinformationen ein und klicken Sie auf die Schaltfläche Anmelden, um fortzufahren. Sie werden mit dem folgenden Bildschirm begrüßt.

Magento Admin-Dashboard

Sie erhalten ein Popup, das um Erlaubnis bittet, dass Adobe Nutzungsdaten sammelt. Klicken Sie auf die Schaltfläche Nicht erlauben, um fortzufahren.

Der nächste Schritt besteht darin, SMTP für E-Mails zu konfigurieren, damit wir die Zwei-Faktor-Authentifizierung wieder aktivieren können. Besuchen Sie das Menü Stores >> Configuration.

Magento Stores >> Konfigurationsmenü

Erweitern Sie das Erweiterte Menü auf der linken Seite und klicken Sie auf die Option Systeme, um die E-Mail-Einstellungsseite zu öffnen.

Magento E-Mail-Sendeeinstellungen

Deaktivieren Sie die Systemwert verwenden-Optionen vor den Optionen Transport, Host und Port. Klicken Sie auf das Dropdown-Menü für Transport und wählen Sie SMTP aus. Für unser Tutorial verwenden wir Amazon SES als Mailer.

Magento Amazon SES E-Mail-Einstellungen

Geben Sie Ihren SMTP-Host, 587 als Port, Benutzernamen und Passwort ein, setzen Sie Auth auf LOGIN und setzen Sie SSL auf TLS in den angegebenen Feldern. Klicken Sie auf die Schaltfläche Konfiguration speichern, wenn Sie fertig sind. Jetzt, da wir die E-Mail-Einstellungen konfiguriert haben, besteht der nächste Schritt darin, die E-Mail-IDs des Shops zu konfigurieren, damit wir sie testen können.

Scrollen Sie nach oben und erweitern Sie das Allgemein-Menü auf derselben Seite und wählen Sie die Option E-Mail-Adressen des Shops aus.

Magento E-Mail-Adressen des Shops

Deaktivieren Sie die Standardabsender-E-Mail-Felder und geben Sie die E-Mail-IDs Ihres Shops ein. Klicken Sie auf die Schaltfläche Konfiguration speichern, wenn Sie fertig sind. Öffnen Sie ebenfalls den Bildschirm Kontakte und nehmen Sie dieselben Änderungen vor und klicken Sie auf die Schaltfläche Konfiguration speichern, um es abzuschließen.

Magento Kontakt-E-Mail-Einstellungen

Änderungen an den Administratoroptionen können den Cache beeinflussen, und Sie erhalten eine Warnung. Führen Sie den folgenden Befehl aus, um den Cache manuell zu leeren.

$ php /var/www/magento/bin/magento c:c

Um die E-Mails zu testen, besuchen Sie die Shop-Seite und öffnen Sie die Seite Kontaktieren Sie uns. Sie können die URL https://magento.example.com/contact/ direkt verwenden, um darauf zuzugreifen. Senden Sie eine Testnachricht und klicken Sie auf die Schaltfläche Absenden. Sie sollten eine ähnliche E-Mail erhalten.

Magento Test-E-Mail

Schritt 16 - Zwei-Faktor-Authentifizierung aktivieren und konfigurieren

Jetzt, da wir den SMTP-Mailer aktiviert haben, ist es an der Zeit, die Zwei-Faktor-Authentifizierung wieder zu aktivieren. Führen Sie die folgenden Befehle aus, um die Zwei-Faktor-Authentifizierung zu aktivieren.

$ php /var/www/magento/bin/magento module:enable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:enable Magento_TwoFactorAuth

Aktualisieren Sie das Setup für die Module.

$ php /var/www/magento/bin/magento setup:upgrade

Führen Sie den folgenden Befehl aus, um die Klassen zu erstellen.

$ php /var/www/magento/bin/magento setup:di:compile

Löschen Sie auch den Cache.

$ php /var/www/magento/bin/magento c:c

Wenn Sie nicht auf den Admin-Bereich zugreifen können, führen Sie auch die folgenden Befehle aus.

Erzwingen Sie die Bereitstellung des statischen Inhalts.

$ php /var/www/magento/bin/magento setup:static-content:Deploy -f

Setzen Sie die Dateiberechtigungen.

$ cd /var/www/magento
$ sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R :nginx .

Besuchen Sie das Admin-Portal, und Sie erhalten den folgenden Bildschirm.

Magento 2FA konfigurieren

Wir werden die Google Authenticator-Methode verwenden. Sie können einen Hardware-Schlüssel verwenden, wenn Sie einen haben. Die Google Authenticator-Methode funktioniert mit jeder TOTP-App, einschließlich Authy, 1Password, Bitwarden, Microsoft Authenticator usw. Klicken Sie auf die Schaltfläche Übernehmen, um fortzufahren.

Magento Google 2FA konfigurieren

Auf der nächsten Seite erhalten Sie den QR-Code, den Sie mit Ihrer 2FA-App scannen können. Geben Sie die Details in Ihre App ein und kopieren Sie den generierten Code in das Feld Authenticator-Code. Klicken Sie auf die Schaltfläche Bestätigen, um zum Admin-Dashboard zu gelangen.

Fazit

Damit endet unser Tutorial zur Installation von Magento eCommerce auf einem Ubuntu 22.04-Server mit Nginx-Server und Elasticsearch. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.