Magento Installation · 24 min read · Oct 19, 2025

So installieren Sie die Magento eCommerce Suite auf Rocky Linux 9 mit Elasticsearch

Magento ist eine Open-Source-E-Commerce-Plattform, die in PHP geschrieben ist. Es wurde 2018 von Adobe übernommen. 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 Einzelgeschäfts- als auch einen Mehrgeschäftsmodus. 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 die Sitzung und den Dateicache, und es mit dem Nginx-Server bereitstellen.

Voraussetzungen

  • Ein Server, der Rocky Linux 9 mit mindestens 2 GB RAM ausführt. Möglicherweise benötigen Sie mehr RAM, abhängig von 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 dnf update
  • Einige Pakete, die Ihr System benötigt. $ sudo dnf install wget curl nano unzip yum-utils policycoreutils-python-utils -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. Rocky Linux verwendet die Firewalld-Firewall. Überprüfen Sie den Status der Firewall.

$ sudo firewall-cmd --state
running

Die Firewall arbeitet mit verschiedenen Zonen, und die öffentliche Zone ist die Standardzone, die wir verwenden werden. Listen Sie alle Dienste und Ports auf, die auf der Firewall aktiv sind.

$ sudo firewall-cmd --permanent --list-services

Es sollte die folgende Ausgabe anzeigen.

cockpit dhcpv6-client ssh

Erlauben Sie HTTP- und HTTPS-Ports.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Überprüfen Sie den Status der Firewall erneut.

$ sudo firewall-cmd --permanent --list-services

Sie sollten eine ähnliche Ausgabe sehen.

cockpit dhcpv6-client http https ssh

Laden Sie die Firewall neu, um die Änderungen zu aktivieren.

$ sudo firewall-cmd --reload

Schritt 2 - PHP und seine Erweiterungen installieren

Rocky Linux 9 wird standardmäßig mit PHP 8.1 ausgeliefert. Um immer auf der neuesten Version von PHP zu bleiben oder wenn Sie mehrere Versionen von PHP installieren möchten, müssen wir das REMI-Repository verwenden.

Der erste Schritt besteht darin, das Epel-Repository zu holen.

$ sudo dnf install epel-release -y

Installieren Sie als Nächstes das Remi-Repository.

$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

Überprüfen Sie die verfügbaren PHP-Streams.

$ dnf module list php -y
Name    Stream              Profiles                                      Summary
php     8.1                 common [d], devel, minimal                    PHP-Skriptsprache

Remis modulares Repository für Enterprise Linux 9 - x86_64
Name    Stream              Profiles                                      Summary
php     remi-7.4            common [d], devel, minimal                    PHP-Skriptsprache
php     remi-8.0            common [d], devel, minimal                    PHP-Skriptsprache
php     remi-8.1            common [d], devel, minimal                    PHP-Skriptsprache
php     remi-8.2            common [d], devel, minimal                    PHP-Skriptsprache
php     remi-8.3            common [d], devel, minimal                    PHP-Skriptsprache

Hinweis: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Die Standardversion ist 8.1. Zum Zeitpunkt des Schreibens dieses Tutorials ist Magento mit PHP 8.2 kompatibel. Daher aktivieren Sie Remis PHP 8.2-Repository.

$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.2

Sie können es und die von Magento benötigten Erweiterungen installieren, indem Sie den folgenden Befehl ausführen.

$ sudo dnf install php-fpm php-cli php-mysql php-mbstring php-xml php-gd php-bcmath php-zip php-curl php-tidy php-intl php-soap php-opcache php-xsl php-sodium

Überprüfen Sie die Installation.

$ php --version
PHP 8.2.15 (cli) (built: Jan 16 2024 12:19:32) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.2.15, Copyright (c) Zend Technologies
    mit Zend OPcache v8.2.15, Copyright (c), by 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.22 2023-09-29 10:53:45

Schritt 4 - MariaDB installieren

