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 32

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 Shopware E-Mail-Kurs:

Lerne wie du deinen eigenen Shopware 5 
Shop erstellst und verwaltest

32 Kommentare

  • Super :) !
    Ich bin im übrigen über denselben "Fehler" mit dem Backend gestolpert !

    Und falls hier nich so ein Newbie wie ich rumstolpert:
    Bei mit wurde die .htaccess nicht mit kopiert!
    Also drauf achten, das auch die .htaccess ins staging-Verzeichnis mit kopiert wird
    und in *dieser* Kopie die Zeile anpassen

    #RewriteBase /shopware/ --> #RewriteBase /shopware/staging/

  • Hey Werner,

    eventuell ist das Systemabhängig ob die Dateien mit . am Anfang kopiert werden. Der Eintrag in der .htaccess bei dir ist allerdings durch die # auskommentiert und dürfte keine Auswirkung haben.

    Viele Grüße
    Ewald
  • Hallo!
    Danke für das Tutorial! Nur eine Anmerkung: ACHTUNG: Zumindest bei Shopware 5.4.6 funktioniert das für mich nur, wenn NICHT DER ORDNER, sondern NUR DER INHALT des Ordners "production" geleert wird!
    Liebe Grüße aus Wien
    Sel4
  • Hey Sel4,

    vielen Dank für die Info. Wir prüfen das ganze mal auch bei uns nach.

    Viele Grüße
    Ewald
  • Hallo Ewald,
    vielen Dank für das gute Tutorial. Wie würde man denn vorgehen, wenn man den Shop aus der Stagingumgebung in die Liveumgebung einspielen möchte?

    Nehmen wir an ich entwickle ein neues Design in der Stagingumgebung inkl. EK-Welten und möchte das dann auf das Live-System kopieren? EK-Welten werden ja in der DB gespeichert.
    Vielen Dank
  • Hey Johannes,

    automatisiert ist das ganze sehr Aufwändig. Du kannst das Theme herunterladen und auf Live hochladen. Die Einkaufswelten kann man ab ich glaube der Version 5.3 exportieren und importieren. Anders gestaltet sich das schwierig.

    Ich hoffe das hilft dir :)

    Viele Grüße
    Ewald
  • Hat alles soweit geklappt, nur kann ich mich dann nicht mehr in die Staging Seite ins Backend einloggen. Es kommt dann folgende Fehlermeldung:
    Ups! Ein Fehler ist aufgetreten!
    Die nachfolgenden Hinweise sollten Ihnen weiterhelfen.
    Controller "staging" not found in engine/Library/Enlight/Controller/Dispatcher/Default.php on line 488
  • Hey Mario,

    falls du einen Nginx Server hast, musst die diesem Verzeichnis eine Konfiguration für Shopware zuweisen. Bei Apache Servern kann es sein, dass die RewriteBase in der .htaccess Datei gesetzt ist. Dieser müsste dann mit einem /staging angepasst werden.

    Viele Grüße
    Ewald
  • Hallo,
    kannst du mir auch sagen was in die .htacces eingetragen gehört, damit der Ordner /staging funktioniert?
  • Hey Mario,

    die RewriteBase muss mit einem /staging ergänzt werden z.B. RewriteBase /shopware/staging oder RewriteBase /staging/
  • Hallo zusammen,

    erst mal danke für das tolle tutorial. Hab aber ein problem und zwar geht das staging aber das aufrufen von .de/staging/backend/ bringt mich immer wieder zur normalen installation. Jemand das gleiche Problem? :/

    viele grüße
    sven
  • Hey sven,

    falls du einen Nginx Server hast, musst die diesem Verzeichnis eine Konfiguration für Shopware zuweisen. Bei Apache Servern kann es sein, dass die RewriteBase in der .htaccess Datei gesetzt ist. Dieser müsste dann mit einem /staging angepasst werden.

    Viele Grüße
    Ewald
  • 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
  • Hallo,

    danke zunächst für diese Anleitung. Leider habe ich denselben Fehler wie Justus und den fehlerhaften Verweisen. Wir nutzen keinen NGINX Server. Irgendwelche Ideen woran das liegen könnte?

  • Hey ES,

    wurden Anpassungen an der .htaccess Datei vorgenommen? Eventuell stimmen durch diese die Pfade nicht mehr.

    Viele Grüß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?

Shopware SEO
Guide 2018

shopware seo guide

Genug von schlechten Rankings?

mehr erfahren

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
Die größten Fehler bei der Entwicklung eines Shopware 5 Themes
Logo Größe anpassen mit Less für Shopware 5
Theme: Eigenes Listing Layout erstellen
Plugin Theme anpassen
Wie du jedes Icon in Shopware 5 anpassen kannst
Theme Entwicklung: Hugo Boss Header zum Selbermachen
Staging Umgebung – Was ist das und warum brauchst du eine?
Shopware Logo aus dem Footer entfernen
Social Media Icon mit Link im Footer
© 2017 by 8mylez. Powered by Goltfisch GmbH.