Wie man Shopware mit NGINX installiert und Let’s encrypt auf Ubuntu 18.04 LTS

Shopware ist die nächste Generation von Open-Source-E-Commerce-Software. Basierend auf modernsten Technologien wie Symfony 3, Doctrine und anderen. Dieses Tutorial führt Sie durch die Installation der Shopware Community Edition (CE) auf dem Ubuntu 18.04 LTS-System mit NGINX als Webserver.

Anforderungen

Stellen Sie sicher, dass Ihr System die folgenden Mindestanforderungen erfüllt:

  • Linux-basiertes Betriebssystem mit installiertem NGINX oder Apache 2.x (mit mod_rewrite) Webserver.
  • PHP 5.6.4 oder höher mit ctype, gd, curl, dom, hash, iconv, zip, json, mbstring, openssl, session, simplexml, xml, zlib, fileinfo und pdo/mysql extensions. PHP 7.1 oder höher wird dringend empfohlen.
  • MySQL 5.5.0 oder höher.
  • Möglichkeit der Einrichtung von Cron-Jobs.
  • Mindestens 4 GB freier Festplattenspeicher.
  • IonCube Loader Version 5.0.0 oder höher (optional).

HINWEIS: Shopware ist derzeit bis zu PHP 7.2.x kompatibel.

Voraussetzungen

  • Ein Betriebssystem mit Ubuntu 18.04 LTS.
  • Ein Nicht-Root-Benutzer mit sudo-Rechten.

Erste Schritte

Überprüfen Sie Ihre Ubuntu-Version:

lsb_release -ds
# Ubuntu 18.04.2 LTS

Richten Sie die Zeitzone ein:

sudo dpkg-reconfigure tzdata

Aktualisieren Sie Ihre Betriebssystempakete (Software). Dies ist ein wichtiger erster Schritt, denn es stellt sicher, dass Sie die neuesten Updates und Sicherheitsfixes für die Standardsoftwarepakete Ihres Betriebssystems erhalten:

sudo apt update && sudo apt upgrade -y

Installieren Sie einige wichtige Pakete, die für die grundlegende Verwaltung des Ubuntu-Betriebssystems erforderlich sind:

sudo apt install -y curl wget vim git unzip socat bash-completion

Schritt 1 – PHP und PHP-Erweiterungen installieren

Installieren Sie PHP, sowie die notwendigen PHP-Erweiterungen für Shopware:

sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mysql php7.2-curl php7.2-json php7.2-zip php7.2-gd php7.2-xml php7.2-mbstring php7.2-opcache

Um PHP, das in Modulen kompiliert ist, anzuzeigen, können Sie ausführen:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Überprüfen Sie die PHP-Version:

php --version

 

# PHP 7.2.17-0ubuntu0.18.04.1 (cli) (built: Apr 18 2019 14:12:38) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
#     with Zend OPcache v7.2.17-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies

Der PHP-FPM-Dienst wird beim Neustart auf dem Ubuntu 18.04-System automatisch gestartet und aktiviert, so dass es nicht notwendig ist, ihn manuell zu starten und zu aktivieren; wir können zum nächsten Schritt übergehen, nämlich der Installation des IonCube Loader.

Schritt 2 – IonCube Loader installieren (optional)

Laden Sie den IonCube Loader herunter:

cd /tmp && wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Entnehmen Sie den Lader:

tar xfz ioncube_loaders_lin_*.gz

Suchen Sie das PHP-Erweiterungsverzeichnis auf dem System, indem Sie den folgenden Befehl ausführen:

php -i | grep extension_dir
# extension_dir => /usr/lib/php/20170718 => /usr/lib/php/20170718

Kopieren Sie den ionCube Loader in das PHP-Erweiterungsverzeichnis:

sudo cp /tmp/ioncube/ioncube_loader_lin_7.2.so /usr/lib/php/20170718/

Binden Sie den Loader über die PHP-Konfiguration ein:

sudo vim /etc/php/7.2/fpm/php.ini

Fügen Sie dann eine Zeile in die Datei ein, um den ionCube Loader einzubinden. Es kann sich an beliebiger Stelle in der Datei unterhalb[PHP]der Zeile befinden:

zend_extension = /usr/lib/php/20170718/ioncube_loader_lin_7.2.so

Speichern Sie die Datei und starten Sie PHP-FPM neu:

sudo systemctl restart php7.2-fpm.service

Schritt 3 – MySQL installieren und eine Datenbank für Shopware erstellen

Installieren Sie den MySQL-Datenbankserver:

sudo apt install -y mysql-server

Überprüfen Sie die MySQL-Version:

mysql --version
# mysql  Ver 14.14 Distrib 5.7.26, for Linux (x86_64) using  EditLine wrapper

Laufenmysql_secure installationSkript zur Verbesserung der MySQL-Sicherheit und zur Festlegung des Passworts für MySQLrootBenutzer:

sudo mysql_secure_installation

Beantworten Sie jede der Fragen:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
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

Verbinden Sie sich mit der MySQL-Shell als root-Benutzer:

sudo mysql -u root -p
# Enter password

Erstellen Sie eine leere MySQL-Datenbank und einen leeren Benutzer für Shopware und merken Sie sich die Zugangsdaten:

mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;

Beenden von MySQL:

mysql> exit

Ersetzen Sie,dbnameundusernamedurch Ihre eigenenpasswordNamen.

Schritt 4 – Installieren Sie den Acme.sh-Client und erhalten Sie Let’s Encrypt Zertifikat (optional).

Die Sicherung Ihrer Website mit HTTPS ist nicht notwendig, aber es ist eine gute Vorgehensweise, um den Traffic Ihrer Website zu sichern. Um ein TLS-Zertifikat von Let’s Encrypt zu erhalten, verwenden wir den acme.sh-Client. Acme.sh ist eine reine Unix-Shell-Software zum Erhalten von TLS-Zertifikaten von Let’s Encrypt ohne Abhängigkeiten.