Rocky Linux 9 wird mit einer älteren Version von MariaDB ausgeliefert. Daher werden wir das Repository von MariaDB für die Installation verwenden. Zum Zeitpunkt des Schreibens dieses Tutorials unterstützt Magento MariaDB 10.6, die wir installieren werden.

Importieren Sie den GPG-Schlüssel von MariaDB.

$ sudo rpm --import https://supplychain.mariadb.com/MariaDB-Server-GPG-KEY

Erstellen und öffnen Sie die Datei /etc/yum.repos.d/mariadb.repo zur Bearbeitung.

$ sudo nano /etc/yum.repos.d/mariadb.repo

Fügen Sie den folgenden Code ein.

[mariadb]
name = MariaDB
baseurl = https://rpm.mariadb.org/10.6/rhel/$releasever/$basearch
gpgkey= https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

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

$ sudo dnf install MariaDB-server

Überprüfen Sie die Version von MySQL.

$ mysql --version
mysql  Ver 15.1 Distrib 10.6.16-MariaDB, for Linux (x86_64) using  EditLine wrapper

Aktivieren und starten Sie den MariaDB-Dienst.

$ sudo systemctl enable mariadb --now

Führen Sie das Skript zur sicheren Installation von MariaDB aus.

$ sudo mariadb-secure-installation

Sie werden nach dem Root-Passwort gefragt. Drücken Sie Enter, da wir noch kein Passwort dafür festgelegt haben.

HINWEIS: ES WIRD EMPFOHLEN, ALLE TEILE DIESES SKRIPTS FÜR ALLE MariaDB
      SERVER IM PRODUKTIONSEINSATZ AUSZUFÜHREN!  BITTE JEDEN SCHRITT SORGFÄLTIG LESEN!

Um sich bei MariaDB anzumelden, um es zu sichern, benötigen wir das aktuelle
Passwort für den Root-Benutzer. Wenn Sie MariaDB gerade installiert haben und
noch kein Root-Passwort festgelegt haben, sollten Sie hier einfach die Eingabetaste drücken.

Geben Sie das aktuelle Passwort für root ein (drücken Sie die Eingabetaste für keines):

Als Nächstes werden Sie gefragt, ob Sie zur Unix-Socket-Authentifizierungsmethode wechseln möchten. Das unix_socket-Plugin ermöglicht es Ihnen, Ihre Betriebssystemanmeldeinformationen zu verwenden, um eine Verbindung zum MariaDB-Server herzustellen. Da Sie bereits ein geschütztes Root-Konto haben, geben Sie n ein, um fortzufahren.

OK, erfolgreich Passwort verwendet, weiter...

Das Festlegen des Root-Passworts oder die Verwendung des unix_socket stellt sicher, dass niemand
sich ohne die richtige Autorisierung beim MariaDB-Root-Benutzer anmelden kann.

Sie haben Ihr Root-Konto bereits geschützt, sodass Sie sicher 'n' antworten können.

Wechseln Sie zur unix_socket-Authentifizierung [Y/n] n

Als Nächstes werden Sie gefragt, ob Sie Ihr Root-Passwort ändern möchten. Geben Sie Y ein, um weiterzumachen und Ihr Root-Passwort auf etwas Starkes und Sicheres zu ändern.

 ... überspringen.

Sie haben Ihr Root-Konto bereits geschützt, sodass Sie sicher 'n' antworten können.

Ändern Sie das Root-Passwort? [Y/n] Y
Neues Passwort: 
Neues Passwort erneut eingeben: 
Passwort erfolgreich aktualisiert!
Aktualisieren der Berechtigungstabellen..
 ... Erfolg!

Als Nächstes werden Sie nach bestimmten Fragen gefragt, um die Sicherheit von MariaDB zu verbessern. Geben Sie Y ein, um anonyme Benutzer zu entfernen, remote Root-Logins zu verbieten, die Testdatenbank zu entfernen und die Berechtigungstabellen neu zu laden.

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

Anonyme Benutzer entfernen? [Y/n] y
 ... Erfolg!

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

