Zum Inhalt springen

Shopware 6 unter Debian 12 installieren

Hallo und herzlich willkommen zu diesem Tutorial. Hier zeige ich dir, wie du Shopware 6 unter Debian 12 installieren und konfigurieren kannst. Außerdem gehen ich auf die ersten Schritte nach der Installation ein.

Vorbereitungen

Installation der Abhängigkeiten

Im ersten Schritt werden die Abhängigkeiten von Shopware installiert. Hierfür wird außerdem ein neues Repository für PHP 8.1 hinzugefügt:

apt-get install ca-certificates software-properties-common apt-transport-https lsb-release curl -y

curl -sSL https://packages.sury.org/php/README.txt | bash -x

apt-get update && apt-get upgrade

apt-get install apache2 php8.1 php8.1-cli php8.1-common php8.1-mysql php8.1-curl php8.1-zip php8.1-gd php8.1-xml php8.1-mbstring php8.1-opcache php8.1-intl libapache2-mod-php php-mysql sudo -y

Konfiguration Apache2

Nach der Installation von Apache2 werden die Modifikationen rewrite und (optional) ssl aktiviert. Nach der Aktivierung erfolgt ein Neustart des Services. Außerdem wird eine entsprechende Site für Shopware angelegt. Diese kann mit einem SSL Zertifikat oder ohne erstellt werden. Beide Konfigurationen siehst du weiter unten. In meinem Fall konfiguriere ich den Server mittels SSL Zertifikat und lasse diesen nur unter Port 443 laufen:

sudo a2enmod rewrite
sudo a2enmod ssl
systemctl restart apache2

Um zu verifizieren, dass der Server korrekt läuft, kann der nachfolgende Befehl genutzt werden:

systemctl status apache2

Im Anschluss wird die besagte Site unter /etc/apache2/sites-available/ erstellt. Die Konfigurationsdatei kannst du natürlich nach belieben umbenennen. In meinem Fall nenne ich die Datei wie den Hostname des Servers:

cd /etc/apache2/sites-available/
vi 001-websrv3.conf

ohne SSL

<VirtualHost *:80>
 ServerName "WEBSRV3.lan"
 DocumentRoot /var/www/shopware

 <Directory /var/www/shopware>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
 </Directory>

 ErrorLog ${APACHE_LOG_DIR}/shopware-platform.error.log
 CustomLog ${APACHE_LOG_DIR}/shopware-platform.access.log combined
 LogLevel debug
</VirtualHost>

mit SSL

Um SSL nutzen zu können, müssen das Zertifikat, der private Key und die Zertifikatskette inkl. Sub- und RootCA unter folgendem Pfad gespeichert werden. Wie ein solchen Zertifikat erstellt werden kann, habe ich bereits hier gezeigt.

Der Pfad kann natürlich abgeändert werden, allerdings muss dann die nachfolgende Konfiguration ebenfalls angepasst werden:

<VirtualHost *:443>
 ServerName "WEBSRV3.lan"
 DocumentRoot /var/www/shopware

 SSLCertificateFile /etc/ssl/private/websrv3.crt
 SSLCertificateKeyFile /etc/ssl/private/websrv3.key
 SSLCertificateChainFile /etc/ssl/private/ca.crt

 <Directory /var/www/shopware>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
 </Directory>

 ErrorLog ${APACHE_LOG_DIR}/shopware-platform.error.log
 CustomLog ${APACHE_LOG_DIR}/shopware-platform.access.log combined
 LogLevel debug
</VirtualHost>

Nun kann die Site 001-websrv3.conf aktiviert und die Standardsite 000-default.conf für den weiteren Verlauf deaktiviert werden. Im Anschluss wird Apache2 neu geladen:

sudo a2ensite 001-websrv3.conf
sudo a2dissite 000-default.conf
systemctl reload apache2

Konfiguration PHP

Shopware 6 fordert die Konfiguration der Werte memory_limit und opcache.memory_limit. Beide Werte können in der Konfigurationsdatei von PHP eingestellt werden:

