GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Magento 2 mit Nginx und Letsencrypt unter Ubuntu 18.04

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 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. Als Serverbetriebssystem werde ich Ubuntu 18.04 (Bionic Beaver) verwenden. Wenn Sie noch kein minimales Server-Setup haben, sehen Sie sich bitte dieses Tutorial an, um ein richtiges Basis-Setup zu erhalten.

Voraussetzungen

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

Was wir tun werden

  1. Installieren Sie Nginx auf Ubuntu 18.04
  2. Installieren und konfigurieren Sie PHP-FPM 7.1
  3. Installieren und konfigurieren Sie den MySQL-Server
  4. Magento 2 installieren und konfigurieren
    1. Installieren Sie PHP Composer
    2. Laden Sie Magento 2 herunter
    3. Magento-Komponenten installieren
    4. SSL Letsencrypt generieren
    5. Konfigurieren Sie den virtuellen Nginx-Host für Magento
    6. Magento-Nachinstallation
  5. Testen

Schritt 1 – Nginx auf Ubuntu 18.04 LTS installieren

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

Melden Sie sich beim 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 folgenden apt-Befehl.

sudo apt install nginx -y

Starten Sie nach Abschluss der Installation den Nginx-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.

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.

netstat -plntu
curl -I localhost

Schritt 2 – PHP-FPM 7.1 installieren und konfigurieren

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
  • Typ
  • locken
  • Dom
  • gd, ImageMagick 6.3.7 (oder höher) oder beides
  • intl.
  • mbstring
  • mcrypt
  • Hash
  • openssl
  • PDO/MySQL
  • SimpleXML
  • Seife
  • spl
  • libxml
  • xsl
  • zip
  • json
  • iconv

Für dieses Handbuch werden wir PHP-FPM-Pakete aus dem PPA-Repository installieren. Wir werden das 'ondrej/php'-Repository 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

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

Überprüfen Sie nach Abschluss der Installation die PHP-Version und die installierten Erweiterungen mit PHP-Befehlen.

php -v
php -me

Als nächstes konfigurieren wir die php.ini-Datei für 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 folgt.

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

Speichern und beenden.

Starten Sie nun den PHP-fpm-Dienst neu und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.

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 Sie erhalten die PHP-fpm-Socks-Datei wie folgt.

Schritt 3 – MySQL Server installieren und konfigurieren

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

Installieren Sie MySQL 5.8 mit dem folgenden apt-Befehl.

sudo apt install mysql-server mysql-client -y

Nachdem die Installation abgeschlossen ist, starten Sie den MySQL-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.

systemctl start mysql
systemctl enable mysql

Jetzt konfigurieren wir das MySQL-Root-Passwort mit dem Befehl ‚mysql_secure_installation‘.

mysql_secure_installation

In dieser MySQL 5.8-Version gibt es eine Sicherheitsverbesserung für die MySQL-Passwortrichtlinie. Sie müssen die Passwortrichtlinie auswählen – 0 für die NIEDRIGE Richtlinie, 1 für die MITTLERE Richtlinie und 2 für eine STARKE Passwortrichtlinie.

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

Wählen Sie die Zahl „1“ und drücken Sie die Eingabetaste. Geben Sie dann Ihr neues MySQL-Root-Passwort ein.

 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 erstellen wir eine neue Datenbank für unsere Magento-Installation. Wir erstellen eine neue Datenbank mit dem Namen „magentodb“ mit dem Benutzer „magentouser“ und dem Passwort „[email protected]#“.

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

mysql -u root -p

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

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

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

Schritt 4 – Magento 2 installieren und konfigurieren

In diesem Schritt installieren wir die neueste Version von Magento 2.2.4 aus dem Github-Repository. 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 folgenden apt-Befehl.

sudo apt install composer -y

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

composer -V

Die neueste Version von PHP Composer wurde installiert.

- Laden Sie Magento 2 herunter

Gehen Sie in das Verzeichnis „/var/www“ und laden Sie den Quellcode des Magento-Archivs von Github mit dem Befehl „wget“ herunter.

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

