So installierst du die Magento eCommerce Plattform auf Ubuntu 24.04

Magento ist eine bekannte Open-Source eCommerce-Plattform, die in PHP geschrieben wurde. Magento ist eine robuste und leistungsstarke eCommerce-Lösung, die von mehr als 240.000 Händlern weltweit genutzt wird. Magento ist eine vielseitige und skalierbare Plattform für den Aufbau eines eCommerce-Shops. Sie eignet sich für den Aufbau kleiner, mittlerer und großer Onlineshops. Mit Magento kannst du deine Onlineshops auf deinem Server erstellen und hosten.

In dieser Anleitung führen wir dich durch die Installation von Magento eCommerce auf dem Ubuntu 22.04 Server.

Voraussetzungen

Um mit dieser Anleitung zu beginnen, solltest du Folgendes vorbereiten:

  • Ein Ubuntu 24.04 mit mindestens 4 GB Arbeitsspeicher.
  • Einen Nicht-Root-Benutzer mit sudo-Rechten.
  • Einen Domainnamen, der auf eine Server-IP-Adresse zeigt.

Installation der Abhängigkeiten

Bevor du mit der Installation beginnst, musst du sicherstellen, dass die Magento-Abhängigkeiten installiert sind. In diesem Abschnitt wirst du Softwarepakete für Magento installieren, darunter OpenSearch, Nginx, MySQL-Server, PHP-FPM, Redis, Composer und Git.

Als erstes installierst du die Pakete„apt-transport-https“ und„gnupg“ wie folgt:

sudo apt install apt-transport-https gnupg -y

Führe den folgenden Befehl aus, um den OpenSearch GPG-Schlüssel und das Repository für Debian/Ubuntu-basierte Distributionen hinzuzufügen.

curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | \
sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | \
sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

Repo hinzufügen

Aktualisiere nun deinen Ubuntu-Paketindex und installiere die Abhängigkeiten mit dem folgenden apt-Befehl. Damit installierst du die Pakete OpenSearch, Nginx, MySQL, PHP-FPM, Redis, Composer und Git.

sudo apt update && sudo apt install opensearch nginx mysql-server composer git redis-server php-fpm php-bcmath php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-redis php-ldap php-zip php-curl php-imagick

Gib Y ein, um die Installation zu bestätigen.

deps installieren

Nach der Installation überprüfe alle Dienste, um sicherzustellen, dass sie laufen.

Überprüfe den Nginx-Dienst mit folgendem Befehl. Du wirst sehen, dass der Nginx-Dienst läuft und aktiviert ist.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

nginx prüfen

Überprüfe nun den MySQL-Server mit dem folgenden Befehl. In der unten stehenden Ausgabe siehst du, dass der MySQL-Server läuft.

sudo systemctl is-enabled mysql
sudo systemctl status mysql

mysql prüfen

Überprüfe den PHP-FPM-Dienst mit dem folgenden Befehl. Der PHP-FPM sollte automatisch laufen und aktiviert sein.

sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpm

php-fpm prüfen

Überprüfe den Redis-Server mit folgendem Befehl. Du solltest sehen, dass Redis läuft und aktiviert ist.

sudo systemctl is-enabled redis-server
sudo systemctl status redis-server

Redis prüfen

Überprüfe abschließend die Composer-Version mit folgendem Befehl. Du solltest Composer v2.7 auf deinem System installiert haben.

sudo -u www-data composer -v

Komponist prüfen

Einrichten von OpenSearch

Nachdem du die Abhängigkeiten installiert hast, musst du OpenSearch konfigurieren. Magento verwendet OpenSearch für erweiterte Suchpri=dukte und die Indizierung. In diesem Abschnitt erhöhst du den standardmäßigen maximalen Heap-Speicher und deaktivierst das Sicherheits-Plugin von OpenSearch (nur für eine Entwicklungsumgebung).

Öffne die Datei„/etc/opensearch/jvm.options“ mit dem folgenden nano-Editor.

sudo nano /etc/opensearch/jvm.options

Ändere die Standard-Speicherzuweisung für OpenSearch wie gewünscht. In diesem Fall werden wir 2 GB für OpenSearch verwenden.

-Xms2g
-Xmx2g

Speichere die Datei und beende sie.

Öffne nun die OpenSearch-Standardkonfiguration„/etc/opensearch/opensearch.yml“ mit dem nano-Editor.

