Wie man Magento 2 mit Nginx und Letsencrypt auf Ubuntu 18.04 installiert

Magento ist eine weit verbreitete Open Source E-Commerce-Software und Content-Management-System für E-Commerce-Websites auf Basis des PHP Zend Frameworks. Es verwendet MySQL oder MariaDB als Datenbank-Backend. Die Magento-Entwicklung wurde 2008 von Varien gestartet.

In diesem Tutorial zeige ich Ihnen, wie Sie Magento 2 mit Nginx, PHP 7.1 FPM und MySQL als Datenbank installieren. Ich werde ubuntu 18.04 (Bionic Beaver) als Serverbetriebssystem verwenden. Wenn Sie noch kein minimales Server-Setup haben, lesen Sie bitte dieses Tutorial, um ein korrektes Basis-Setup zu erhalten.

Voraussetzungen

  • Ubuntu 18.04.
  • 2 GB RAM-Speicher oder mehr
  • Root-Rechte

Was wir tun werden

  1. Nginx auf Ubuntu 18.04 installieren
  2. Installation und Konfiguration von PHP-FPM 7.1
  3. MySQL Server installieren und konfigurieren
  4. Installation und Konfiguration von Magento 2
    1. PHP Composer installieren
    2. Magento 2 herunterladen
    3. Magento-Komponenten installieren
    4. SSL Letsencrypt generieren
    5. Nginx Virtual Host für Magento konfigurieren
    6. Magento nach der Installation
  5. Prüfung

Schritt 1 – Nginx auf Ubuntu 18.04 LTS installieren

In diesem Tutorial werden wir den Nginx-Webserver für unsere Magento-Installation verwenden.

Melden Sie sich am Server an, aktualisieren Sie das Repository und aktualisieren Sie alle Pakete.

sudo apt update
sudo apt upgrade

Installieren Sie nun den Nginx-Webserver mit dem Befehl apt unten.

sudo apt install nginx -y

Nachdem die Installation abgeschlossen ist, starten Sie den Nginx-Dienst und aktivieren Sie ihn, damit er jedes Mal beim Systemstart gestartet werden kann.

systemctl start nginx
systemctl enable nginx

Der Nginx-Webserver wurde installiert, überprüfen Sie ihn mit dem Befehl netstat und stellen Sie sicher, dass sich der HTTP-Port 80 im Zustand’LISTEN‘ befindet. Eine andere Möglichkeit ist die Verwendung des Curl-Befehls wie unten beschrieben.

netstat -plntu
curl -I localhost

Nginx-Webserver installieren

Schritt 2 – Installation und Konfiguration von PHP-FPM 7.1

Nach der Installation des Nginx-Webservers werden wir PHP 7.1 auf dem Server installieren, da Magento PHP 7.2 noch nicht unterstützt. Wir werden PHP-FPM mit allen von Magento 2 benötigten Erweiterungen installieren.

Liste der PHP-Erweiterungen, die für die Installation von Magento 2 benötigt werden:

  • bc-math
  • ctype
  • sich[Akk] kräuseln
  • Dom
  • gd, ImageMagick 6.3.7 (oder höher) oder beide
  • intl
  • mbstring
  • mcrypt
  • Hash
  • openssl
  • PDO/MySQL
  • SimpleXML
  • Seife
  • spl
  • libxml
  • xsl
  • Reißverschluss
  • json
  • iconv

Für dieses Handbuch werden wir PHP-FPM-Pakete aus dem PPA-Repository installieren. Wir werden das Repository’ondrej/php‘ verwenden.

Installieren Sie das Paket „software-properties-common“ und fügen Sie das Repository „ondrej/php“ mit den folgenden Befehlen hinzu.

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

Install PHP 7.1

Installieren Sie nun PHP-FPM 7.1 mit allen benötigten Erweiterungen.

