So installieren Sie Shopware 6 mit NGINX und Let’s Encrypt auf CentOS 8

Shopware ist eine kostenlose und Open-Source-Plattform, die Ihnen hilft, Ihre eigene E-Commerce-Website zu starten, um Ihr Online-Geschäft zu betreiben. Es bietet eine Menge nützlicher Tools, die Ihnen helfen, einen vollständig responsiven Online-Shop zu erstellen und anzupassen. Es ist sehr ähnlich zu Magento. Im Vergleich zu Magento ist Shopware eine sehr leistungsfähige, einfach zu bedienende und flexible Anwendung. Es hilft Ihnen, Inhalte und Produkte einfach von jedem Gerät aus zu erstellen und zu verwalten, dank seiner modernen Benutzeroberfläche.

In diesem Tutorial zeigen wir Ihnen, wie Sie Shopware mit Nginx und Let’s Encrypt SSL auf CentOS 8 installieren können.

Voraussetzungen

  • Ein Server, auf dem CentOS 8 läuft.
  • Ein gültiger Domain-Name, der auf die IP Ihres Servers zeigt.
  • Ein Root-Passwort ist auf Ihrem Server konfiguriert.

LEMP-Server installieren

Shopware läuft auf einem Webserver und baut auf PHP mit Symfony- und Zend-Komponenten auf und verwendet MySQL oder MariaDB als Datenbank-Backend. Daher müssen Sie Nginx, MariaDB, PHP und andere Erweiterungen auf Ihrem Server installieren. Sie können sie alle mit dem folgenden Befehl installieren:

dnf install nginx mariadb-server php php-cli php-intl php-fpm php-common php-mysqli php-curl php-json php-zip php-gd php-xml php-mbstring php-opcache unzip -y

Sobald alle Pakete installiert sind, starten Sie den Nginx-, MariaDB- und PHP-FPM-Dienst und aktivieren Sie sie mit dem folgenden Befehl, damit sie beim Systemneustart gestartet werden:

systemctl start mariadb
systemctl enable mariadb
systemctl start nginx
systemctl start php-fpm
systemctl enable nginx
systemctl enable php-fpm

Sobald Sie damit fertig sind, können Sie mit dem nächsten Schritt fortfahren.

PHP-FPM konfigurieren

Standardmäßig ist PHP-FPM so konfiguriert, dass es unter einem Apache-Benutzer und einer Apache-Gruppe läuft. Daher müssen Sie es so konfigurieren, dass es als Nginx-Benutzer und -Gruppe ausgeführt wird. Dies können Sie durch Bearbeiten der Datei /etc/php-fpm.d/www.conf erreichen:

nano /etc/php-fpm.d/www.conf

Ändern Sie die folgenden Zeilen:

user = nginx 
group = nginx 

Speichern und schließen Sie die Datei, erstellen Sie dann ein Sitzungsverzeichnis und setzen Sie mit dem folgenden Befehl die richtigen Eigentümer:

mkdir -p /var/lib/php/session 
chown -R nginx:nginx /var/lib/php/session

Bearbeiten Sie als nächstes die Datei php.ini und nehmen Sie einige empfohlene Einstellungen vor:

nano /etc/php.ini

Ändern Sie die folgenden Zeilen:

memory_limit = 512M
upload_max_filesize = 20M
date.timezone = Asia/Kolkata

Speichern und schließen Sie die Datei und starten Sie den PHP-FPM-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart php-fpm

Erstellen Sie eine Datenbank für Shopware

Als nächstes müssen Sie eine Datenbank und einen Benutzer für Shopware anlegen. Stellen Sie zunächst mit dem folgenden Befehl eine Verbindung zur MariaDB her:

mysql

Sobald die Verbindung hergestellt ist, erstellen Sie eine Datenbank und einen Benutzer mit dem folgenden Befehl:

MariaDB [(none)]> CREATE DATABASE shopware;
MariaDB [(none)]> GRANT ALL ON shopware.* TO 'shopware' IDENTIFIED BY 'password';