sudo nano /etc/opensearch/opensearch.yml

Füge die folgende Konfiguration hinzu, um das Sicherheits-Plugin in OpenSearch zu deaktivieren. Zu Demonstrationszwecken kannst du dies deaktivieren, aber für die Produktion musst du das Sicherheits-Plugin aktivieren und TLS-Zertifikate für deine OpenSearch-Installation einrichten.

plugins.security.disabled: true

Wenn du fertig bist, speichere und beende die Datei.

Als Nächstes führst du den unten stehenden Befehl aus, um den systemd manager neu zu laden. Nachdem du OpenSearch installiert hast, musst du den systemd manager neu laden.

sudo systemctl daemon-reload

Starte, aktiviere und überprüfe nun den Opensearch-Dienst mit dem folgenden Befehl:

sudo systemctl enable --now opensearch
sudo systemctl status opensearch

In der folgenden Ausgabe kannst du sehen, dass OpenSearch läuft und aktiviert ist.

Prüfen Sie den Öffnungsdienstleister

Überprüfe zum Schluss deine OpenSearch-Installation mit dem folgenden„curl„-Befehl. Dies zeigt dir grundlegende Informationen über deine OpenSearch-Installation an.

curl -X GET http://localhost:9200

Unten siehst du, dass OpenSearch 2.14 auf dem Ubuntu-Server läuft.

test opensearch

PHP-FPM einrichten

In diesem Abschnitt wirst du die Standardkonfiguration von PHP-FPM ändern und die Opcache-Erweiterung in der Datei „php.ini“ aktivieren. Du wirst das standardmäßige memory_limit erhöhen und die Option date.timezone anpassen.

Öffne die PHP-FPM-Konfiguration„/etc/php/8.3/fpm/php.ini“ mit dem folgenden nano-Editor.

sudo nano /etc/php/8.3/fpm/php.ini

Ändere die Standardkonfiguration wie folgt. Passe außerdem die Einstellungen date.timezone und memory_limit an deine aktuelle Serverumgebung an.

date.timezone = Europe/Amsterdam

Wenn du fertig bist, speichere die Datei und beende sie.

Führe nun den folgenden Befehl aus, um den PHP-FPM-Dienst neu zu starten und deine Änderungen zu übernehmen.

sudo systemctl restart php8.3-fpm

Einrichten des MySQL-Servers

Nachdem du nun PHP-FPM konfiguriert hast, richtest du im nächsten Abschnitt die MySQL-Serverinstallation ein und legst eine neue Datenbank und einen neuen Benutzer für Magento an.

Sichere deine MySQL-Server-Installation, indem du den unten stehenden Befehl ausführst.

sudo mysql_secure_installation

Im Folgenden wirst du nach den MySQL-Serverkonfigurationen gefragt:

  • Gib y ein, um die Komponente VALIDATE PASSWORD zu aktivieren.
  • Gib 1 ein, um die Passwortstärke auf MEDIUM einzustellen.
  • Gib y ein, wenn du aufgefordert wirst, dein MySQL-Root-Passwort zu ändern.
  • Gib y ein, um den anonymen Standardbenutzer zu entfernen.
  • Gib y ein, um die Fernanmeldung für den MySQL-Root-Benutzer zu verbieten.
  • Gib erneut y ein, um den Standard-Datenbanktest von MySQL zu entfernen.
  • Schließlich gibst du y ein, um die MySQL-Tabellen neu zu laden und die Änderungen zu übernehmen.

Nachdem du MySQL konfiguriert hast, musst du eine neue Datenbank und einen neuen Benutzer für Magento erstellen.

Melde dich mit folgendem Befehl am MySQL-Server an. Gib dein MySQL-Root-Passwort ein, wenn du dazu aufgefordert wirst.

sudo mysql -u root -p

Führe nun die folgenden Abfragen aus, um eine neue Datenbank und einen neuen Benutzer für Magento zu erstellen. In diesem Beispiel wirst du einen neuen Benutzer und eine neue Datenbank„magento“ mit dem Passwort„M4gentoPassw0rd__“ anlegen.

Achte darauf, dass du die folgenden Angaben mit deinen Informationen abänderst. Außerdem sollte das MySQL-Passwort für Magento ein Sonderzeichen, eine Zahl und Großbuchstaben enthalten.