sudo apt install php7.1-fpm php7.1-mcrypt php7.1-curl php7.1-cli php7.1-mysql php7.1-gd php7.1-xsl php7.1-json php7.1-intl php-pear php7.1-dev php7.1-common php7.1-mbstring php7.1-zip php7.1-soap php7.1-bcmath -y

Nachdem die Installation abgeschlossen ist, überprüfen Sie die PHP-Version und die installierten Erweiterungen mit PHP-Befehlen.

php -v
php -me

Überprüfen Sie die PHP-Installation

Als nächstes konfigurieren wir die Datei php.ini für das PHP-FPM und PHP-CLI.

Bearbeiten Sie die php.ini-Dateien mit vim.

vim /etc/php/7.1/fpm/php.ini
vim /etc/php/7.1/cli/php.ini

Ändern Sie den Wert dieser Zeilen wie unten beschrieben.

memory_limit = 512M
max_execution_time = 180
zlib.output_compression = On

Speichern und beenden.

Starten Sie nun den PHP-fpm-Dienst neu und lassen Sie ihn jedes Mal beim Systemstart starten.

systemctl restart php7.1-fpm
systemctl enable php7.1-fpm

Die Installation und Konfiguration von PHP-FPM 7.1 ist abgeschlossen, überprüfen Sie den Dienst mit dem Befehl netstat.

netstat -pl | grep php

Und du bekommst die PHP-fpm Socken-Datei wie unten beschrieben.

PHP-FPM Socket überprüfen

Schritt 3 – MySQL Server installieren und konfigurieren

Die Magento-Software benötigt MySQL 5.6.x, und die Magento-Version 2.1.2 oder höher benötigt MySQL 5.7.x. In diesem Tutorial werden wir den neuesten MySQL-Server 5.8 auf dem Ubuntu 18.04-System installieren.

Installieren Sie MySQL 5.8 mit dem Befehl apt unten.

sudo apt install mysql-server mysql-client -y

Nachdem die Installation abgeschlossen ist, starten Sie den MySQL-Dienst und aktivieren Sie ihn, damit er jedes Mal beim Systemstart gestartet werden kann.

systemctl start mysql
systemctl enable mysql

Nun werden wir das MySQL-Root-Passwort mit dem Befehl’mysql_secure_installation‘ konfigurieren.

mysql_secure_installation

In dieser MySQL 5.8-Version gibt es eine Sicherheitsverbesserung für die MySQL-Passwortrichtlinie. Sie müssen die Passwortrichtlinie wählen – 0 für die LOW-Richtlinie, 1 für die MEDIUM-Richtlinie und 2 für eine STRONG-Passwortrichtlinie.

Für diesen Leitfaden verwenden wir die Passwortrichtlinie „MEDIUM“, und es wird empfohlen, die Passwortrichtlinie „STRONG“ auf dem Produktionsserver zu verwenden.

Wählen Sie die Nummer’1′ und drücken Sie die Eingabetaste, dann geben Sie Ihr neues MySQL-Passwort’root‘ ein.

Sichere MySQL-Installation

 Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
 Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
 Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
 Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

Das MySQL-Root-Passwort wurde eingerichtet.

Als nächstes werden wir eine neue Datenbank für unsere Magento-Installation erstellen. Wir werden eine neue Datenbank namens’magentodb‘ mit dem Benutzer’magentouser‘ erstellen und das Passwort lautet’Magento0463@#‘.

Melden Sie sich mit dem Root-Benutzer an der MySQL-Shell an.

mysql -u root -p

Führen Sie nun untenstehende MySQL-Abfragen aus, um die Datenbank und den Benutzer zu erstellen.

create database magentodb;
create user magentouser@localhost identified by 'Magento0463@#';
grant all privileges on magentodb.* to magentouser@localhost identified by 'Magento0463@#';
flush privileges;

Die Installation und Konfiguration des MySQL-Servers für die Magento-Installation ist abgeschlossen.

