Staging Umgebung – Was ist das und warum brauchst du eine?

Staging Umgebung – Was ist das und warum brauchst du eine?

Ewald Gering 14. September 2016 18

In diesem Beitrag erklären wir dir, warum du unserer Ansicht nach unbedingt eine Testumgebung für deinen Onlineshop brauchst und wie du sie in Shopware 5 ganz einfach einrichten kannst.

Was ist Staging und was bringt es dir?

Staging bedeutet z.B. einen Onlineshop in ein Unterverzeichnis zu kopieren um dort Veränderungen und Tests durchzuführen.

Also ein Staging Bereich in dem man alles sicher und in Ruhe testen kann.
Anschließend wird daraus der neue bessere Onlineshop!

Aber warum Online und nicht Lokal?

Weil eine live Demo einfach realer und für viele einfacher zu testen ist.

UPDATE:
Das ganze kann auch als Plugin im Shopware Store gekauft werden:
Staging Umgebung Plugin

Die Schritte um einen Staging Bereich einzurichten

  1. Unterordner z.B. „staging“ erstellen
  2. Shopware in den Unterordner kopieren
  3. Cache Ordner leeren
  4. Die Datenbank kopieren
  5. Konfiguration des Staging Shops
  6. Neue Plugins, Templates etc. ausprobieren

Zuerst stellen wir uns die Frage: Was brauchen wir eigentlich?

Zugang zu:

  • FTP
  • Datenbank
  • Shopware Backend
  • SSH

Der erste Schritt:

  • Über das Terminal eine SSH Verbindung zum Server aufbauen (Wir nutzen das Terminal von OS X)
ssh username@server

Bsp. ssh root@192.168.1.1

Die Frage "Are you sure you want to continue connecting (yes/no)?"

Beantworten wir mit yes.

Dann wollen wir einen neuen Unterordner erstellen.

mkdir staging

Jetzt noch den aktuellen Shop in unseren neuen Staging Ordner kopieren. (Mit diesem Befehl kopieren wir alles in den Staging Ordner)

cp -r * staging/

Schon aufgefallen? Wir haben den Ordner "staging" in den neuen Ordner "staging" kopiert. Der kann aber weg, also:

rm -r staging/staging

Das ist erledigt. Nun wollen wir in den Ordner rein.

cd staging
cd var
cd cache

Der alte Shop hat einen Cache gespeichert, den wir noch löschen müssen. Den finden wir im Pfad /var/cache.
Alle Ordner die mit "production_" anfangen müssen wir löschen.

rm -r production_*

shopware cache ordner löschen

Ein weiterer Schritt ist unsere Daten aus der Datenbank ebenfalls mitzukopieren. Hier nutzen wir eine MySQL Datenbank.

Der erste Schritt hierbei ist die Datenbank aus unserem Shop zu exportieren mit dem Befehl:

mysqldump -u username -h host_address -p database_name > Name_des_Exports.sql

Bsp.: mysqldump -u root -h localhost -p shopwaredb526 > Exportsw526.sql

Die neue Datenbank (mit dem neuen Namen für das Staging) muss jetzt wieder gefüllt werden und zwar so:

mysql -u username -h host_address -p database_name < Name_des_Imports.sql

Bsp.: mysql -u root -h localhost -p shopwaredb526_staging < Exportsw526.sql

Hat das alles geklappt? Wir überprüfen sicherheitshalber ob alles erstellt wurde.

mysql -u username - p

MySQL Passwort eingeben

mysql> SHOW DATABASES;
mysql> USE shopwaredb526_staging;
mysql> SHOW TABLES;

Jetzt sollten uns die Tabellen der Datenbank angezeigt werden (Bei Shopware 5.2.6 sind es 233 Tabellen).

mysql tabellen anzeigen

Damit können wir MySQL schließen.

mysql> exit