CREATE DATABASE magento;
CREATE USER 'magento'@'localhost' IDENTIFIED BY 'M4gentoPassw0rd__';
GRANT ALL PRIVILEGES ON magento.* to 'magento'@'localhost';
FLUSH PRIVILEGES;

Datenbank und Benutzer anlegen

Als Nächstes führst du die folgende Abfrage aus, um die Berechtigungen des Benutzers„magento“ zu überprüfen. Vergewissere dich, dass dein Benutzer auf die Datenbank„magento“ zugreifen kann.

SHOW GRANTS FOR magento@localhost;

Zum Schluss gibst du quit ein, um den MySQL-Server zu verlassen.

mysql user priv anzeigen

Installation von Magento über die Kommandozeile

In diesem Abschnitt lädst du den Quellcode von Magento herunter und installierst die PHP-Abhängigkeiten mit Composer. Anschließend installierst du Magento über die Kommandozeile. Zum Schluss erstellst du eine crontab für Magento.

Gehe in das Verzeichnis„/var/www“ und lade den Magento-Quellcode mit dem folgenden wget-Befehl herunter. Schau auf der Magento GitHub Seite nach und hol dir die URL der neuesten Magento Version.

cd /var/www
wget https://github.com/magento/magento2/archive/refs/tags/2.4.7.tar.gz

Nachdem der Download abgeschlossen ist, extrahiere den Magento-Quellcode und benenne das extrahierte Verzeichnis in „magento2“ um. Damit sollte sich deine Magento-Installation im Verzeichnis „/var/www/magento2“ befinden.

tar -xf 2.4.7.tar.gz
mv magento2-* magento2

Führe nun den folgenden Befehl aus, um zusätzliche Verzeichnisse für Composer zu erstellen und ändere den Eigentümer des Verzeichnisses„/var/www“ auf den Benutzer„www-data„.

sudo mkdir -p /var/www/{.config,.cache}
sudo chown -R www-data:www-data /var/www

Führe dann den folgenden Befehl aus, um dem Benutzer„www-data“ Lese-, Schreib- und Ausführungsrechte für das Verzeichnis„/var/www/magento2“ zu erteilen.

sudo chmod u+rwx /var/www/magento2

Als Nächstes gehst du in das Verzeichnis„/var/www/magento2“ und installierst die PHP-Abhängigkeiten für Magento mit dem unten stehenden Composer-Befehl. So stellst du sicher, dass deine Abhängigkeiten für Magento installiert sind

cd /var/www/magento2
sudo -u www-data composer install

Nach der Installation der Abhängigkeiten führst du den folgenden Befehl aus, um dem Benutzer„www-data“ die Berechtigung„rwx“ für die beiden Verzeichnisse„generated“ und„var“ im Magento-Web-Root zu geben.

sudo chown -R www-data:www-data /var/www/magento2/var /var/www/magento2/generated
sudo chmod u+rwx /var/www/magento2/var /var/www/magento2/generated
sudo chmod g+rw /var/www/magento2/var /var/www/magento2/generated

Führe nun den folgenden Befehl aus, um die Magento-Installation zu starten. Achte darauf, dass du die URL-Details, die MySQL-Datenbank, den Administrator-Benutzer und das Passwort für deine Magento-Installation änderst.

sudo -u www-data bin/magento setup:install \
--base-url=http://hwdomain.io \
--db-host=localhost \
--db-name=magento2 \
--db-user=magento \
--db-password=M4gentoPassw0rd__ \
--admin-firstname=bob \
--admin-lastname=admin \
--admin-email=admin@hwdomain.io \
--admin-user=bob \
--admin-password=BobAdm1nP4ssword \
--currency=USD \
--timezone=Europe/Amsterdam \
--use-rewrites=1 \
--session-save=redis \
--search-engine=opensearch \
--opensearch-host=127.0.0.1 \
--opensearch-port=9200 \
--opensearch-enable-auth=0 \
--opensearch-index-prefix=magento22 \
--opensearch-timeout=30

Unten kannst du sehen, wie die Magento-Installation beginnt:

magento installieren

Sobald sie abgeschlossen ist, siehst du die Ausgabe„Magento-Installation abgeschlossen“ und den Admin-URL-Pfad für deine Magento-Installation. Achte darauf, dass du die generierte URL für die Magento-Admin-Seite speicherst.

Installation abgeschlossen

Um die Magento-Installation abzuschließen, führe den folgenden Befehl aus, um die crontab für Magento zu erstellen und die Indexierung für Magento zu starten.

