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.
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
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‘.
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.
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.
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
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.
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.
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‚.
Geben Sie die Details der MariaDB-Datenbank und den Benutzer ein, die wir oben erstellt haben, und klicken Sie auf ‚Weiter‚.
Ändern Sie für die ‚Web-Konfiguration‘ das gesamte HTTP-Protokoll auf HTTPS und stellen Sie sicher, dass Sie die ‚Magento Admin-Adresse‘ ändern.
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‚.
Geben Sie nun die Details Admin-Benutzer, E-Mail und Passwort ein. Klicken Sie dann auf die Schaltfläche Weiter.
Klicken Sie auf die Schaltfläche ‚Jetzt installieren‘, um Ihren Magento 2 Shop zu installieren.
Nun stellen Sie sicher, dass die gesamte Installation keinen Fehler aufweist.
Sobald die gesamte Installation abgeschlossen ist, erhalten Sie die Seite ‚Success‚ wie unten beschrieben.
Klicken Sie auf ‚Launch Magento Admin‚, um sich an Ihrem Magento Admin Dashboard anzumelden.
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.
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.
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.
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.