Dann ist der Shop doch schon fertig kopiert? JA!, aber das ist nicht alles... denn der neue Shop muss noch auf die erstellte Datenbank konfiguriert werden, denn sonst würde der neue Staging-Shop die Datenbank unseres Hauptshops nutzen.

Hier nutzen wir einfachen FTP Zugang über Cyberduck (Man kann natürlich auch das Terminal nutzen).
Dort sollte im Hauptpfad die config.php sichtbar sein.

Diese öffnen wir und gucken die Daten für die Datenbank an. Da müssen die Zugangsdaten der neuen Datenbank rein.

shopware_datenbank_config_ändern

Die Datenbank muss aber noch ein wenig angepasst werden.
Man kann hier wieder das Terminal nutzen oder Tools wie phpMyAdmin nutzen.
Jetzt muss unsere Staging Datenbank ausgewählt werden und nach der Tabelle "s_core_shops" gesucht werden.

Nun sieht man den aktuellen Shop, sowie Subshops... wir suchen die Spalte "base_path" und tragen dort den Wert "/staging" ein.
Damit wird der Hauptpfad des Shops mit "/staging" ergänzt.
Danke nochmal ein Danke an Thorsten Greiner für die Information.

Da es ein Staging Shop ist, soll nicht jeder darauf zugreifen können.
Es gibt mehrere Möglichkeiten den Shop für unbefugte zu sperren, das einfachste ist wahrscheinlich im Backend den Shop unter den Grundeinstellungen in den Wartungsmodus zu setzen.
Wer möchte, dass die ganze Webseite nicht sichtbar ist kann ein .htaccess Schutz anlegen.

Nur noch die Staging Webseite öffnen und die Tests sicher im Staging Shop durchführen und bei Erfolg auf dem Hauptshop bearbeiten.

Hol dir unseren kostenlosen E-Mail-Kurs:

Lerne wie du deinen eigenen Shopware 5 
Shop erstellst und verwaltest