vi /etc/php/8.1/apache2/php.ini

Folgende Werte müssen eingestellt werden:

memory_limit = 512M
opcache.memory_consumption=256

Erstellen einer Datenbank

Um Shopware installieren zu können, wird eine MySQL bzw. MariaDB Datenbank vorausgesetzt. In meinem Fall erstelle ich die Datenbank unter meinem separaten Datenbankserver. Der Server kann auch auf dem Shopware Server selbst installiert werden. Über die Installation eines Datenbankservers gehe ich nachfolgend nur kurz ein.

Der folgende Schritt muss nur gemacht werden, sollte noch keine Datenbankserver vorhanden sein:

apt-get install mariadb-server
sudo mysql_secure_installation

Nachdem der Server installiert und abgesichert wurde, kann mittels folgendem Befehl auf diesem zugegriffen werden:

mysql -uroot -p

Im Anschluss wird eine neue Datenbank, inkl. Nutzer erstellt. Außerdem wird dem neu erstelltem Benutzer alle Rechte der neu angelegten Datenbank gegeben:

CREATE DATABASE WEBSRV3;
CREATE USER 'websrv3'@'10.10.2.35' IDENTIFIED BY 'password1';
GRANT ALL PRIVILEGES ON WEBSRV3.* TO 'websrv3'@'10.10.2.35';
FLUSH PRIVILEGES;

Der Nutzername ‘websrv3’@’10.10.2.35’ kann wieder frei gewählt werden. Die IP-Adresse hinter dem Nutzernamen gibt an, unter welcher IP-Adresse sich dieser Nutzer einloggen darf. In meinem Fall hat der SQL-Server die IP-Adresse 10.10.2.26 und der WEBSRV3, unter welchem die Shopware 6 Installation gehostet werden soll, die IP-Asdresse 10.10.2.35. Solltest du dich entscheiden, den Datenbank Server auf dem Shopware Webserver laufen zu lassen, kann die IP-Adresse durch localhost ersetzt werden.

Installation Shopware

Nun kann ein neues Verzeichnis für Shopware erstellt werden. Außerdem wird das Verzeichnis für den Nutzer www-data berechtigt und ein Installationsscript von Shopware 6 wird heruntergeladen:

mkdir /var/www/shopware/
chown -R www-data:www-data /var/www/shopware/
cd /var/www/shopware/
wget https://github.com/shopware/web-recovery/releases/latest/download/shopware-installer.phar.php

Nun kann die Webseite unter der IP-Adresse des Webservers und dem entsprechenden Port (SSL – 443, ohne SSL – 80) aufgerufen werden. In meinem Fall lautet die URL also: https://10.10.2.35/shopware-installer.phar.php

Die Installation von Shopware kann nun durchgearbeitet werden.

Nachdem die Shopware Instanz heruntergeladen und sich die URL zu https://10.10.2.35/public… geändert hat, muss das DocumentRoot Verzeichnis der Site angepasst werden. Hierfür muss wieder die Datei 001-websrv3.conf geöffnet werden. Der folgende Wert wird angepasst: DocumentRoot:

vi /etc/apache2/sites-available/001-websrv3.conf

DocumentRoot /var/www/shopware/<strong>public</strong>

Im nächsten Schritt wird der Apache2 Dienst wieder neu geladen und die Webseite erneut aufgerufen. Es sollte sich nun der Konfigurationsassistent von Shopware öffnen. Hier müssen die AGB akzeptiert und die Datenbankinformationen eingegeben werden.

Nun kann die Shopware Installation nach belieben Konfiguriert werden.

Schlusswort

Herzlichen Glückwunsch! Hiermit hast du eine voll Funktionsfähige Shopware 6 Installation bereitgestellt. Im Anschluss bleibt dir nur noch, den Server entsprechend abzusichern und bei Bedarf, die Konfiguration des Reverseproxy-Servers durchzuführen. Viel Spaß!