Magento 2 mit Nginx und Let’s Encrypt SSL auf Ubuntu 20.04 LTS installieren

Magento ist eine weit verbreitete Open-Source E-Commerce-Software und ein Content-Management-System für E-Commerce-Websites, das auf dem PHP Zend Framework basiert. Es verwendet MySQL oder MariaDB als Datenbank-Backend. Die Entwicklung von Magento wurde 2008 von Varien begonnen.

In diesem Tutorial zeigen wir Ihnen Schritt für Schritt, wie Sie Magento 2 auf der neuesten Version Ubuntu 20.04 installieren. Wir werden Magento unter dem LEMP-Stack, dem Nginx-Webserver, PHP-FPM 7.3 und MariaDB-Server installieren.

Anforderungen

Für dieses Tutorial werden wir Magento 2 auf dem Ubuntu 20.04-System mit 2 GB RAM, 50 GB freiem Festplattenspeicher und 2 CPUs installieren.

Was werden wir tun?

  • Nginx-Webserver installieren
  • Installieren und Konfigurieren von PHP-FPM 7.3
  • Installieren und Konfigurieren von MySQL Server
  • PHP-Composer installieren
  • Magento herunterladen und installieren
  • SSL Letsencrypt generieren
  • Einrichten von Nginx Virtualhost für Magento
  • Magento nach der Installation

Schritt 1 – Nginx Webserver installieren

Zuerst werden wir den Nginx-Webserver auf dem Ubuntu 20.04-System installieren.

Installieren Sie Nginx mit dem untenstehenden apt-Befehl.

sudo apt install nginx

Sobald die gesamte Installation abgeschlossen ist, starten Sie den Nginx-Dienst und fügen ihn dem Systemstart hinzu.

systemctl start nginx
systemctl enable nginx

Danach überprüfen Sie den Status des Nginx-Dienstes mit dem folgenden Befehl.

systemctl status nginx

Der Nginx-Webserver ist auf dem Ubuntu 20.04 Server installiert und läuft.

Nginx installieren

Als nächstes werden wir die HTTP- und HTTPS-Ports auf unserem Ubuntu-System öffnen.

Führen Sie den Befehl ufw unten aus.

for svc in ssh http https
do
ufw allow $svc
done

Infolgedessen wurden die SSH-, HTTP- und HTTPS-Dienste zur ufw-Firewall-Regel hinzugefügt.

Führen Sie nun die Aktivierung der ufw-Firewall mit dem folgenden Befehl aus.

ufw enable

Geben Sie ‚y‘ ein und drücken Sie die Eingabetaste, und schon haben Sie die ufw-Firewall aktiviert.

Schritt 2 – Installieren und Konfigurieren von PHP-FPm 7.3

Nach der Installation des Nginx-Webservers werden wir das PHP-FPM auf unserem Ubuntu 20.04 Server installieren.

Standardmäßig wird das Ubuntu 20.04 mit der neuesten Version von PHP/PHP-FPM 7.4 ausgeliefert. Vorerst funktioniert Magento jedoch nur mit PHP/PHP-FPM 7.3. Und in diesem Schritt werden wir das PHP-FPM 7.3 aus dem PPA-Repository installieren.

Bevor Sie weitermachen, installieren Sie das Paket ’software-properties-common‘ und fügen Sie das PPA-Repository für PHP 7.3 mit dem folgenden Befehl hinzu.

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Das ‚add-apt-Repository‘ wird automatisch alle Repositories auf dem System aktualisieren.

Installieren Sie nun die PHP-FPM 7.3-Pakete aus dem PPA-Repository mit dem folgenden apt-Befehl.

sudo apt install php7.3-fpm php7.3-common php7.3-curl php7.3-cli php7.3-mysql php7.3-gd php7.3-xml php7.3-json php7.3-intl php-pear php7.3-dev php7.3-common php7.3-mbstring php7.3-zip php7.3-soap php7.3-bcmath php7.3-opcache -y

Damit ist die Installation von PHP-FPM 7.3 abgeschlossen.

Gehen Sie danach in das Verzeichnis ‚/etc/php/7.3‘ und bearbeiten Sie die Konfiguration ‚php.ini‘ für PHP-FPM.