Laden Sie acme.sh herunter und installieren Sie es:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail your_email@example.com
source ~/.bashrc
cd ~

Überprüfen Sie die Version von acme.sh:

acme.sh --version
# v2.8.1

Besorgen Sie sich RSA- und ECC/ECDSA-Zertifikate für Ihre Domain/Hostname:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Wenn Sie gefälschte Zertifikate zum Testen benötigen, können Sie diese hinzufügen.--stagingFlagge zu den obigen Befehlen.

Nachdem Sie die obigen Befehle ausgeführt haben, sind Ihre Zertifikate und Schlüssel in:

  • Für RSA:/home/username/example.comVerzeichnis.
  • Für ECC/ECDSA:/home/username/example.com_eccVerzeichnis.

Um Ihre ausgestellten Zertifikate aufzulisten, können Sie diese ausführen:

acme.sh --list

Erstellen Sie ein Verzeichnis, um Ihre Zertifikate zu speichern. Wir werden ein Verzeichnis verwenden./etc/letsencrypt.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Zertifikate installieren/kopieren nach/etc/letsencryptVerzeichnis.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Alle Zertifikate werden automatisch alle 60 Tage erneuert.

Nach Erhalt der Zertifikate verlassen Sie den Root-Benutzer und kehren Sie zum normalen sudo-Benutzer zurück:

exit

Schritt 5 – Installation und Konfiguration von NGINX

Installieren Sie den NGINX Webserver:

sudo apt install -y nginx

Überprüfen Sie die NGINX-Version:

sudo nginx -v
# nginx version: nginx/1.14.0 (Ubuntu)

KonfigurierenNGINXfür Shopware. Laufensudo vim /etc/nginx/sites-available/shopware.confund fügen Sie die folgende Konfiguration hinzu:

server {
    listen 80;
    listen [::]:80;
    
    server_name example.com;
    root /var/www/shopware;

    index shopware.php index.php;

    location / {
        try_files $uri $uri/ /shopware.php$is_args$args;
    }

    location /recovery/install {
      index index.php;
      try_files $uri /recovery/install/index.php$is_args$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    }
}

Aktivieren Sie die neueshopware.confKonfiguration, indem Sie die Datei mit dem Verzeichnis verknüpfen:

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

PrüfenNGINXKonfiguration für Syntaxfehler:

sudo nginx -t

Neu ladenNGINXService:

sudo systemctl reload nginx.service

Schritt 6 – Shopware installieren

Erstellen Sie ein Dokumenten-Stammverzeichnis für Shopware:

sudo mkdir -p /var/www/shopware

Wechseln Sie den Eigentümer des/var/www/shopwareVerzeichnis zu{jour_user}:

sudo chown -R {your_user}:{your_user} /var/www/shopware

Navigieren Sie zum Stammverzeichnis des Dokuments:

cd /var/www/shopware

Laden Sie die neueste Shopware-Version herunter und entpacken Sie sie über wget:

wget https://releases.shopware.com/install_5.5.8_d5bf50630eeaacc6679683e0ab0dcba89498be6d.zip?_ga=2.141661361.269357371.1556739808-1418008019.1556603459 -O shopware.zip
unzip shopware.zip
rm shopware.zip

HINWEIS: Aktualisieren Sie die Download-URL, wenn es eine neuere Version gibt.

Ändern Sie den Besitzer des/var/www/shopwareVerzeichnisses auf .

sudo chown -R www-data:www-data /var/www/shopware

Erhöhen undmemory_limit = 256M, und, und setzen, wennupload_max_filesize = 6Mnicht bereits in der Datei eingestelltallow_url_fopen = On.

sudo vim /etc/php/7.2/fpm/php.ini

Nachdem Sie Änderungen in der/etc/php/7.2/fpm/php.iniDatei vorgenommen haben, laden Sie das Programm neu.php7.2-fpm.service:

sudo systemctl reload php7.2-fpm.service

Öffnen Sie Ihre Domain/IP im Webbrowser und folgen Sie dem Installationsassistenten. Das Backend von Shopware befindet sich im/backendBeispiel: .

Schritt 7 – Fertigstellen der Shopware-Einrichtung

Wählen Sie zunächst die Sprache aus und klicken Sie auf Weiter:

Einrichtungsassistent für Shopware

Als nächstes stellen Sie sicher, dass Sie alle Shopware-Anforderungen erfüllen:

Die Systemanforderungen sind erfüllt.

Stimmen Sie den Shopware-TOS zu und klicken Sie auf Weiter:

Lizenz akzeptieren

Geben Sie die Datenbank-Anmeldeinformationen ein und klicken Sie auf Weiter:

Einstellungen der Shopware-Datenbank

Starten Sie die Installation, um Datenbanktabellen zu erstellen:

Installation von Datenbanktabellen

Danach erhalten Sie eine Meldung über den erfolgreichen Datenbankimport:

Datenbankinitialisierung erfolgreich

Wählen Sie eine Lizenz aus und klicken Sie auf Weiter:

Lizenz auswählen

Geben Sie ein paar Grundeinstellungen ein, um das Setup abzuschließen, und klicken Sie auf Weiter:

Grundeinstellungen

Die Installation ist abgeschlossen.

Die Installation ist abgeschlossen

Um auf den Admin-Bereich zuzugreifen, hängen Sie /backend an Ihre URL an.

Anmeldung zum Shopware-Backend

Sie haben Shopware erfolgreich installiert. Viel Spaß mit deinem neuen Online-Shop!

Links

Das könnte Dich auch interessieren …