Remote-Root-Login verbieten? [Y/n] y
 ... Erfolg!

Standardmäßig kommt MariaDB 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? [Y/n] y
 - Testdatenbank wird gelöscht...
 ... Erfolg!
 - Berechtigungen für die Testdatenbank werden entfernt...
 ... Erfolg!

Das Neuladen der Berechtigungstabellen stellt sicher, dass alle bisher vorgenommenen Änderungen sofort wirksam werden.

Berechtigungstabellen jetzt neu laden? [Y/n] y
 ... Erfolg!

Aufräumen...

Alles erledigt!  Wenn Sie alle oben genannten Schritte abgeschlossen haben, sollte Ihre MariaDB-Installation jetzt sicher sein.

Danke, dass Sie MariaDB verwenden!

Sie können die MariaDB-Shell eingeben, indem Sie sudo mysql oder sudo mariadb in die Befehlszeile eingeben.

Schritt 5 - MariaDB konfigurieren

Melden Sie sich bei der MariaDB-Shell an.

$ sudo mariadb

Erstellen Sie eine Datenbank für Magento.

MariaDB > CREATE DATABASE magento;

Erstellen Sie ein SQL-Benutzerkonto.

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

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

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

Aktualisieren Sie die Benutzerberechtigungen.

MariaDB > FLUSH PRIVILEGES;

Verlassen Sie die Shell.

MariaDB > exit

Schritt 6 - Nginx installieren

Rocky Linux 9 wird mit einer älteren Version von Nginx ausgeliefert. Sie müssen das offizielle Nginx-Repository verwenden, um die neueste Version zu installieren.

Erstellen und öffnen Sie die Datei /etc/yum.repos.d/nginx.repo zur Bearbeitung.

$ sudo nano /etc/yum.repos.d/nginx.repo

Fügen Sie den folgenden Code ein.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

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

Wir werden das Nginx-Mainline installieren, also aktivieren Sie das Paket dafür.

$ sudo dnf config-manager --enable nginx-mainline

Installieren Sie Nginx.

$ sudo dnf install nginx -y

Überprüfen Sie die Installation.

$ nginx -v
nginx version: nginx/1.25.3

Aktivieren und starten Sie den Nginx-Serverdienst.

$ sudo systemctl enable nginx --now

Überprüfen Sie den Dienststatus.

? nginx.service - nginx - Hochleistungs-Webserver
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled)
    Drop-In: /etc/systemd/system/nginx.service.d
             ??php-fpm.conf
     Active: active (running) since Fri 2024-01-26 06:46:17 UTC; 1s ago
       Docs: http://nginx.org/en/docs/
    Process: 19765 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 19767 (nginx)
      Tasks: 3 (limit: 12225)
     Memory: 3.1M
        CPU: 16ms
     CGroup: /system.slice/nginx.service
             ??19767 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??19768 "nginx: worker process"
             ??19769 "nginx: worker process"

Schritt 7 - SSL installieren

Wir müssen Certbot installieren, um das SSL-Zertifikat zu generieren. Wir werden dafür den Snapd-Paketinstaller verwenden. Da Rocky Linux ihn nicht mitliefert, installieren Sie den Snapd-Installer. Er benötigt das EPEL (Extra Packages for Enterprise Linux)-Repository, um zu funktionieren. Da wir es jedoch bereits in Schritt 3 installiert haben, können wir direkt weitermachen.

Installieren Sie das Snapd-Paket.

$ sudo dnf install -y snapd

Aktivieren und starten Sie den Snap-Dienst.

$ sudo systemctl enable snapd --now

Installieren Sie das Snap-Core-Paket und stellen Sie sicher, dass Ihre Version von Snapd auf dem neuesten Stand ist.

$ sudo snap install core && sudo snap refresh core

Erstellen Sie die erforderlichen Links, damit Snapd funktioniert.

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

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

Überprüfen Sie, ob Certbot ordnungsgemäß funktioniert.