cd /etc/php/7.3/
vim fpm/php.ini

Kommentieren Sie die Konfiguration auf und ändern Sie sie wie unten beschrieben.

date.timezone = Asia/Singapore
memory_limit = 1G
max_execution_time = 1800
zlib.output_compression = On
cgi.fix_pathinfo = 0
opcache.enable=1
opcache.save_comments = 1

Speichern und schließen.

Als nächstes starten Sie den PHP-FPM-Dienst und fügen ihn dem Systemstart hinzu.

systemctl start php7.3-fpm
systemctl enable php7.3-fpm

PHP-FPM 7.3 installieren und konfigurieren

Der PHP-FPM-Dienst ist einsatzbereit, überprüfen Sie ihn mit dem folgenden Befehl.

ss -xa | grep php
systemctl status php7.3-fpm

Infolgedessen ist das PHP-FPM auf dem Ubuntu-20.04-Server einsatzbereit und läuft unter der Sock-Datei ‚/run/php/php7.3-fpm.sock‘.

PHP-FPM-Dienst prüfen

Schritt 3 – Installieren und Konfigurieren von MariaDB Server

In diesem Schritt werden wir den MariaDB-Datenbankserver installieren, das Standard-Root-Passwort für MariaDB einrichten und eine neue Datenbank und einen neuen Benutzer für Magento erstellen.

Installieren Sie MariaDB Server-Pakete auf Ubuntu 20.04 mit dem folgenden apt-Befehl.

sudo apt install mariadb-server

Sobald die gesamte Installation abgeschlossen ist, starten Sie den MariaDB-Dienst und fügen ihn dem Systemstart hinzu.

systemctl start mariadb
systemctl enable mariadb

Der MariaDB-Dienst ist eingerichtet und läuft.

Als nächstes richten wir das MariaDB-Root-Passwort mit dem Dienstprogramm ‚mysql_secure_instalaltion‘ ein.

Führen Sie den unten stehenden Befehl ‚mysql_secure_instalaltion‘ aus.

mysql_secure_installation

Geben Sie Ihr sicheres Passwort für den MariaDB-Root-Benutzer ein und geben Sie ‚Y‘ für die gesamte Konfiguration ein.

Set a root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Als Ergebnis wurde das MariaDB-Root-Passwort konfiguriert.

MariaDB-Root-Passwort einrichten

Als nächstes werden wir eine neue Datenbank und einen neuen Benutzer für die Magento-Installation erstellen.

Melden Sie sich in der MariaDB/MySQL-Shell mit dem folgenden mysql-Befehl an.

mysql -u root -p

Erstellen Sie jetzt eine neue Datenbank für unsere Magento-Installation. Erstellen Sie die Datenbank ‚magentodb‘ und den Benutzer ‚magentouser‘ mit dem Passwort ‚magentodbpass‘.

Führen Sie die MySQL-Abfragen unten aus.

create database magentodb;
create user [email protected]'localhost' identified by 'magentopassdb';
grant all privileges on magentodb.* to [email protected]'localhost';
flush privileges;

Geben Sie jetzt ‚exit‘ ein, um sich von der MySQL-Shell abzumelden.

Datenbank für Magento erstellen

Damit ist die Installation der neuen Datenbank und des neuen Benutzers für Magento abgeschlossen.

Schritt 4 – Composer installieren

Composer ist ein Abhängigkeitsmanager für PHP. Es handelt sich um einen Paketmanager auf Anwendungsebene für PHP, mit dem Sie zusätzliche PHP-Abhängigkeiten und Bibliotheken für Ihr PHP-Projekt herunterladen können.

In diesem Schritt werden wir den PHP Composer aus dem Ubuntu-Repository installieren.

Installieren Sie den Composer mit dem unten stehenden apt-Befehl.

sudo apt install composer -y

Sobald die Installation abgeschlossen ist, überprüfen Sie die untenstehende Komponistenversion.

composer --version

Unten sehen Sie die Antwort, die Sie erhalten werden.

Composer 1.10.1 2020-03-13 20:34:27

