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 11

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

11 Kommentare

  • 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" rel="nofollow">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!

Ausführliche Schritt für Schritt Anleitungen, Tipps & Tricks für alle, die gerne am eigenen Shopware Shop basteln.Zum 8mylez Store

Hol dir unseren kostenlosen E-Mail-Kurs:

Lerne wie du deinen eigenen Shopware 5 Shop erstellst und verwaltest

Beliebt

Was du über die Shopware 5 Theme Struktur wissen musst und wie du ein erstes eigenes Theme erstellst
Plugin Theme Struktur überschreiben und Plugins individuell anpassen
Logo Größe anpassen mit Less für Shopware 5
4 Gründe warum du Shopware 5 lokal mit MAMP installieren solltest und wie du das anstellst
Wie du jedes Icon in Shopware 5 anpassen kannst
Wie du deine Shop Geschwindigkeit optimierst
Plugin: Einkaufswelt Element Kategorie-Teaser mit eleganten Mouseover Effekten
Social Media Icon mit Link im Footer
Shopware Logo aus dem Footer entfernen
Shopware 5 Theme Entwicklung mit Grunt

8mylez gehört zu

© 2016-2017