$ certbot --version
certbot 2.8.0

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 Zeitplan für den Certbot-Erneuerungsdienst.

$ sudo systemctl list-timers

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

NÄCHST                        LINKS         LETZTE                        VERGANGEN    EINHEIT                         AKTIVIERT     
-------------------------------------------------------------------------------------------------------------------------------
Fr 2024-01-26 08:05:24 UTC 1h 1min links Fr 2024-01-26 06:35:00 UTC 29min ago dnf-makecache.timer          dnf-makecache.service
Fr 2024-01-26 14:20:42 UTC 7h links      Do 2024-01-25 14:20:42 UTC 16h ago   systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Fr 2024-01-26 22:37:00 UTC 15h links     -                           -         snap.certbot.renew.timer     snap.certbot.renew.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 über sein offizielles Repository installieren, da es die Version ist, die mit Magento 2.4.6 kompatibel ist, die die neueste verfügbare Version ist. Die Anforderungen-Seite erwähnt auch Elasticsearch 8.5, aber es funktioniert nicht richtig mit Magento.

Importieren Sie den GPG-Schlüssel von Elasticsearch.

$ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Erstellen Sie eine Datei namens elasticsearch.repo im Verzeichnis /etc/yum.repos.d/ und öffnen Sie sie zur Bearbeitung.

$ sudo nano /etc/yum.repos.d/elasticsearch.repo

Fügen Sie den folgenden Code ein.

[elasticsearch]
name=Elasticsearch-Repository für 7.x-Pakete
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md

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

Installieren Sie Elasticsearch.

$ sudo dnf install --enablerepo=elasticsearch elasticsearch

Elasticsearch benötigt viel Speicher. Sie müssen seine Nutzung je nach Servergröße 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. Ändern Sie die Werte entsprechend Ihrer Servergröße. Der erste Wert bezieht sich auf den anfänglichen Speicher und der zweite auf den maximal verfügbaren Speicher. Verwenden Sie für 1 GB und mehr das Format -Xms1g.