Wie zu sehen ist, wurde der Composer 1.10 auf dem ubuntu 20.04 Server installiert.

Schritt 5 – Magento 2 herunterladen und installieren

In diesem Schritt werden wir Magento 2 und alle PHP-Pakete, die mit dem Composer benötigt werden, herunterladen und installieren.

Gehen Sie zunächst in das Verzeichnis ‚/var/www/‘ und laden Sie den Quellcode von Magento 2.3.5 CE (Community Edition) mit dem wget Befehl wie unten beschrieben herunter.

cd /var/www/
wget -q https://github.com/magento/magento2/archive/2.3.5.tar.gz

Wenn alles abgeschlossen ist, extrahieren Sie den Magento-Quellcode und benennen Sie das extrahierte Verzeichnis in ‚magento2‘-Verzeichnis um.

tar -xf 2.3.5.tar.gz
mv magento2-*/ magento2/

Gehen Sie dann zum Magento-Installationsverzeichnis ‚/var/www/magento2‘ und installieren Sie alle PHP-Paketabhängigkeiten für Magento mit dem Composer-Befehl wie unten beschrieben.

cd /var/www/magento2/
composer install

Magento 2 herunterladen und installieren

Wenn die Installation abgeschlossen ist, legen Sie den Besitzer des Magento 2 Installationsverzeichnisses auf den Benutzer ‚www-data‘ fest.

chown -R www-data:www-data /var/www/magento2

Als Ergebnis ist die Installation von Magento 2 und allen Paketabhängigkeiten abgeschlossen.

Schritt 6 – SSL Letsencrypt erzeugen

Für dieses Tutorial werden wir die Magento 2 Installation mit SSL Letsencrypt sichern. Und in diesem Schritt werden wir SSL Letsencrypt mit dem Befehl certbot erzeugen. Stellen Sie außerdem sicher, dass Ihr Domainname in die Server-IP-Adresse aufgelöst wird.

Installieren Sie das certbot-Werkzeug mit dem untenstehenden apt-Befehl.

sudo apt install certbot

Sobald die Installation abgeschlossen ist, beenden Sie den Nginx-Dienst.

systemctl stop nginx
certbot certonly --standalone --agree-tos --no-eff-email --email [email protected] -d magento.hakase-labs.io

Sobald alles abgeschlossen ist, erhalten Sie Ihre SSL-Zertifikate im Verzeichnis ‚/etc/letsencrypt/live/magento.your-domain.com‘.

Als Ergebnis wurde die Installation von SSL Letsencrypt für Magento 2 generiert.

Schritt 7 – Einrichten von Nginx Virtualhost für Magento 2

In diesem Schritt werden wir eine neue Nginx Virtualhost-Konfiguration für Magento 2 hinzufügen.

Gehen Sie in das Verzeichnis ‚/etc/nginx/sites-available/‘ und erstellen Sie eine neue Konfiguration ‚magento‘ mit dem Editor vim.

cd /etc/nginx/sites-available/
vim magento

Fügen Sie die folgende Konfiguration in das System ein.

upstream fastcgi_backend {
        server  unix:/run/php/php7.3-fpm.sock;
}
server {
listen 80;
listen [::]:80;
server_name magento.hakase-labs.io;
return 301 https://$server_name$request_uri;
}

server {

listen 443 ssl http2;
server_name magento.hakase-labs.io;

ssl_certificate /etc/letsencrypt/live/magento.hakase-labs.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/magento.hakase-labs.io/privkey.pem;

set $MAGE_ROOT /var/www/magento2;
set $MAGE_MODE developer;
include /var/www/magento2/nginx.conf.sample;
}

Speichern und schließen.

Aktivieren Sie als nächstes den Magento Nginx Virtualhost und testen Sie die nginx-Konfiguration, und stellen Sie sicher, dass kein Fehler vorliegt.

ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/
nginx -t

Starten Sie nun den Nginx-Dienst mit dem folgenden Befehl neu.

systemctl restart nginx

Infolgedessen wurde die Konfiguration des virtuellen Nginx-Hosts für Magento 2 erstellt und aktiviert.

Einrichten von Nginx virtualhost für Magento

Schritt 8 – Magento nach der Installation