18 Kommentare

  • Ich bin eure Anleitung Schritt für Schritt durchgegangen, allerdings läd beim aufruf von domain.de/staging lediglich die Startseite des Shops. Alle Verweise danach gehen auf den Live-Shop. Auch das Backend, welches über domain.de/staging/backend ja aufrufbar sein müsste, kann ich nicht aufrufen.

    Woran könnte das liegen?
  • Hey Justus,

    hast du einen nginx Webserver? Dort musst du die Konfiguration fuer das Unterverzeichnis angeben, bzw. hinzufuegen.

    Viele Grueße
    Ewald
  • Hi Ewald,
    wir nutzen bereits Euer Plugin zum Betrieb eines Staging-Systems.
    Ich bin mir nur nicht ganz sicher, wie ich Plugins sicher und isoliert im Staging installiere.
    Reicht es, dass die Installation im Backend des Stagingsystems ausgeführt wird?
    Zur Durchführung der Installation muss man sich ja mit derShopware-ID anmelden und ich bin mir nicht sicher ob das Plugin da nicht doch im Livesystem landet.
    Hatte gehofft die Auflösung unter Punkt 6 Deines Beitrags zu finden :-)

    Viele Grüße,
    Dennis
  • Hey Dennis,

    du kannst das Plugin ganz normal kaufen und dann im Staging im Plugin Manager unter Mein Einkäufe herunterladen und installieren, testen etc.

    Die Staging ist ja praktisch ein eigenständiger Shop ist somit unabhängig vom Live Shop.

    Viele Grüße
    Ewald
  • Habe nochmal geprüft:
    cp -r !(staging|production_*) staging/

    ist keine gute Idee da es andere Files mit dem Muster production_* gibt.
  • Hey tducc,

    vielen Dank für deinen Input! Wäre zwar ein Befehl weniger, aber den Cache zu leeren ist ja zum Glück nicht ganz so schwer :)

    Viele Grüße
    Ewald
  • Man kann den Kopiervorgang abkürzen in dem man direct den Staging Ordner und den Production-Cache ignoriert

    cp -r !(_staging) _staging/

    oder wenn man ganz mutig ist auch

    cp -r !(staging|production_*) staging/



  • Hi Ewald, danke für den super Eintrag!
    Ich habe versucht die ganzen Schritte so durchzuführen. Leider bricht er bei mir während des Kopiervorgangs ab und gibt die Fehlermeldung, dass er den Ordner staging nicht in staging kopieren kann. Hast du hierzu einen Hinweis?

    Danke und Gruß
  • Hey Fabian,

    eigentlich sollte er beim kopieren trotz der Warnung fortfahren.

    Ansonsten kannst du das Kopieren über rsync probieren: 'rsync -avz --exclude 'staging' . staging/'

    Viele Grüße
    Ewald
  • Wie mache ich es denn, wenn ich das Staging in einer Subdomain, oder auf einem anderen Server laufen lassen möchte. Muss ich dann bei Shopware eine neuen Shop mit der entsprechenden Domain registrieren, oder gibt es so etwas wie eine Entwicklungsdomain, die man registrieren kann?
  • Hallo Dirk,

    alles was nicht unter der Domain des Shops läuft, wird als anderer Shop gewertet. Deswegen erstellen wir die Staging Umgebung in einem Unterordner, da hier die gleiche Domain genutzt wird.
    Eine Subdomain ist somit wieder ein eigener Shop.
    Den Staging Shop muss man also auf dem selben Server wie den Hauptshop laufen lassen.

    Viele Grüße,
    Ewald
  • Hallo, mit dem Mac-Terminal Zugriff auf die Server Dateien zu bekommen ist mir bisher nicht bekannt gewesen.
    Ich habe immer Daten vom Server kopiert, neues Verzeichnis angelegt. Daten wieder hochgeladen. Datenbank exportiert. Neue Datenbank erstellt, Daten importiert. Konfiguration geändert.
    Das mit dem Terminal hört sich jedenfalls eleganter an. Danke für die Anregung.
    Ändert Ihr dann auch über das Terminal die Dateien auf dem Server? Habe ich auch immer über Download/Upload gemacht.
  • Hallo Dirk,

    zum bearbeiten von größeren Dateien nutze ich den Atom Editor. Wenn man eine kleine Datei ändern möchte ist ein Editor wie https://de.wikipedia.org/wiki/Vim über das Terminal sehr praktisch.
    Das kopieren über ssh ist vor allem nützlich wenn man eine nicht so gute Verbindung hat und der Download bzw. Upload sehr lange dauern kann.

    Viele Grüße,
    Ewald

Was denkst du?

Das Shopware eBook für Einsteiger!

shopware tutorial ebook mockup
Ausführliche Schritt für Schritt Anleitungen, Tipps & Tricks für alle, die gerne am eigenen Shopware Shop basteln.
Jetzt kaufen

Hol dir 

wertvolle Tipps 
für deinen
Shopware Shop

Wir zeigen dir, wie du deinen
Shopware 5 Shop optimieren
kannst.


Trage einfach deine
E-Mail Adresse ein:

Beliebt

Was du über die Shopware 5 Theme Struktur wissen musst und wie du ein eigenes Template erstellst
Shopware 5.3 - Wichtige Neuerungen auf einen Blick
Plugin Theme Struktur überschreiben und Plugins individuell anpassen
Logo Größe anpassen mit Less für Shopware 5
Theme: Eigenes Listing Layout erstellen
Wie du jedes Icon in Shopware 5 anpassen kannst
Wie Cronjobs bei Shopware funktionieren und wie du sie richtig einstellst
Shopware 5 - Wie du deine Shop Geschwindigkeit optimierst
4 Gründe warum du Shopware 5 lokal mit MAMP installieren solltest und wie du das anstellst
Vorsicht Shopware Update! Was du beim Updaten beachten musst
© 2017 by 8mylez. Powered by Goltfisch GmbH.