Shopware ist die nächste Generation von Open-Source-E-Commerce-Software. Basierend auf modernsten Technologien wie Symfony 3, Doctrine2
und Zend Framework Shopware ist die perfekte Plattform für Ihr nächstes E-Commerce-Projekt. Dieses Tutorial führt Sie durch die Installation von Shopware Community Edition (CE) auf dem Fedora 30-System, indem Sie NGINX als Webserver verwenden.
Anforderungen
Stellen Sie sicher, dass Ihr System die folgenden Mindestanforderungen erfüllt:
- Linux-basiertes Betriebssystem mit installiertem NGINX- oder Apache 2.x-Webserver (mit mod_rewrite).
- PHP 5.6.4 oder höher mit den Erweiterungen ctype, gd, curl, dom, hash, iconv, zip, json, mbstring, openssl, session, simplexml, xml, zlib, fileinfo und pdo/mysql. PHP 7.1 oder höher wird dringend empfohlen.
- MySQL 5.5.0 oder höher.
- Möglichkeit Cronjobs einzurichten.
- Mindestens 4 GB verfügbarer Festplattenspeicher.
- IonCube Loader Version 5.0.0 oder höher (optional ).
HINWEIS: Shopware 5 ist derzeit bis zu PHP 7.2.x kompatibel.
Voraussetzungen
- Ein Betriebssystem, auf dem Fedora 29 ausgeführt wird.
- Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.
Ich werde in diesem Tutorial den Domänennamen example.com verwenden. Bitte ersetzen Sie das Wort example.com durch Ihren eigenen Domänennamen, wo immer es in den Befehlen und Konfigurationsdateien unten vorkommt (insbesondere in der nginx-Konfigurationsdatei und den Let's encrypt-Befehlen).
Erste Schritte
Überprüfen Sie Ihre Fedora-Version:
cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)
Richten Sie die Zeitzone ein:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Aktualisieren Sie Ihre Betriebssystempakete (Software). Dies ist ein wichtiger erster Schritt, da dadurch sichergestellt wird, dass Sie über die neuesten Updates und Sicherheitsfixes für die Standardsoftwarepakete Ihres Betriebssystems verfügen:
sudo dnf upgrade -y
Installieren Sie einige wichtige Pakete, die für die grundlegende Verwaltung des Fedora-Betriebssystems erforderlich sind:
sudo dnf install -y curl wget vim git sudo unzip socat bash-completion
Schritt 1 – PHP und PHP-Erweiterungen installieren
Installieren Sie PHP, sowie die notwendigen PHP-Erweiterungen für Shopware:
sudo dnf install -y php php-cli php-fpm php-common php-mysqlnd php-curl php-json php-zip php-gd php-xml php-mbstring php-opcache
Um PHP in Modulen kompiliert anzuzeigen, können Sie Folgendes ausführen:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Überprüfen Sie die PHP-Version:
php --version
# PHP 7.2.16 (cli) (built: Apr 30 2019 08:37:17) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.5, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.5, Copyright (c) 1999-2018, by Zend Technologies
Starten und aktivieren Sie den PHP-FPM-Dienst:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Wir können mit dem nächsten Schritt fortfahren, nämlich der IonCube Loader-Installation.
Schritt 2 - IonCube Loader installieren (optional )
Dieser Schritt ist optional, da Shopware jetzt ohne IonCube funktioniert, aber es kann immer noch Erweiterungen oder Themes geben, die IonCube verwenden, daher schadet es nicht, es zu installieren. IonCube Loader herunterladen:
cd /tmp && wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
Extrahieren Sie den Loader:
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/lib64/php/modules => /usr/lib64/php/modules
Kopieren Sie den ionCube Loader in das PHP-Erweiterungsverzeichnis:
sudo cp /tmp/ioncube/ioncube_loader_lin_7.2.so /usr/lib64/php/modules
Binden Sie den Loader über die PHP-Konfiguration ein:
sudo vim /etc/php.ini
Fügen Sie dann eine Zeile in der Datei hinzu, um den ionCube-Loader einzuschließen. Es kann sich an einer beliebigen Stelle in der Datei unter [PHP]
befinden Zeile:
zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_7.2.so
Speichern Sie die Datei und starten Sie PHP-FPM neu:
sudo systemctl restart php-fpm.service
Schritt 3 – MariaDB installieren und eine Datenbank für Shopware erstellen
MariaDB-Datenbankserver installieren:
sudo dnf install -y mariadb-server
Überprüfen Sie die MariaDB-Version:
mysql --version
# mysql Ver 15.1 Distrib 10.2.23-MariaDB, for Linux (x86_64) using readline 5.1
Starten und aktivieren Sie den MariaDB-Dienst:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Führen Sie mysql_secure installation
aus Skript zur Verbesserung der MariaDB-Sicherheit und zum Festlegen des Passworts für MariaDB root
Benutzer:
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
Stellen Sie als Root-Benutzer eine Verbindung zur MariaDB-Shell her:
sudo mysql -u root -p
# Enter password
Erstellen Sie eine leere MariaDB-Datenbank und einen Benutzer für Shopware und merken Sie sich die Anmeldeinformationen:
mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
Beenden Sie MariaDB:
mysql> exit
Ersetzen Sie dbname
, username
und password
mit Ihren eigenen Namen.
Schritt 4 – Acme.sh-Client installieren und Let's Encrypt-Zertifikat abrufen (optional)
Das Sichern Ihrer Website mit HTTPS ist nicht erforderlich, aber es ist eine bewährte Methode, den Datenverkehr 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 Abrufen 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 [email protected]
source ~/.bashrc
cd ~
Überprüfen Sie die acme.sh-Version:
acme.sh --version
# v2.8.1
Fordern Sie RSA an und ECC/ECDSA Zertifikate für Ihre Domain/Ihren Hostnamen:
# 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 möchten, können Sie --staging
hinzufügen Flag zu den obigen Befehlen.
Nachdem Sie die obigen Befehle ausgeführt haben, werden Ihre Zertifikate und Schlüssel wird sein in:
- Für RSA :
/home/username/example.com
Verzeichnis. - Für ECC/ECDSA :
/home/username/example.com_ecc
Verzeichnis.
Um Ihre ausgestellten Zertifikate aufzulisten, können Sie Folgendes ausführen:
acme.sh --list
Erstellen Sie ein Verzeichnis, um Ihre Zertifikate zu speichern. Wir verwenden ein Verzeichnis /etc/letsencrypt.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Installieren/kopieren Sie Zertifikate in das /etc/letsencrypt-Verzeichnis.
# 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 alle 60 Tage automatisch erneuert.
Nachdem Sie die Zertifikate erhalten haben, beenden Sie den Root-Benutzer und kehren Sie zum normalen sudo-Benutzer zurück:
exit
Schritt 5 – NGINX installieren und konfigurieren
Installieren Sie den NGINX-Webserver:
sudo dnf install -y nginx
Überprüfen Sie die NGINX-Version:
nginx -v
# nginx version: nginx/1.14.2
Starten und aktivieren Sie den NGINX-Dienst:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Konfigurieren Sie NGINX für Shopware. Führen Sie sudo vim /etc/nginx/conf.d/shopware.conf
aus und 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 fastcgi.conf;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
}
Überprüfen Sie die NGINX-Konfiguration auf Syntaxfehler:
sudo nginx -t
NGINX-Dienst neu laden:
sudo systemctl reload nginx.service
Schritt 6 – Shopware installieren
Erstellen Sie ein Dokumenten-Root-Verzeichnis für Shopware:
sudo mkdir -p /var/www/shopware
Ändern Sie den Besitz von /var/www/shopware
Verzeichnis zu {your_user}. Ersetzen Sie {Ihr_Benutzer} durch den Benutzernamen des Benutzers, bei dem Sie derzeit angemeldet sind:
sudo chown -R {your_user}:{your_user} /var/www/shopware
Navigieren Sie zum Stammverzeichnis des Dokuments:
cd /var/www/shopware
Laden Sie die neuste Shopware-Version über wget herunter und entpacken Sie sie:
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: Download-URL aktualisieren, falls es eine neuere Version gibt.
Ändern Sie den Besitz von /var/www/shopware
Verzeichnis zu nginx
.
sudo chown -R nginx:nginx /var/www/shopware
Führen Sie sudo vim /etc/php-fpm.d/www.conf
aus und setzen Sie den Benutzer und die Gruppe auf nginx
. Anfangs sind sie auf apache:
eingestellt
sudo vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx
Erstellen Sie /var/lib/php/session/
Verzeichnis und ändern Sie den Besitz zu nginx
.
sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php/session
Erhöhen Sie memory_limit = 256M
und upload_max_filesize = 6M
, und setzen Sie allow_url_fopen = On
falls nicht bereits in /etc/php/7.2/fpm/php.ini
festgelegt Datei.
sudo vim /etc/php.ini
Nachdem Sie Änderungen in /etc/php.ini
vorgenommen haben Datei, laden Sie php-fpm.service:
neu
sudo systemctl reload php-fpm.service
Öffnen Sie Ihre Domain/IP im Webbrowser und folgen Sie dem Installationsassistenten. Das Backend von Shopware befindet sich unter /backend
Beispiel: http://example.com/backend
.
Schritt 7 – Schließen Sie die Einrichtung von Shopware ab
Wählen Sie zunächst die Sprache aus und klicken Sie auf Weiter:
Stellen Sie als Nächstes sicher, dass Sie alle Shopware-Anforderungen erfüllen:
Stimmen Sie den AGB von Shopware zu und klicken Sie auf Weiter:
Geben Sie die Datenbankanmeldeinformationen ein und klicken Sie auf Weiter:
Starten Sie die Installation, um Datenbanktabellen zu erstellen:
Danach sehen Sie eine Meldung über den erfolgreichen Datenbankimport:
Wählen Sie eine Lizenz aus und klicken Sie auf Weiter:
Geben Sie einige grundlegende Einstellungen ein, um die Einrichtung abzuschließen, und klicken Sie auf Weiter:
Die Installation ist abgeschlossen.
Um auf den Admin-Bereich zuzugreifen, hängen Sie /backend an Ihre URL an.
Sie haben Shopware erfolgreich installiert. Viel Spaß mit Ihrem neuen Online-Shop!
Links
- https://de.shopware.com/
- https://github.com/shopware/shopware