Öffnen Sie Ihren Webbrowser und geben Sie den Domainnamen Ihrer Magento-Installation in die Adressleiste ein.

https://magento.hakase-labs.io/

Nun werden Sie auf eine sichere HTTPS-Verbindung umgeschaltet und erhalten die Magento-Begrüßungsseite und die Nutzungsbedingungen.

Magento 2 installieren

Klicken Sie auf die Schaltfläche ‚Agree and Setup Magento‚, um fortzufahren.

Vergewissern Sie sich auf der Seite ‚Bereitschaftsprüfung‘, dass alle Anforderungen grün sind, und klicken Sie auf die Schaltfläche ‚Weiter‚.

Bereitschaft der Systemanforderungen

Geben Sie die Details der MariaDB-Datenbank und den Benutzer ein, die wir oben erstellt haben, und klicken Sie auf ‚Weiter‚.

Datenbank einrichten

Ändern Sie für die ‚Web-Konfiguration‘ das gesamte HTTP-Protokoll auf HTTPS und stellen Sie sicher, dass Sie die ‚Magento Admin-Adresse‘ ändern.

Setup HTTPS Magento

Klicken Sie nun auf ‚Erweiterte Optionen‘ und markieren Sie alle HTTPS-Optionen, entfernen Sie dann die Markierung der Option ‚Apache Rewrites‘ und klicken Sie erneut auf die Schaltfläche ‚Weiter‚.

Als nächstes belassen Sie die Magento ‚Customize Your Store‘-Konfiguration als Standard und klicken Sie auf die Schaltfläche ‚Next‚.

Magento Stor Cuztomisierung

Geben Sie nun die Details Admin-Benutzer, E-Mail und Passwort ein. Klicken Sie dann auf die Schaltfläche Weiter.

Magento Setup Benutzer

Klicken Sie auf die Schaltfläche ‚Jetzt installieren‘, um Ihren Magento 2 Shop zu installieren.

Install Magento

Nun stellen Sie sicher, dass die gesamte Installation keinen Fehler aufweist.

Install Magento

Sobald die gesamte Installation abgeschlossen ist, erhalten Sie die Seite ‚Success‚ wie unten beschrieben.

Magento-Installation ist abgeschlossen

Klicken Sie auf ‚Launch Magento Admin‚, um sich an Ihrem Magento Admin Dashboard anzumelden.

Magento-Anmeldung Admin

Geben Sie nun Ihren Magento Admin-Benutzer und Ihr Passwort ein, klicken Sie dann auf ‚Anmelden‘ und Sie erhalten das Magento Admin-Dashboard wie unten beschrieben.

Magento-Administrator Dashoard

Für die Standard-Indexseite von Magento öffnen Sie eine neue Registerkarte und geben Sie Ihren Domainnamen in die Adressleiste ein.

Unten sehen Sie die Standard-Indexseite von Magento.

Magento-Index

Damit ist die Installation von Magento 2 abgeschlossen.

Als nächstes gehen Sie zurück zu Ihrer Server-Shell und wir werden den Magento Cron einrichten und die Schreibberechtigung für einige Magento Installationsverzeichnisse entfernen.

Um das Magento-Cron einzurichten, führen Sie den folgenden Befehl aus.

cd /var/www/magento2
sudo -u www-data php bin/magento cron:install --force

Das Magento Cron wird unter dem Benutzer ‚www-data‘ laufen, überprüfen Sie dies mit dem folgenden Befehl.

crontab -u www-data -l

Infolgedessen wurde der Magento Cron dem System hinzugefügt.

Magento Cron einrichten und Schreibberechtigung entfernen

Als nächstes müssen wir die Schreibberechtigung für das Verzeichnis ‚/var/www/magento2/app/etc‘ entfernen.

Führen Sie den chmod-Befehl unten aus.

chmod u-w /var/www/magento2/app/etc

Und schließlich wurde die Installation von Magento 2 mit Nginx-Webserver, MariaDB-Server, PHP-FPM 7.3 auf dem neuesten Ubuntu 20.04 erfolgreich abgeschlossen.

Referenz

Das könnte Dich auch interessieren …