Knowledge Base Guide

So erstellen Sie eine PrestaShop-Staging-Seite

Komplette Anleitung zur Einrichtung einer PrestaShop Staging-Umgebung — Docker, Shared Hosting und lokale Entwicklung. Testen Sie Updates sicher vor dem Go-Live.

Warum Sie eine Staging-Seite brauchen

Jeder PrestaShop-Shopbetreiber steht irgendwann vor demselben Dilemma: Sie müssen ein Modul aktualisieren, Ihr Theme ändern oder eine neue Funktion testen — aber wenn Sie das auf Ihrem Live-Shop machen, riskieren Sie, etwas zu beschädigen, worauf Ihre Kunden angewiesen sind. Eine Staging-Seite löst dieses Problem, indem sie Ihnen eine identische Kopie Ihres Shops zur Verfügung stellt, auf der Sie ohne Konseqünzen frei testen können.

Wenn Sie schon einmal ein Modul aktualisiert haben und dabei zugesehen haben, wie Ihre Startseite zusammenbrach, oder ein neues Theme installiert haben, nur um festzustellen, dass Ihr Checkout nicht mehr funktionierte — eine Staging-Umgebung hätte das erkannt, bevor es ein Kunde gesehen hätte.

Eine Staging-Seite ist kein Luxus — sie ist das absolute Minimum für den professionellen Betrieb eines E-Commerce-Shops. Die Kosten einer Stunde Ausfallzeit während des Spitzenverkehrs übersteigen bei Weitem den Aufwand für die Pflege einer Testumgebung.

Was genau ist eine Staging-Seite?

Eine Staging-Seite ist ein vollständiger Klon Ihres Produktiv-Shops — gleiche Datenbank, gleiche Dateien, gleiche Konfiguration — der unter einer separaten URL läuft, auf die nur Sie (und Ihr Team) zugreifen können. Sie sieht genauso aus und verhält sich genauso wie Ihr echter Shop, aber Kunden sehen sie nie.

Stellen Sie es sich wie eine Generalprobe vor. Sie testen alles zuerst auf der Staging-Seite, bestätigen, dass es funktioniert, und wenden dann dieselben Änderungen auf Ihren Live-Shop an.

Was eine Staging-Seite IST

  • Eine exakte Kopie der Dateien und der Datenbank Ihres Produktiv-Shops
  • Läuft auf einer separaten Domain oder Subdomain (z.B. staging.yourshop.com)
  • Passwortgeschützt oder IP-beschränkt, damit nur Ihr Team darauf zugreifen kann
  • Ein sicherer Ort zum Testen von Updates, neuen Modulen, Theme-Änderungen und PHP-Upgrades

Was eine Staging-Seite NICHT ist

  • Eine Entwicklungsumgebung zum Erstellen von benutzerdefiniertem Code von Grund auf (das ist eine Entwicklungsumgebung)
  • Eine Backup-Lösung (Backups sind separat — verlassen Sie sich nie auf Staging als einziges Backup)
  • Etwas, das man einmal einrichtet und dann vergisst — sie muss regelmäßig aus der Produktivumgebung aktualisiert werden

Option 1: Docker-basiertes Staging (empfohlen)

Docker ist bei Weitem die sauberste Methode, um eine PrestaShop-Staging-Umgebung zu betreiben. Es bietet Ihnen isolierte, reproduzierbare Umgebungen, die Sie in wenigen Minuten starten und wieder entfernen können. Dies ist das Verfahren, das wir intern für unsere gesamte Modulentwicklung und -tests verwenden.

Voraussetzungen

  • Ein Linux-Server oder VPS mit mindestens 2 GB RAM (4 GB empfohlen)
  • Docker und Docker Compose installiert
  • SSH-Zugang sowohl zu Ihrem Produktivserver als auch zu Ihrem Staging-Server
  • Grundlegende Vertrautheit mit der Kommandozeile

Schritt 1: Die Docker-Umgebung einrichten

Erstellen Sie ein Verzeichnis für Ihr Staging-Projekt und eine docker-compose.yml-Datei:

mkdir ~/staging-shop && cd ~/staging-shop