MySQL-Datenbank und Benutzer für Magento erstellen

Schritt 4 – Installation und Konfiguration von Magento 2

In diesem Schritt werden wir Magento 2.2.4 neueste Version aus dem Github-Repository installieren. Wir werden den PHP-Composer für die Installation der Magento-Komponenten installieren, Magento aus dem Github-Repository herunterladen, den virtuellen Nginx-Host für Magento konfigurieren und Magento über die webbasierte Nachinstallation installieren.

– PHP Composer installieren

Installieren Sie PHP Composer auf ubuntu 18.04 mit dem Befehl apt unten.

sudo apt install composer -y

Überprüfen Sie nach Abschluss der Installation die auf dem System installierte composer-Version.

composer -V

Installieren Sie PHP komponieren

Die neueste Version von PHP Composer wurde installiert.

– Magento 2 herunterladen

Gehen Sie in das Verzeichnis’/var/www‘ und laden Sie den Magento-Archivquellcode von Github mit dem Befehl wget herunter.

cd /var/www/
wget https://github.com/magento/magento2/archive/2.2.4.tar.gz

Entpacken Sie nun die Magento-Archivdatei und benennen Sie das Verzeichnis in’magento2′ um.

tar -xf 2.2.4.tar.gz
mv magento2-2.2.4/ magento2/

Der Magento-Quellcode wurde heruntergeladen, und das Verzeichnis’/var/wwww/magento2′ wird die Web-Root für die Magento-Seite sein.

– Magento-Komponenten installieren

Installieren Sie Magento-Komponenten mit dem PHP-Composer. Gehen Sie in das Verzeichnis’magento2′ und installieren Sie alle von Magento benötigten PHP-Komponenten mit dem Befehl’composer‘.

cd /var/www/magento2
composer install -v

Nachdem die Installation abgeschlossen ist, erhalten Sie das Ergebnis wie unten gezeigt.

Komponistenversion prüfen

– SSL Letsencrypt generieren

Wir werden unsere Magento-Installation mit SSL von Letsencrypt sichern. Installieren Sie die Letsencrypt mit dem Befehl apt unten.

sudo apt install letsencrypt -y

Nachdem die Installation abgeschlossen ist, beenden Sie den nginx-Dienst.

systemctl stop nginx

Erzeugen Sie nun die SSL-Zertifikate für den Domainnamen mit dem Befehl certbot wie unten beschrieben.

certbot certonly --standalone -d magento.hakase-labs.pw

Geben Sie Ihre E-Mail-Adresse ein, akzeptieren Sie die Letsencrypt TOS, dann geben Sie’N‘ für die E-Mail-Freigabe ein.

Aktivieren Sie Let's encrypt SSL-Zertifikat

Wenn es fertig ist, erhalten Sie das Ergebnis wie unten beschrieben.

SSL-Cert Probleme erfolgreich behoben

Die Letsencrypt SSL-Zertifikatsdateien wurden in das Verzeichnis’/etc/letsencrypt/live‘ generiert.

– Nginx Virtual Host konfigurieren

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

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

Fügen Sie dort die folgende Konfiguration ein.

upstream fastcgi_backend {
        server  unix:/run/php/php7.1-fpm.sock;
}

server {
    listen 80;
    listen [::]:80;
    server_name magento.hakase-labs.pw;
    return 301 https://$server_name$request_uri;
}