Legen Sie anschließend die Berechtigungen fest und beenden Sie MariaDB mit dem folgenden Befehl:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Wenn Sie damit fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Shopware herunterladen

Als nächstes müssen Sie die neueste Version von Shopware von der offiziellen Website herunterladen. Erstellen Sie zunächst ein Verzeichnis für Shopware innerhalb des Nginx-Root-Verzeichnisses:

mkdir /var/www/html/shopware

Als nächstes laden Sie die Shopware mit dem folgenden Befehl herunter:

wget https://www.shopware.com/en/Download/redirect/version/sw6/file/install_v6.3.5.0_ba08dbfc07784b5cefe7837f2abbda69dbf5b8b7.zip -O shopware.zip

Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei in das Shopware-Verzeichnis:

unzip shopware.zip -d /var/www/html/shopware

Legen Sie als Nächstes mit dem folgenden Befehl die richtigen Berechtigungen und Eigentümer fest:

chown -R nginx:nginx /var/www/html/shopware
chmod -R 775 /var/www/html/shopware

Sobald Sie damit fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Nginx für Shopware konfigurieren

Erstellen Sie als nächstes eine Nginx-Konfigurationsdatei für den virtuellen Host für Shopware mit dem folgenden Befehl:

nano /etc/nginx/conf.d/shopware.conf

Fügen Sie die folgenden Zeilen hinzu:

server {
    listen 80;

    # Handle / to index.php
    index index.php;

    # Our server name
    server_name shopware.example.com;

    # Where the code is located
    root /var/www/html/shopware/public;

    # Needed for Shopware install / update
    location /recovery/install {
        index index.php;
        try_files $uri /recovery/install/index.php$is_args$args;
    }

    location /recovery/update/ {
        if (!-e $request_filename){
            rewrite . /recovery/update/index.php last;
        }
    }

    # Forward any not found file to index.php. Also allows to have beautiful urls like /homemade-products/
    location / {
        try_files $uri /index.php$is_args$args;
    }

    # Let php-fpm handle .php files
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi.conf;
        fastcgi_param HTTP_PROXY "";
        fastcgi_buffers 8 16k;
        fastcgi_buffer_size 32k;
        fastcgi_read_timeout 300s;
        client_body_buffer_size 128k;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        http2_push_preload on;
    }
}

Speichern und schließen Sie die Datei und überprüfen Sie dann Nginx mit dem folgenden Befehl auf 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 anschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart nginx

Sie können den Nginx-Status auch mit dem folgenden Befehl überprüfen:

systemctl status nginx

Sie sollten die folgende Ausgabe erhalten:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           ??php-fpm.conf
   Active: active (running) since Tue 2021-02-02 00:40:04 EST; 19s ago
  Process: 76059 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 76057 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 76054 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 76060 (nginx)
    Tasks: 3 (limit: 12523)
   Memory: 5.5M
   CGroup: /system.slice/nginx.service
           ??76060 nginx: master process /usr/sbin/nginx
           ??76061 nginx: worker process
           ??76062 nginx: worker process

Feb 02 00:40:04 centos8 systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Feb 02 00:40:04 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Feb 02 00:40:04 centos8 nginx[76057]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Feb 02 00:40:04 centos8 nginx[76057]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Feb 02 00:40:04 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.

SELinux und Firewall konfigurieren

Standardmäßig ist SELinux in CentOS 8 aktiviert. Sie müssen also den SELinux-Kontext für Shopware konfigurieren. Sie können ihn mit dem folgenden Befehl konfigurieren:

setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/shopware

Als Nächstes erlauben Sie die Ports 80 und 443 durch die Firewalld mit dem folgenden Befehl:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Wenn Sie damit fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Zugriff auf die Shopware-Web-Oberfläche

Öffnen Sie nun Ihren Webbrowser und geben Sie die URL http://shopware.example.com ein.

Wählen Sie Ihre Sprache und klicken Sie auf die Schaltfläche Weiter. Stellen Sie sicher, dass alle Anforderungen erfüllt sind, und klicken Sie dann auf die Schaltfläche Weiter. Sie sollten die folgende Seite sehen:

Shopware Begriffe

Stimmen Sie den AGBs zu und klicken Sie auf die Schaltfläche Weiter. Sie sollten die folgende Seite sehen:

Shopware-Datenbank konfigurieren

Geben Sie Ihre Datenbank, Ihren Benutzernamen und Ihr Passwort ein und klicken Sie auf die Schaltfläche Installation starten. Nach Abschluss der Installation sollten Sie die folgende Seite sehen:

Shopware 6 wurde erfolgreich installiert

Klicken Sie auf die Seite Weiter. Sie werden aufgefordert, Ihren Shop-Namen, Ihre E-Mail-Adresse, Ihre Währung, Ihr Land, Ihren Admin-Benutzernamen und Ihr Passwort einzugeben, und klicken Sie auf die Schaltfläche Weiter. Sie werden nun zum Shopware-Dashboard weitergeleitet:

Konfigurieren Sie den Shopnamen

Währung und E-Mail-Konfiguration

Geben Sie alle Informationen ein und klicken Sie auf die Schaltfläche Weiter. Sie sollten die folgende Seite sehen:

Shopware Dashbaord

Installieren Sie Ihre gewünschten Sprach-Plugins und klicken Sie auf die Schaltfläche Weiter. Sie sollten die folgende Seite sehen:

Datenimport

Installieren Sie Demodaten oder überspringen Sie dies und klicken Sie auf die Schaltfläche Weiter. Sie sollten die folgende Seite sehen:

E-Mail-Konfiguration

Klicken Sie auf die Schaltfläche Später konfigurieren. Sie sollten die folgende Seite sehen:

Paypal-Einrichtung

Klicken Sie auf die Schaltfläche Überspringen. Die folgende Seite sollte angezeigt werden:

Plugins installieren

Klicken Sie auf die Schaltfläche Weiter.Sie sollten die folgende Seite sehen:

Sicheres Shopware-Konto

Klicken Sie auf die Schaltfläche Überspringen. Die folgende Seite sollte angezeigt werden:

Shopware-Installation erfolgreich

Klicken Sie auf die Schaltfläche Fertig stellen. Sie sollten die Shopware-Begrüßungsseite sehen:

Willkommen bei Shopware 6

Shopware mit Let’s Encrypt SSL sichern

Als nächstes müssen Sie das Certbot-Dienstprogramm in Ihrem System installieren, um Let’s Encrypt SSL für die Let’s Chat-Domäne herunterzuladen und zu installieren.

Sie können den Certbot-Client mit dem folgenden Befehl installieren:

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

Als nächstes beschaffen und installieren Sie ein SSL-Zertifikat für Ihre Let’s-Domain mit dem folgenden Befehl:

certbot-auto --nginx -d shopware.example.com

Mit dem obigen Befehl werden zunächst alle erforderlichen Abhängigkeiten auf Ihrem Server installiert. Nach der Installation werden Sie aufgefordert, eine E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren, wie unten gezeigt:

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.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/shopware.conf

Wählen Sie als Nächstes aus, ob der HTTP-Datenverkehr auf HTTPS umgeleitet werden soll oder nicht (siehe unten):

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 die Eingabetaste, um fortzufahren. Sobald die Installation abgeschlossen ist, sollten Sie die folgende Ausgabe sehen:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/shopware.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://shopware.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=shopware.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/shopware.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/shopware.example.com/privkey.pem
   Your cert will expire on 2021-04-2. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot-auto 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

Sie können nun über die URL https://shopware.example.com sicher auf Shopware zugreifen.

Fazit

Herzlichen Glückwunsch! Sie haben Shopware erfolgreich mit Nginx und Let’s Encrypt SSL auf CentOS 8 installiert und konfiguriert. Sie können nun ganz einfach Ihren eigenen Online-Shop mit Shopware hosten. Wenn Sie Fragen haben, können Sie sich gerne an mich wenden.

Das könnte dich auch interessieren …