cat > docker-compose.yml <<'EOF'
version: '3.8'
services:
  prestashop:
    image: prestashop/prestashop:8.2
    container_name: staging-shop
    ports:
      - "8080:80"
    environment:
      - DB_SERVER=db
      - DB_NAME=prestashop
      - DB_USER=root
      - DB_PASSWD=your_secure_password
    volumes:
      - ./html:/var/www/html
    depends_on:
      - db
    restart: unless-stopped

  db:
    image: mysql:5.7
    container_name: staging-shop-db
    environment:
      - MYSQL_ROOT_PASSWORD=your_secure_password
      - MYSQL_DATABASE=prestashop
    volumes:
      - ./mysql:/var/lib/mysql
    restart: unless-stopped
EOF

Wichtig: Passen Sie die PrestaShop-Image-Version an Ihre Produktivversion an. Wenn Sie PS 1.7.8 verwenden, nutzen Sie prestashop/prestashop:1.7.8. Bei PS 8.1 verwenden Sie prestashop/prestashop:8.1.

Schritt 2: Ihre Produktivdatenbank exportieren

Verbinden Sie sich per SSH mit Ihrem Produktivserver und erstellen Sie einen Datenbank-Dump:

# On your production server
mysqldump -u root -p prestashop > ~/prestashop_backup.sql

# Download to your local machine / staging server
scp user@production-server:~/prestashop_backup.sql ./

Schritt 3: In die Staging-Umgebung importieren

# Start the containers
docker compose up -d

# Wait ~30 seconds for MySQL to initialize, then import
docker exec -i staging-shop-db mysql -u root -pyour_secure_password prestashop < prestashop_backup.sql

Schritt 4: Produktivdateien kopieren

# Sync your production files to the staging html directory
rsync -avz --delete \
  user@production-server:/var/www/html/ \
  ./html/ \
  --exclude='var/cache/*' \
  --exclude='var/logs/*' \
  --exclude='app/config/parameters.php'

Schritt 5: Konfiguration aktualisieren

Aktualisieren Sie nach dem Import die Shop-URL in der Datenbank, damit sie auf Ihre Staging-Domain verweist:

docker exec -i staging-shop-db mysql -u root -pyour_secure_password prestashop -e "
  UPDATE ps_shop_url SET domain='staging.yourshop.com', domain_ssl='staging.yourshop.com' WHERE id_shop=1;
  UPDATE ps_configuration SET value='staging.yourshop.com' WHERE name IN ('PS_SHOP_DOMAIN','PS_SHOP_DOMAIN_SSL');
"

Aktualisieren Sie dann html/app/config/parameters.php mit den Staging-Datenbankzugangsdaten (passend zu Ihrer docker-compose.yml).

Leeren Sie abschließend den Cache:

docker exec staging-shop rm -rf /var/www/html/var/cache/*

Option 2: Subdomain auf Shared Hosting

Wenn Sie Shared Hosting nutzen (cPanel, Plesk, DirectAdmin), steht Docker nicht zur Verfügung. Stattdessen erstellen Sie eine Subdomain mit eigenem Dokumentenstammverzeichnis und eigener Datenbank.

Schritt 1: Die Subdomain erstellen

In Ihrem Hosting-Panel:

  1. Gehen Sie zu Subdomains oder Domains
  2. Erstellen Sie staging.yourshop.com
  3. Verweisen Sie diese auf ein neues Verzeichnis, z.B. /home/user/staging.yourshop.com

Schritt 2: Eine neue Datenbank erstellen

In Ihrem Hosting-Panel:

  1. Gehen Sie zu MySQL Databases
  2. Erstellen Sie eine neue Datenbank (z.B. user_staging)
  3. Erstellen oder weisen Sie einen Benutzer mit vollen Rechten für diese Datenbank zu

Schritt 3: Dateien kopieren

Verwenden Sie SSH oder den Dateimanager, um Ihre gesamte PrestaShop-Installation in das Staging-Verzeichnis zu kopieren. Wenn Sie SSH haben:

cp -r /home/user/public_html/* /home/user/staging.yourshop.com/

Schritt 4: Datenbank exportieren und importieren

# Export production
mysqldump -u user -p production_db > ~/staging_import.sql

# Import to staging
mysql -u user -p staging_db < ~/staging_import.sql

Schritt 5: Konfiguration aktualisieren

Bearbeiten Sie app/config/parameters.php (oder config/settings.inc.php bei PS 1.6), damit die Staging-Datenbank verwendet wird. Aktualisieren Sie die Shop-URLs in der Datenbank wie in Option 1, Schritt 5 beschrieben.

Option 3: Lokale Entwicklung mit XAMPP/MAMP

Für schnelle lokale Tests funktionieren XAMPP (Windows/Linux) oder MAMP (macOS) gut. Der Ablauf ist ähnlich wie beim Shared Hosting — Datenbank erstellen, Dateien kopieren, Dump importieren, Konfiguration anpassen. Dies ist am schnellsten für Einzelentwickler, die nur ein Modul schnell testen müssen.

Der Nachteil ist, dass Ihre lokale Umgebung von der Produktivumgebung abweichen kann (andere PHP-Version, andere MySQL-Version, fehlende Erweiterungen). Führen Sie daher immer einen abschließenden Test auf einem serverbasierten Staging durch, bevor Sie in die Produktivumgebung deployen.

Wichtige Schritte nach der Einrichtung

Ausgehende E-Mails deaktivieren

Dies ist entscheidend. Ihre Staging-Seite enthält eine Kopie Ihrer Produktivdatenbank, was bedeutet, dass sie echte E-Mail-Adressen von Kunden enthält. Wenn Sie auf der Staging-Seite eine Bestellbestätigung oder ein Passwort-Zurücksetzen auslösen, gehen diese E-Mails an echte Kunden.

Gehen Sie zu Erweiterte Einstellungen → E-Mail und wählen Sie entweder:

  • Setzen Sie die E-Mail-Methode auf „Niemals E-Mails senden“ (am sichersten), oder
  • Leiten Sie alle ausgehenden E-Mails an eine Testadresse um, indem Sie ein Tool wie Mailtrap verwenden

Zahlungs-Gateways deaktivieren

Wenn Ihre Staging-Seite mit Live-Zahlungsanbietern (Stripe, PayPal) verbunden ist, deaktivieren Sie diese sofort. Sie möchten keine versehentlichen Belastungen auf echten Kreditkarten. Entweder:

  • Deaktivieren Sie alle Zahlungsmodule auf der Staging-Seite, oder
  • Schalten Sie sie in den Sandbox-/Testmodus

Suchmaschinen blockieren

Verhindern Sie, dass Ihre Staging-Seite von Suchmaschinen indexiert wird — doppelte Inhalte sind ein SEO-Albtraum:

  • Gehen Sie zu Shopeinstellungen → Traffic & SEO und deaktivieren Sie die Sitemap
  • Fügen Sie eine robots.txt hinzu, die alle Crawler blockiert: User-agent: * / Disallow: /
  • Noch besser: Beschränken Sie den Zugriff vollständig (siehe unten)

Zugriff beschränken

Ihre Staging-Seite sollte nicht öffentlich zugänglich sein. Optionen:

  • IP-Whitelist über .htaccess: Erlauben Sie nur Ihre Büro-/Heim-IP
  • HTTP Basic Auth: Fügen Sie eine Passwortabfrage über .htaccess hinzu
  • PrestaShop-Wartungsmodus: Aktivieren Sie ihn und setzen Sie Ihre IP auf die Whitelist unter Backoffice → Shopeinstellungen → Allgemein → Wartung

Wir empfehlen IP-Whitelisting in .htaccess als zuverlässigste Methode — der Wartungsmodus kann umgangen werden, und Basic Auth kollidiert manchmal mit Ajax-lastigen Modulen.

Staging synchron halten

Eine Staging-Seite ist nur nützlich, wenn sie Ihre aktuelle Produktivumgebung widerspiegelt. Aktualisieren Sie sie regelmäßig:

Wann aktualisieren

  • Vor jedem größeren Update (PrestaShop-Core-Upgrade, großes Modul-Update)
  • Mindestens monatlich, wenn Sie aktiv entwickeln
  • Nach wesentlichen Katalogänderungen (neue Kategorien, geänderte Produktstruktur)

Schnelles Aktualisierungsskript (Docker)

#!/bin/bash
# refresh-staging.sh — Pull latest production data into staging

# 1. Dump production DB
ssh production "mysqldump -u root -p'PASS' prestashop" > /tmp/staging_refresh.sql

# 2. Import to staging
docker exec -i staging-shop-db mysql -u root -p'your_secure_password' prestashop < /tmp/staging_refresh.sql

# 3. Fix URLs
docker exec -i staging-shop-db mysql -u root -p'your_secure_password' prestashop -e "
  UPDATE ps_shop_url SET domain='staging.yourshop.com', domain_ssl='staging.yourshop.com' WHERE id_shop=1;
  UPDATE ps_configuration SET value='staging.yourshop.com' WHERE name IN ('PS_SHOP_DOMAIN','PS_SHOP_DOMAIN_SSL');
"

# 4. Sync files
rsync -avz --delete production:/var/www/html/ ./html/ --exclude='var/cache/*' --exclude='app/config/parameters.php'

# 5. Clear cache
docker exec staging-shop rm -rf /var/www/html/var/cache/*

echo "Staging refreshed."

Häufige Fehler, die Sie vermeiden sollten

Produktiv-API-Schlüssel auf der Staging-Seite verwenden

Wenn Ihr Produktiv-Shop mit Stripe, PayPal, Versand-APIs oder anderen externen Diensten verbunden ist — befinden sich diese API-Schlüssel nun auch auf Ihrer Staging-Seite. Wechseln Sie auf Staging immer zu Sandbox-/Testschlüsseln, um Folgendes zu vermeiden:

  • Echte Kunden durch Testbestellungen belasten
  • Echte Versandaufträge an Spediteure senden
  • API-Ratenlimits erreichen, die Ihren Live-Shop beeinträchtigen

Vergessen, Cron-Jobs zu deaktivieren

Wenn Ihr Produktiv-Shop Cron-Jobs hat (Warenkorb-Erinnerungen, Lagerbestandssynchronisation, Feed-Generierung), könnten diese Crons auch auf der Staging-Seite laufen, wenn die URLs ähnlich sind. Deaktivieren oder kommentieren Sie alle Staging-bezogenen Cron-Einträge aus.

Testen mit dem Live-Shop in einem anderen Tab

Wenn Sie gleichzeitig im Backoffice Ihrer Staging- und Produktivumgebung im selben Browser angemeldet sind, können Cookies kollidieren. Verwenden Sie einen separaten Browser oder ein Inkognito-Fenster für die Staging-Seite.

Wann auf Staging testen vs. direkt in der Produktivumgebung

Immer zuerst auf Staging testenSicher direkt in der Produktivumgebung
PrestaShop-Core-UpdatesInhaltliche Änderungen (CMS-Seiten, Produktbeschreibungen)
Modulinstallationen oder größere UpdatesPreisanpassungen
Theme-Änderungen oder -UpgradesAktivieren/Deaktivieren vorhandener Module (wenn zuvor getestet)
PHP-Versions-UpgradesHinzufügen von Produkten oder Kategorien
Benutzerdefinierte Code-Änderungen oder OverridesÄndern von Versandkosten oder Steuerregeln
DatenbankmigrationenÜbersetzungs-Updates

Zusammenfassung

Die Einrichtung einer Staging-Seite dauert beim ersten Mal etwa eine Stunde. Die Aktualisierung dauert 5 Minuten, sobald Sie ein Skript haben. Die investierte Zeit rentiert sich bereits beim ersten Mal, wenn Sie eine fehlerhafte Änderung erkennen, bevor sie Ihre Kunden erreicht.

Docker ist der beste Ansatz, wenn Sie einen VPS oder dedizierten Server haben. Subdomain-Klonen funktioniert auf Shared Hosting. In jedem Fall — das Wichtigste ist, dass Sie etwas zwischen Ihren Code-Änderungen und Ihren Kunden haben.

Wenn Sie Hilfe bei der Einrichtung einer Staging-Umgebung speziell zum Testen unserer Module benötigen, schauen Sie sich unser Vor dem Kauf testen-Programm an — jedes Modul enthält eine voll funktionsfähige 30-Tage-Demo, die Sie auf Ihrer Staging-Seite installieren können, um sie vor dem Kauf zu testen.

More guides available

Browse our knowledge base for more practical PrestaShop tutorials, or reach out if you need help.

Loading...
Back to top