server {

        listen 443 ssl;
        server_name magento.hakase-labs.pw;

        ssl on;
        ssl_certificate /etc/letsencrypt/live/magento.hakase-labs.pw/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/magento.hakase-labs.pw/privkey.pem;

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

Speichern Sie die Konfiguration und beenden Sie sie.

Aktivieren Sie nun den virtuellen Host, indem Sie den symbolischen Link für die Magento Virtual Host-Datei auf das Verzeichnis „sites-enabled“ erstellen.

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

Testen Sie die nginx-Konfigurationsdatei und stellen Sie sicher, dass kein Fehler vorliegt.

nginx -t

Starten Sie nun den PHP-FPM- und Nginx-Dienst neu.

systemctl restart php7.1-fpm
systemctl restart nginx

Und ändern Sie den Besitzer des Magento Web-Root-Verzeichnisses auf den Benutzer und die Gruppe’www-data‘.

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

Der virtuelle Host von nginx für Magento wurde hinzugefügt.

– Magento nach der Installation

Öffnen Sie den Webbrowser und geben Sie die Magento URL ein. Meins schon:

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

Für die’Bedingungen und Vereinbarungen‘ klicken Sie auf die Schaltfläche’Zustimmen und Magento einrichten‘.

Magento Web-Installer

Überprüfen Sie nun die gesamte System- und Serverkonfiguration für Magento ‚Readlines Check‘ und stellen Sie sicher, dass sie die System- und Konfigurationsprüfung wie unten beschrieben besteht.

Voraussetzungen prüfen

Klicken Sie nun auf die Schaltfläche „Weiter“.

Datenbankkonfiguration für Magento – geben Sie alle unsere Datenbankinformationen ein und klicken Sie auf’Weiter‘.

Datenbankkonfiguration

Ändern Sie für die Web-Konfiguration die’Speicheradresse‘ auf HTTPS,’Magento Admin Address‘ mit Ihrer Admin-Pfad-URL und deaktivieren Sie die Option’Apache Rewrites‘, da wir den Nginx-Webserver verwenden.

Web-Konfiguration

Klicken Sie erneut auf die Schaltfläche „Weiter“.

Lassen Sie die Option’Anpassen Ihres Shops‘ als Standard und klicken Sie auf’Weiter‘.

Magento Store anpassen

Geben Sie Ihren Admin-Benutzer und Ihr Passwort ein und klicken Sie dann auf’Weiter‘.

Einrichten des Admin-Kontos

Und klicken Sie auf die Schaltfläche’Jetzt installieren‘, um Magento zu installieren.

Magento-Installation starten

Und wenn die Installation abgeschlossen ist, erhalten Sie das Ergebnis „Erfolg“ wie unten beschrieben.

Magento-Installation erfolgreich

Jetzt müssen wir den Schreibzugriff auf das Verzeichnis’/var/wwww/magento2/app/app/etc‘ deaktivieren. Führen Sie den folgenden Befehl aus.

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

Magento wurde auf dem Ubuntu 18.04 Bionic Beaver Server installiert.

Schritt 5 – Prüfung

Geben Sie die Magento-URL-Homepage ein und stellen Sie sicher, dass Sie die Magento-Standardhomepage erhalten. Meiner ist: https://magento.hakase-labs.pw/

Magento Homepage

Melden Sie sich nun im Magento Admin Dashboard an, indem Sie die bei der Installation von’admin_hakase‘ definierte URL aufrufen. Meins schon:

https://magento.hakase-labs.pw/admin_hakase/hakase/

Magento Backend-Anmeldung

Geben Sie den Benutzernamen und das Passwort ein und klicken Sie dann auf die Schaltfläche „Anmelden“.

Und Sie erhalten das Magento Admin Dashboard wie unten beschrieben.

Magento Dashboard

Magento 2 wurde auf Ubuntu 18.04 mit Nginx Webserver, MySQL-Datenbank und PHP-FPM 7.1 installiert.

Zusätzlich:

Wenn Sie einen Fehler über einen fehlenden Magento Indexer Cronjob erhalten, dann können Sie ihn lösen, indem Sie das crontab-Skript mit dem folgenden Befehl erzeugen…:

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

Überprüfen Sie nun das crontab-Skript list für den Benutzer’www-data‘.

crontab -u www-data -l

Magento Indexer Cronjob einrichten

Referenz

Das könnte dich auch interessieren …