Wie installiert man Shopware 6 mit Nginx und Let’s Encrypt SSL auf Ubuntu 20.04
Shopware CE ist eine freie und quelloffene eCommerce-Plattform, die in Symfony und Vue.js geschrieben wurde. Sie basiert auf einem recht modernen Technologiestack und ist eine sehr gute Alternative zu einer anderen eCommerce-Anwendung wie Magento. Es ist eine sehr leistungsfähige und flexible Anwendung und gibt Ihnen die Freiheit, schnell und einfach Ihr Wachstumspotential auszuschöpfen und sich auf das perfekte Kundenerlebnis zu konzentrieren. Sie bietet eine einfache und leicht zu bedienende Verwaltungsschnittstelle zur Verwaltung von Kunden und Bestellungen. Sie ermöglicht es Ihnen, die Preise von Produkten zu verwalten, Themen zu ändern oder zu aktualisieren, E-Mail-Vorlagen für die Vermarktung Ihrer Produkte zu entwerfen und statistische Ergebnisse zu generieren.
In diesem Tutorial zeigen wir Ihnen, wie Sie Shopware CE mit Nginx und Let’s Encrypt unter Ubuntu 20.04 installieren.
Voraussetzungen
- Ein Server mit Ubuntu 20.04 mit mindestens 4 GB RAM.
- Einen gültigen Domain-Namen, der auf Ihren Server zeigt.
- Auf Ihrem Server ist ein Root-Passwort konfiguriert.
Installieren von Nginx und MariaDB
Installieren Sie zunächst den Nginx-Webserver und den MariaDB-Datenbankserver mit dem folgenden Befehl:
apt-get install nginx mariadb-server -y
Sobald beide Pakete installiert sind, starten Sie Nginx und den MariaDB-Dienst und ermöglichen es ihnen, beim Systemstart zu starten:
systemctl start nginx systemctl start mariadb systemctl enable nginx systemctl enable mariadb
PHP und andere Komponenten installieren
Shopware 6 unterstützt PHP-Versionen zwischen 7.2 und 7.3. Sie müssen also PHP zusammen mit anderen Bibliotheken in Ihrem System installieren.
Fügen Sie zunächst das PHP-Repository in Ihrem System mit dem folgenden Befehl hinzu:
apt-get install software-properties-common -y add-apt-repository ppa:ondrej/php
Sobald das Repository hinzugefügt ist, installieren Sie PHP mit anderen Bibliotheken mit dem folgenden Befehl:
apt-get install 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-intl php7.2-opcache git unzip socat curl bash-completion -y
Sobald alle Pakete installiert sind, bearbeiten Sie die Datei php.ini und passen Sie einige gewünschte Einstellungen an:
nano /etc/php/7.2/fpm/php.ini
Ändern Sie die folgenden Zeilen:
memory_limit = 512M upload_max_filesize = 20M max_execution_time = 300
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Als nächstes müssen Sie den IonCube Loader in Ihrem System installieren.
Laden Sie ihn zunächst mit dem folgenden Befehl herunter:
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
Nach dem Herunterladen extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:
tar xfz ioncube_loaders_lin_x86-64.tar.gz
Suchen Sie als nächstes den Pfad des PHP-Erweiterungsverzeichnisses:
php -i | grep extension_dir
Sie sollten die folgende Ausgabe sehen:
extension_dir => /usr/lib/php/20190902 => /usr/lib/php/20190902
Kopieren Sie anschließend den IonCube-Loader in das PHP-Erweiterungsverzeichnis:
cp ioncube/ioncube_loader_lin_7.2.so /usr/lib/php/20180731/
Bearbeiten Sie als nächstes die Datei php.ini und definieren Sie den IonCube-Lader:
nano /etc/php/7.2/fpm/php.ini
Fügen Sie die folgende Zeile innerhalb des [PHP]-Abschnitts hinzu:
zend_extension = /usr/lib/php/20180731/ioncube_loader_lin_7.2.so
Speichern und schließen Sie die Datei und starten Sie dann den PHP-FPM-Dienst neu, um die Änderungen zu übernehmen.
systemctl restart php7.2-fpm
MariaDB-Datenbank konfigurieren
Sichern Sie zuerst die Installation von MariaDB und setzen Sie das Root-Passwort mit dem folgenden Skript:
mysql_secure_installation
Beantworten Sie alle Fragen wie unten gezeigt:
Enter current password for root (enter for none): Set root password? [Y/n] Y New password: Re-enter new 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
Wenn Sie fertig sind, loggen Sie sich mit folgendem Befehl in die MariaDB-Shell ein: Klicken Sie auf die Schaltfläche Weiter:
mysql -u root -p
Geben Sie Ihr MariaDB-Root-Passwort an und erstellen Sie dann eine Datenbank und einen Benutzer für Shopware:
MariaDB [(none)]> CREATE DATABASE shopwaredb; MariaDB [(none)]> GRANT ALL ON shopwaredb.* TO 'shopware'@'localhost' IDENTIFIED BY 'password';
Als nächstes löschen Sie die Berechtigungen und beenden Sie die MariaDB mit dem folgenden Befehl:
MariaDB [(none)]> flush privileges; MariaDB [(none)]> exit;
Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Composer installieren
Composer ist ein Abhängigkeitsmanager für PHP. Er wird verwendet, um alle PHP-Abhängigkeiten zu installieren, die für die Installation von Shopware erforderlich sind.
Sie können es mit dem curl-Befehl wie unten gezeigt installieren:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
Nach der Installation überprüfen Sie die Composer-Version mit dem folgenden Befehl:
composer --version
Sie sollten die folgende Ausgabe erhalten:
Composer version 1.10.7 2020-06-03 10:03:56
Shopware herunterladen
Erstellen Sie zunächst ein Verzeichnis für Shopware innerhalb des Web-Stammverzeichnisses von Nginx:
mkdir /var/www/html/shopware
Ändern Sie dann das Verzeichnis in Shopware und laden Sie die neueste Version von Shopware mit dem folgenden Befehl herunter:
cd /var/www/html/shopware wget https://www.shopware.com/en/Download/redirect/version/sw6/file/install_6.2.2_1592398977.zip
Entpacken Sie die heruntergeladene Datei nach dem Herunterladen mit dem folgenden Befehl:
unzip install_6.2.2_1592398977.zip
Als nächstes installieren Sie alle PHP-Abhängigkeiten mit dem folgenden Befehl:
composer install
Als nächstes ändern Sie den Eigentümer des Shopware-Verzeichnisses und erteilen die entsprechenden Berechtigungen mit dem folgenden Befehl:
chown -R www-data:www-data /var/www/html/shopware chmod -R 755 /var/www/html/shopware
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Konfigurieren von Nginx für Shopware
Erstellen Sie zunächst eine neue Nginx-Konfigurationsdatei für den virtuellen Host für Shopware:
nano /etc/nginx/sites-available/shopware.conf
Fügen Sie die folgenden Zeilen hinzu:
server { listen 80; index index.php index.html; server_name shopware.linuxbuz.com; root /var/www/html/shopware/public; location /recovery/install { index index.php; try_files $uri /recovery/install/index.php$is_args$args; } location /recovery/update/ { location /recovery/update/assets { } if (!-e $request_filename){ rewrite . /recovery/update/index.php last; } } location / { try_files $uri /index.php$is_args$args; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi.conf; fastcgi_param HTTP_PROXY ""; fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; client_max_body_size 24M; client_body_buffer_size 128k; fastcgi_pass unix:/run/php/php7.2-fpm.sock; http2_push_preload on; } }
Speichern und schließen Sie die Datei und aktivieren Sie dann die virtuelle Hostdatei von Shopware mit dem folgenden Befehl:
ln -s /etc/nginx/sites-available/shopware.conf /etc/nginx/sites-enabled/
Als nächstes überprüfen Sie Nginx mit dem folgenden Befehl auf einen Syntaxfehler:
nginx -t
Sie sollten die folgende Ausgabe erhalten:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starten Sie als nächstes den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl reload nginx
Zugang zum Shopware-Installationsassistenten
Zu diesem Zeitpunkt ist Shopware in Ihrem System installiert. Öffnen Sie nun Ihren Webbrowser und geben Sie die URL http://shopware.linuxbuz.com ein. Sie sollten den Shopware-Webinstallationsassistenten sehen:
Wählen Sie Ihre Sprache aus und klicken Sie auf die Schaltfläche Next. Sie sollten den folgenden Bildschirm sehen:
Stellen Sie sicher, dass alle erforderlichen Abhängigkeiten installiert sind, und klicken Sie dann auf die Schaltfläche Next. Sie sollten den folgenden Bildschirm sehen: Geben Sie Ihre Datenbankdaten ein und klicken Sie auf die Schaltfläche Next:
Akzeptieren Sie die Bedingungen und Konditionen und klicken Sie auf die Schaltfläche Next. Sie sollten den folgenden Bildschirm sehen:
Geben Sie Ihre Datenbankdaten ein und klicken Sie auf die Schaltfläche Installation starten. Sobald die Installation erfolgreich abgeschlossen ist, sollten Sie den folgenden Bildschirm sehen: Geben Sie Ihre Datenbankdaten ein und klicken Sie auf die Schaltfläche Installation starten:
Klicken Sie nun auf die Schaltfläche Next. Sie sollten den Shopware-Konfigurationsbildschirm sehen:
Geben Sie Ihren Shop-Namen, E-Mail, Land, Admin-E-Mail, Admin-Benutzername und Passwort ein und klicken Sie auf die Schaltfläche Weiter. Sie werden zum Dashboard-Bildschirm von Shopware weitergeleitet:
Klicken Sie auf die Schaltfläche Next. Sie sollten den folgenden Bildschirm sehen: Klicken Sie auf die Schaltfläche Next:
Installieren Sie Ihre gewünschten Daten und klicken Sie auf die Schaltfläche Weiter. Sie sollten den folgenden Bildschirm sehen:
Wählen Sie den gewünschten E-Mail-Agenten und klicken Sie auf die Schaltfläche Weiter. Sie sollten den folgenden Bildschirm sehen:
Wählen Sie die gewünschte Option und klicken Sie auf die Schaltfläche Next. Sie sollten den folgenden Bildschirm sehen:
Konfigurieren Sie Ihr PayPal oder klicken Sie auf die Schaltfläche Überspringen. Sie sollten den folgenden Bildschirm sehen:
Konfigurieren Sie Ihre PayPal-Zugangsdaten oder klicken Sie auf die Schaltfläche Überspringen. Sie sollten den folgenden Bildschirm sehen:
Wählen Sie Ihre Region und klicken Sie auf die Schaltfläche Weiter. Sie sollten den folgenden Bildschirm sehen:
Klicken Sie auf die Schaltfläche Skip. Sobald die Shopware konfiguriert ist, sollten Sie den folgenden Bildschirm sehen:
Klicken Sie auf die Schaltfläche Finish. Auf dem folgenden Bildschirm sollten Sie das Shopware Dashboard sehen:
Sichere Shopware mit Let’s Encrypt
Bevor Sie beginnen, müssen Sie den Certbot-Client in Ihrem System installieren, um Let’s Encrypt SSL zu installieren und zu verwalten. Sie können ihn mit dem folgenden Befehl installieren:
apt-get install certbot python3-certbot-nginx -y
Sobald der Certbot-Client installiert ist, führen Sie den folgenden Befehl aus, um Let’s Encrypt SSL für Ihre Website herunterzuladen und zu installieren:
certbot --nginx -d shopware.linuxbuz.com
Geben Sie Ihre E-Mail-Adresse an und akzeptieren Sie die unten aufgeführten Bedingungen:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): hitjethva@gmail.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Obtaining a new certificate Performing the following challenges: http-01 challenge for shopware.linuxbuz.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/shopware.conf
Wählen Sie aus, ob HTTP-Verkehr zu HTTPS umgeleitet werden soll oder nicht:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Geben Sie 2 ein und drücken Sie Enter, um den Prozess zu starten. Sobald die Installation abgeschlossen ist, sollten Sie die folgende Ausgabe sehen:
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/shopware.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://shopware.linuxbuz.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=shopware.linuxbuz.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/shopware.linuxbuz.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/shopware.linuxbuz.com/privkey.pem Your cert will expire on 2020-09-22. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Zu diesem Zeitpunkt ist Ihre Shopware-Website mit Let’s Encrypt SSL gesichert. Sie können nun über die URL https://shopware.linuxbuz.com sicher auf Ihre Website zugreifen.
Schlussfolgerung
Herzlichen Glückwunsch! Sie haben Shopware mit Nginx und Let’s Encrypt SSL auf Ubuntu 20.04 erfolgreich installiert. Sie können nun damit beginnen, Ihr eigenes Online-Geschäft mit Shopware einzurichten. Zögern Sie nicht, mich zu fragen, wenn Sie Fragen haben.