Extrahieren 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/www/magento2“ wird das Web-Stammverzeichnis für die Magento-Site sein.

- Magento-Komponenten installieren

Installieren Sie Magento-Komponenten mit dem PHP-Composer. Wechseln 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 unten gezeigte Ergebnis.

- Generieren Sie SSL Letsencrypt

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

sudo apt install letsencrypt -y

Stoppen Sie nach Abschluss der Installation den nginx-Dienst.

systemctl stop nginx

Generieren 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-Nutzungsbedingungen und geben Sie dann „N“ für die E-Mail-Freigabe ein.

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

Die Letsencrypt-SSL-Zertifikatsdateien wurden im Verzeichnis „/etc/letsencrypt/live“ generiert.

- Konfigurieren Sie den virtuellen Nginx-Host

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

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;
}
ein

Speichern Sie die Konfiguration und beenden Sie.

Aktivieren Sie nun den virtuellen Host, indem Sie den symbolischen Link für die virtuelle Magento-Hostdatei zum 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 Eigentümer des Magento-Web-Root-Verzeichnisses in den Benutzer und die Gruppe „www-data“.

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

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

- Magento-Nachinstallation

Öffnen Sie den Webbrowser und geben Sie die Magento-URL ein. Meine ist:

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

Klicken Sie für die „Allgemeinen Geschäftsbedingungen“ auf die Schaltfläche „Zustimmen und Magento einrichten“.

Überprüfen Sie nun die gesamte System- und Serverkonfiguration auf Magento 'Readlines Check' und stellen Sie sicher, dass alle System- und Konfigurationsprüfungen wie unten beschrieben 'bestanden' werden.

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

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

Ändern Sie für die Webkonfiguration die „Store-Adresse“ in HTTPS, „Magento Admin Address“ mit Ihrer Admin-Pfad-URL und deaktivieren Sie „Apache Rewrites“, da wir den Nginx-Webserver verwenden.

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

Belassen Sie „Customize Your Store“ als Standard und klicken Sie auf „Next“.

Geben Sie Ihren Admin-Benutzer und Ihr Passwort ein und klicken Sie dann auf „Weiter“.

Und klicken Sie auf die Schaltfläche „Jetzt installieren“, um Magento zu installieren.

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

Jetzt müssen wir den Schreibzugriff für das Verzeichnis ‚/var/www/magento2/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 – Testen

Geben Sie die Magento-URL-Home-Adresse ein und stellen Sie sicher, dass Sie die Magento-Standard-Homepage erhalten. Meine ist:https://magento.hakase-labs.pw/

Melden Sie sich jetzt beim Magento-Admin-Dashboard an, indem Sie die während der Installation definierte URL „admin_hakase“ besuchen. Meine ist:

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

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

Und Sie erhalten das unten stehende Magento-Admin-Dashboard.

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

Zusätzlich:

Wenn Sie eine Fehlermeldung über einen fehlenden Magento-Indexer-Cronjob erhalten, können Sie diese beheben, indem Sie das crontab-Skript mit dem folgenden Befehl generieren.:

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

Überprüfen Sie nun das crontab-Skript der Liste für den Benutzer „www-data“.

crontab -u www-data -l


Ubuntu
  1. So installieren und konfigurieren Sie ownCloud mit Apache unter Ubuntu 18.04

  2. So installieren Sie Magento 2 unter Ubuntu 18.04

  3. So installieren Sie Nextcloud mit Nginx auf Ubuntu 18.04 LTS

  4. So installieren Sie Magento 2 mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

  5. So installieren Sie Nginx mit PHP5 und MySQL unter Ubuntu 11.10

So installieren Sie Django mit PostgreSQL und Nginx unter Ubuntu 16.04

So installieren Sie Bolt CMS mit Nginx unter Ubuntu 20.04

So installieren Sie mehrere WordPress mit Nginx unter Ubuntu 18.04

So installieren und konfigurieren Sie Magento 2 unter Ubuntu 18.04

So installieren und konfigurieren Sie Magento 2.3.0 auf Ubuntu 18.04

So installieren Sie LetsEncrypt mit Nginx unter Ubuntu 15.04