sudo -u www-data bin/magento cron:install
sudo -u www-data bin/magento cron:run --group index

Du kannst die Liste crontab für den Benutzer „www-data“ mit folgendem Befehl überprüfen:

crontab -u www-data -l

Unten siehst du, dass die Crontab für Magento erstellt wurde.

Cron einrichten

Zum Schluss führst du den folgenden Befehl aus, um den Cache deiner Magento-Installation zu löschen. Damit hast du die Magento-Installation abgeschlossen. Als Nächstes musst du den Nginx-Webserver einrichten.

sudo -u www-data bin/magento cache:clean

Nginx Server-Block einrichten

An diesem Punkt ist deine Magento-Installation abgeschlossen, jetzt musst du einen neuen Nginx-Server einrichten, auf dem deine Magento-Installation läuft. Vergewissere dich, dass du einen Domainnamen hast, der auf deine Server-IP-Adresse zeigt.

Erstelle mit dem nano-Editor eine neue Nginx-Serverblock-Konfiguration„/etc/nginx/sites-available/magento.conf„.

sudo nano /etc/nginx/sites-available/magento.conf

Füge die folgende Konfiguration ein und achte darauf, dass du die Option server_name durch deinen Magento-Domainnamen ersetzt.

upstream fastcgi_backend {
 server unix:/run/php/php8.3-fpm.sock;
}
server {
listen 80;
listen [::]:80;
server_name hwdomain.io;
set $MAGE_ROOT /var/www/magento2/;
include /var/www/magento2/nginx.conf.sample;
client_max_body_size 2M;

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

Wenn du fertig bist, speichere und beende die Datei.

Führe nun den folgenden Befehl aus, um den Server-Block„magento.conf“ zu aktivieren und deine Nginx-Syntax zu überprüfen. Vergewissere dich, dass du die Ausgabe„syntax is ok – test is successful“ erhältst.

sudo ln -s /etc/nginx/sites-available/magento.conf /etc/nginx/sites-enabled/
sudo nginx -t

Starte abschließend den Nginx-Dienst mit folgendem Befehl neu, um deine neue Serverblock-Konfiguration anzuwenden. Nachdem der Befehl ausgeführt wurde, ist deine Magento-Installation verfügbar.

sudo systemctl restart nginx

nginx-Einrichtung

Magento mit HTTPS absichern

Wenn du Magento in der öffentlichen Domain betreibst, musst du es mit HTTPS absichern. In diesem Abschnitt wirst du deine Magento-Installation mit HTTPS über Certbot und Letsencrypt absichern.

Installiere das Certbot und Certbot Nginx Plugin mit dem folgenden Befehl. Gib Y ein, um die Installation zu bestätigen.

sudo apt install certbot python3-certbot-nginx

Nachdem die Installation abgeschlossen ist, führe den folgenden Befehl aus, um SSL/TLS-Zertifikate von Letsencrypt zu generieren. Achte darauf, dass du die E-Mail-Adresse und den Domänennamen unten mit deinen Daten änderst.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email admin@hwdomain.io -d hwdomain.io

Wenn der Vorgang abgeschlossen ist, sollte deine Magento-Installation automatisch mit HTTPS gesichert sein. Deine SSL/TLS-Zertifikate befinden sich im Verzeichnis„/etc/letsencrypt/live/domain.com„.

Zugriff auf Magento

Öffne deinen Webbrowser und rufe deine Magento-Domain auf, z. B. https://hwdomain.io. Wenn deine Installation erfolgreich war, siehst du die Standard-Indexseite von Magento wie die folgende.

magneto home

Rufe nun die Magento-Administrations-URL auf, die https://hwdomain.io/admin_ze87mmj lautet. Sieh dir den Installationsprozess an.

Gib deinen Admin-Benutzer und dein Passwort für Magento ein und drücke auf Login.

Anmeldung magento

Wenn die Installation erfolgreich war, solltest du das Magento-Administrations-Dashboard wie das folgende sehen:

magento dashboard

Fazit

Herzlichen Glückwunsch! Du hast die Installation von Magento eCommerce auf dem Ubuntu 24.04 Server abgeschlossen. Du hast Magento mit dem LEMP-Stack (Linux, Nginx, MySQL und PHP-FPM), OpenSearch und Redis installiert. Außerdem hast du Magento mit HTTPS über Certbot und Letsencrypt abgesichert.

Das könnte dich auch interessieren …