-Xms512m
-Xmx784m

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. Ändern Sie es gemäß Ihren Anforderungen und Server-Spezifikationen.

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.example.com",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "saBfw0F_Tam6ayGjXr6pEA",
  "version" : {
    "number" : "7.17.17",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "aba4da413a368e296dfc64fb20897334d0340aa1",
    "build_date" : "2024-01-18T10:05:03.821431920Z",
    "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. Rocky Linux wird mit Redis 6.0 ausgeliefert, daher werden wir das Remi-Repository für die Installation verwenden.

Wir haben das Remi-Repository bereits installiert, als wir PHP in Schritt 2 installiert haben. Listen Sie alle verfügbaren Redis-Module auf.

$ dnf module list redis
Name                               Stream           Profiles                   Summary                                                                  
redis                              7                common [d]                 Redis persistente Schlüssel-Wert-Datenbank                                    
Remis modulares Repository für Enterprise Linux 9 - x86_64
Name                               Stream           Profiles                   Summary                              
redis                              remi-5.0         common [d]                 Redis persistente Schlüssel-Wert-Datenbank 
redis                              remi-6.0         common [d]                 Redis persistente Schlüssel-Wert-Datenbank 
redis                              remi-6.2         common [d]                 Redis persistente Schlüssel-Wert-Datenbank 
redis                              remi-7.0         common [d]                 Redis persistente Schlüssel-Wert-Datenbank 
redis                              remi-7.2         common [d]                 Redis persistente Schlüssel-Wert-Datenbank 

Hinweis: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Aktivieren Sie Redis 7.0.

$ sudo dnf module enable -y redis:remi-7.0

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

$ sudo dnf install redis

Bestätigen Sie die Redis-Version.

$ redis-server -v
Redis server v=7.0.15 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=77c9855172eb54e9

Aktivieren und starten Sie den Redis-Dienst.

$ sudo systemctl enable redis --now

Lassen Sie uns die Dienstverbindung überprüfen, indem Sie den folgenden Befehl verwenden.

$ 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/html/magento -p

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

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

Bevor wir weitergehen, benötigen Sie die Authentifizierungsschlüssel, die für das Magento-Repository erforderlich sind. Besuchen Sie die Website https://commercemarketplace.adobe.com/, klicken Sie auf den Link Anmelden oben rechts, 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 Anmeldeinformationen 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://commercemarketplace.adobe.com/customer/accessKeys/. Sie können auch auf diese Seite zugreifen, indem Sie Ihr Profil besuchen ( https://commercemarketplace.adobe.com/customer/account/) und auf den Link Zugriffsschlüssel klicken.

Adobe Magento-Profilseite

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

Magento Zugriffsschlüssel

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

Erstellen Sie die Datei ~/.config/composer/auth.json und öffnen Sie sie zur Bearbeitung.

$ nano ~/.config/composer/auth.json

Fügen Sie den folgenden Code ein. Verwenden Sie den öffentlichen Schlüssel für den Benutzernamen und den privaten Schlüssel für das Passwort.

{
"http-basic": {
        "repo.magento.com": {
                   "username": "",
                   "password": ""
              }

}
}

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

Wechseln Sie in das Verzeichnis /var/www/html/magento.

$ cd /var/www/html/magento

Erstellen Sie das Magento-Projekt. Beachten Sie den Punkt am Ende des Befehls. Er bezieht sich auf das aktuelle Verzeichnis, in dem der Befehl ausgeführt wird.

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

Sie sollten eine ähnliche Ausgabe sehen.

Erstellen eines Projekts "magento/project-community-edition" in "./"
Installation von magento/project-community-edition (2.4.6-p3)
  - Herunterladen von magento/project-community-edition (2.4.6-p3)
  - Installation von magento/project-community-edition (2.4.6-p3): Archiv extrahieren
Projekt in /var/www/html/magento/ erstellt.
Laden von Composer-Repositories mit Paketinformationen
Info von https://repo.packagist.org: #StandWithUkraine
Aktualisieren der Abhängigkeiten
Lock-Datei-Operationen: 566 Installationen, 0 Updates, 0 Entfernungen
  - Sperren von 2tvenom/cborencode (1.0.2)
  - Sperren von adobe-commerce/adobe-ims-metapackage (2.2.0)
  - Sperren von allure-framework/allure-codeception (v2.3.0)
  - Sperren von allure-framework/allure-php-commons (v2.3.1)
  - Sperren von allure-framework/allure-phpunit (v2.1.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 er auf die Website zugreifen kann.

$ 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/html/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=127.0.0.1 \
--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 Prozess abgeschlossen ist, erhalten Sie eine ähnliche Ausgabe.

.......
[ERFOLG]: Magento-Installation abgeschlossen.
[ERFOLG]: Magento Admin-URI: /admin_l5pv1h
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 f37deed947b2ea951ad6f939b8ab752bc79587e3d77f40d06f20f0657c98e94d
* * * * * /usr/bin/php /var/www/html/magento/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento/var/log/magento.cron.log
#~ MAGENTO END f37deed947b2ea951ad6f939b8ab752bc79587e3d77f40d06f20f0657c98e94d

Schritt 12 - PHP-FPM konfigurieren

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

$ sudo nano /etc/php-fpm.d/www.conf

Wir müssen den Unix-Benutzer/die Gruppe der PHP-Prozesse auf nginx setzen. Suchen Sie die Zeilen user = apache und group = apache 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 = nobody, listen.group = nobody, listen.mode = 0660 in der Datei und ändern Sie sie wie folgt, nachdem Sie sie entkommentiert haben.

; 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 zuzulassen.
; Standardwerte: Benutzer und Gruppe sind als laufender Benutzer festgelegt
;                 Modus ist auf 0660 festgelegt
listen.owner = nginx 
listen.group = nginx 
listen.mode = 0660

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

Erhöhen Sie die Ausführungszeit auf 180 Sekunden.

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

Erhöhen Sie das Speicherlimit für PHP-FPM von 128 MB auf 512 MB. Sie können das Limit je nach Servergröße und Anforderungen erhöhen.

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

Magento setzt standardmäßig das Dateigrößenlimit für die Mediathek 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.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php.ini

Aktivieren Sie die Zlib-Komprimierung.

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

Erhöhen Sie die Konfiguration realpath_cache wie gezeigt.

$ sudo sed -i 's/;realpath_cache_size = 4096k/realpath_cache_size = 10M/g' /etc/php.ini
$ sudo sed -i 's/;realpath_cache_ttl = 120/realpath_cache_ttl = 7200/g' /etc/php.ini

Öffnen Sie die Datei /etc/php.d/10-opcache.ini zur Bearbeitung.

$ sudo nano /etc/php.d/10-opcache.ini

Suchen Sie die Zeile ;opcache.save_comments=1 und kommentieren Sie sie wie gezeigt aus.

opcache.save_comments=1

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

Starten Sie den PHP-FPM-Dienst neu.

$ sudo systemctl restart php-fpm

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

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

Schritt 13 - SELinux konfigurieren

Führen Sie die folgenden Befehle aus, um den Sicherheitskontext für das Magento-Verzeichnis zu ändern.

$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/app/etc(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/var(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/pub/media(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/pub/static(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/generated(/.*)?'
$ sudo restorecon -Rv '/var/www/html/magento/'

Wenden Sie die Richtlinie an, um Verbindungen zu externen Hosts zuzulassen.

$ sudo setsebool -P httpd_can_network_connect 1

Wenden Sie die Richtlinie an, um Nginx den Zugriff auf PostgreSQL zu gewähren.

$ sudo setsebool -P httpd_can_network_connect_db 1

Schritt 14 - 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-fpm/www.sock;
}

server {
  # Leiten Sie alle HTTP-Anfragen auf HTTPS um
  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/html/magento;
  include /var/www/html/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 von der URL im 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, sobald Sie fertig sind.

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

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

$ sudo nginx -t
nginx: die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist ok
nginx: 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 das CSS und JS nicht geladen werden, führen Sie die folgenden Befehle aus.

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

Schritt 15 - Zwei-Faktor-Authentifizierung deaktivieren

Bevor Sie 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, diese Funktion zuerst zu deaktivieren.

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

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

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

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

Löschen Sie auch den Cache.

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

Schritt 16 - Auf das Administrationsportal zugreifen

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

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

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

Magento Admin-Anmeldeseite

Geben Sie die Administratoranmeldeinformationen ein, die Sie während der Installation angegeben haben, 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 >> Konfiguration.

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-Option vor den Optionen Transport, Host und Port. Klicken Sie auf das Dropdown-Menü für den Transport und wählen Sie SMTP aus. Für unser Tutorial verwenden wir Amazon SES als Mailer.

Magento Amazon SES-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, erweitern Sie das allgemeine 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 Standard-Absender-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 auf ähnliche Weise den Bildschirm Kontakte, 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.

$ sudo php /var/www/html/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 17 - 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.

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

Aktualisieren Sie das Setup für die Module.

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

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

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

Löschen Sie auch den Cache.

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

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

Zwingen Sie die Bereitstellung des statischen Inhalts.

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

Setzen Sie die Dateiberechtigungen.

$ cd /var/www/html/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-Authentifizierungs-Methode verwenden. Sie können einen Hardware-Schlüssel verwenden, wenn Sie einen haben. Die Google-Authentifizierungsmethode funktioniert mit jeder TOTP-App, einschließlich Authy, 1Password, Bitwarden, Microsoft Authenticator usw. Klicken Sie auf die Schaltfläche Anwenden, 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 einer Magento-E-Commerce-Website auf einem Rocky Linux 9-Server mit einem Nginx-Server und Elasticsearch. Wenn Sie Fragen haben, posten Sie diese bitte in die Kommentare unten.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.