Dokumentation Testserver (Plugin für Shopware)

Link zum Plugin: http://bit.ly/netzperfekt-testserver

Mit diesem Plugin können Sie schnell, einfach und bequem beliebig viele Testumgebungen einrichten. Mit einer solchen Testumgebung können Sie gefahrlos Plugins oder Shopware-Updates testen oder Ihren Shop weiterentwickeln. Dabei bleibt Ihr Live-Shop unangetastet und kann nicht versehentlich durch eine fehlerhafte Programmierung oder ein fehlgeschlagenes Shopware-Update in Mitleidenschaft gezogen werden. Auch ein Datenbank-Backup Ihrer Live-Daten ist jederzeit abrufbar. 

In das Plugin sind viele Anregungen aus der Praxis eingeflossen. Im Ergebnis ist die Erstellung einer Testumgebung noch bequemer und einfacher. Und zudem gibt es eine Menge von nützlichen Zusatzfunktionen, die Sie hoffentlich begeistern werden!

Hinweis: es ist leider nicht möglich, einen Testserver auf "Knopfdruck" wieder zum Live-Server zu machen! Beachten Sie auch die Sicherheitshinweise.


Was ist neu?

Die stark überarbeitete Version 2 unseres erfolgreichen Testserver-Plugins bringt unter anderem folgende Neuerungen mit:

  • Beliebig viele Testumgebungen erstellen
  • Daten vollständig anonymisierbar
  • Bequeme Auswahl der auszuschließenden Verzeichnisse
  • Zugangsdaten für eine Testumgebung an Dienstleister übermitteln, inkl. Online-Dateieditor
  • Datenbank-Backups erstellen
  • Dateien zwischen Testumgebung und Liveshop vergleichen
  • Testumgebung automatisch per CRON-Job erzeugen

Installation und Konfiguration

Das Plugin installieren Sie wie gewohnt über den Plugin-Manager im Shopware-Backend.

In den Plugin-Einstellungen selbst gibt es nur wenig Konfigurationsmöglichkeiten:


Hinweis im Testserver anzeigen: wenn diese Option ausgewählt ist, wird sowohl im Backend als auch im Frontend (Shop) der Testumgebung ein deutlicher Hinweis angezeigt, dass es sich um einen Testserver handelt. Das ist hilfreich, um die Orientierung zu behalten. Diese Option kann nur für alle Testumgebungen insgesamt ein- oder ausgeschaltet werden (Voreinstellung: eingeschaltet).

Debug-Log schreiben: ist diese Option ausgewählt, werden alle vom Plugin durchgeführten Aktionen in der Datei /var/log/netzp_staging.log protokolliert. Falls Probleme bei der Erstellung einer Testumgebung auftreten sollten, hilft uns das bei der Fehlersuche. Normalerweise benötigen Sie diese Option nicht (Voreinstellung: ausgeschaltet).

Wichtig: bitte achten Sie darauf, dass der Wert max_execution_time auf 1200 (oder ggf. auch höher) gesetzt ist und ausreichend freier Speicherplatz auf dem Server vorhanden ist. 

Sicherheitshinweise

Sinn und Zweck des Testserver-Plugins ist es, eine Testumgebung möglichst einfach und bequem einrichten zu können. Mit Hilfe einer Testumgebung können Sie Änderungen am Shop, Plugin-Updates und Shopware-Updates vorab gefahrlos testen. Anschließend können Sie diese Änderungen dann im Liveserver durchführen. Das Plugin richtig sich insbesondere auch an technische Laien. Fehleingaben versuchen wir, so weit wie möglich (und vorhersehbar) sinnvoll abzufangen. So können etwa nicht die Datenbank des Liveservers für den Testserver verwendet werden.

In Ihrem Interesse sollten Sie jedoch folgende Hinweise beachten:

  • Im Testserver wird - sofern dies nicht ausgeschaltet wird - sowohl im Backend als auch im Frontend ein Hinweis auf die Testumgebung ausgegeben. Achten Sie darauf, dass dieser Hinweis erscheint
  • Kontrollieren Sie bei allen Arbeiten im Testserver in der URL-Zeile des Browsers, ob das richtige Unterverzeichnis angezeigt wird. Manche Plugins von Drittherstellern sind leider nicht immer kompatibel und beachten u.U. das Unterverzeichnis nicht.
  • Wenn Sie Dateien auf dem Testserver per FTP modifizieren, achten Sie bitte ebenfalls darauf, dass Sie im richtigen Unterverzeichnis arbeiten.
  • Test- und Liveserver sind nach der Erstellung vollständig unabhängig voneinander. Wenn Sie jedoch nach einer Änderung im Backend des Testservers die selbe Änderung im Liveserver beobachten sollten, stimmt etwas nicht. Sie sollten dann keine weiteren Änderungen vornehmen und uns kontaktieren.
  • Bitte ändern Sie die Dateien config.php im Hauptverzeichnis des Testservers nur, wenn Sie wirklich wissen, was Sie tun! Sie können mit falschen Angaben hier großen Schaden an ihrem Test- und Livesystem anrichten.  
  • Erstellen Sie vor der Erstellung eines Testserver zu Ihrer eigenen Sicherheit ein vollständiges Backup Ihres Shops (Dateisystem und Datenbank) - das sollte jedoch ohnehin Standard für jeden professionellen Shopbetreiber sein.
  • Ein Testserver kann nicht zu einem Live-Server gemacht werden! Versuchen Sie bitte nicht, manuell Dateien vom Test- in den Liveserver zu kopieren. Das kann unter Umständen zwar funktionieren, erfordert allerdings weitere manuelle Anpassungen, wird von unserem Plugin jedoch nicht unterstützt.


Haftungsausschluss

Das Plugin wurde sorgfältig getestet und ist vielfach im Einsatz. Grundsätzlich werden keine Änderungen am Liveserver oder der Live-Datenbank vorgenommen. Dennoch übernehmen wir keine Haftung für Schäden, die möglicherweise durch den Einsatz des Plugins entstehen können, insbesondere nicht bei unsachgemäßer oder von der Dokumentation abweichender Bedienung. Dies gilt insbesondere auch für den Einsatz von Drittanbieter-Plugins. Weiterhin ersetzt das Plugin keine regelmäßigen Sicherheits-Kopien (Backups) Ihres Shops.

Bekannte Inkompatibilitäten

Momentan besteht eine Unverträglichkeit mit dem Plugin Cloud CDN (Hersteller: intoCommerce in der Version 1.0.6). Dieses Plugin modifiziert ebenfalls die config.php-Datei.

Wird das CDN-Plugin deaktiviert, überschreibt es diese Datei mit einer früher angelegten Sicherungskopie. Wurden jedoch - etwa durch das Testserver-Plugin - zwischenzeitlich weitere Änderungen an der config.php vorgenommen, sind diese nach der Deaktivierung des CDN-Plugins verloren

Dies kann dazu führen, dass Änderungen im Testserver tatsächlich im Live-Shop durchgeführt werden.


Testumgebung erstellen

Eine Testumgebung ist mit wenigen Klicks erstellt. Allerdings benötigen Sie vorab eine weitere Datenbank, damit die Testumgebung deutlich vom Live-Server getrennt ist. Im Zweifel bitten Sie Ihren Hoster, eine solche zusätzliche Datenbank anzulegen und Ihnen die Zugangsdaten dafür mitzuteilen (Datenbank-Server, Port, Datenbank-Name, Benutzer, Kennwort).


Die Verwaltung der Testumgebungen rufen Sie im Shopware-Backend im Hilfe-Menü (?) über den Menüpunkt Testumgebungen auf. Im nun erscheinenden Fenster können Sie alle Testumgebungen steuern, verwalten und auch aufrufen.

Im Beispiel sind hier bereits zwei Testumgebungen angelegt; die einzelnen Felder und Buttons sollten weitestgehend selbsterklärend sein.


Eine neue Testumgebung richten Sie über den Button Neuen Testserver anlegen ein. Es erscheint das folgende Fenster:


Als erstes vergeben Sie bitte einen aussagekräftigen Namen für die neue Testumgebung (hier: Test) sowie das gewünschte Unterverzeichnis. Die Testumgebung wird in einem Unterverzeichnis unterhalb Ihres LIVE-Shops eingerichtet, in dieses Verzeichnis werden später alle notwendigen Shopware-Dateien kopiert. Dieser Mechanismus stellt sicher, dass es keine Probleme mit den Plugin-Lizenzen gibt. Den neuen Testserver rufen Sie dann später über die Adresse www.IhrShop.de/unterverzeichnis auf.

Wichtig ist nun noch die Eingabe der bereits erwähnten Datenbank-Zugangsdaten. (Achtung: verwenden Sie hier bitte nur die Daten einer weiteren, zusätzlichen Datenbank. Diese wird bei der Einrichtung der Testumgebung überschrieben).

Wenn Sie Eingaben vergessen oder die Test-Datenbank mit den eingegebenen Zugangsdaten nicht erreichbar ist, wird das Plugin beim Speichern eine Fehlermeldung ausgeben.

Die weiteren Felder (wie Anonymisierung, CRON, Verzeichnisausschlüsse) werden weiter unten erklärt.

Nach der Eingabe der benötigten Daten klicken Sie bitte auf den Button Jetzt anlegen, bei korrekter Eingabe wird wieder das Übersichtsfenster mit der nun neu angelegten Testumgebung angezeigt.

Diese muss jetzt noch erstellt werdenHierbei werden alle benötigten Daten und Dateien (Datenbank und Dateisystem) des LIVE-Servers in die Testumgebung übertragen. Wichtig: je nach Größe Ihres LIVE-Servers und der Anzahl der Artikel, Kunden und Bestellungen kann dies einige Zeit in Anspruch nehmen.  Typische Werte sind zwischen 2 und 15 Minuten, im Einzelfall jedoch auch länger.

Klicken Sie zur Erstellung auf den Button Erstellen. Nun startet der Kopier- und Einrichtungsvorgang, zusätzlich werden entsprechende Fortschrittsbalken angezeigt. 

Tipp: Sie können den Testumgebungs-Manager schließen und zu einem späteren Zeitpunkt wieder öffnen. Sie sollten allerdings vermeiden, während der Erstellung einer Testumgebung Dateien zu verändern, das könnte den Kopierprozess stören.

Nachdem die Testumgebung eingerichtet ist, können Sie das Fenster zur Sicherheit einmal aktualisieren (mit dem kleinen Aktualisierungssymbol in der oberen rechten Fensterecke , oder einfach schließen und neu öffnen). Nun sollten die Buttons für das Front- und Backend der Testumgebung blau und somit aktiv sein.

Die Testumgebung können Sie natürlich auch direkt im Browser über die URL aufrufen: www.IhrShop.de/unterverzeichnis bzw. www.IhrShop.de/unterverzeichnis/backend.

An vielen Stellen erhalten Sie übrigens weitere Erläuterungen, in dem Sie mit der Maus über eine angezeigte Option oder ein angezeigtes Fragezeigen fahren! 

Verzeichnisse ausschließen

Nicht immer ist es notwendig oder gewünscht, wirklich alle Dateien bzw. Verzeichnisse in die Testumgebung zu übertragen. Mitunter können einige Verzeichnisse sehr groß werden oder der Inhalt wird in der Testumgebung schlicht nicht benötigt.

Um einzelne oder mehrere Verzeichnisse von der Übertragung in die Testumgebung auszuschließen, wählen Sie bitte den Button Bearbeiten

Wenn Sie nun ein wenig nach unten scrollen, sehen Sie die Optionen Ausgeschlossene Verzeichnisse sowie Nur bei Ersterstellung übertragene Verzeichnisse.


Mit Hilfe der ersten Option (Ausgeschlossene Verzeichnisse) können Sie entsprechend Verzeichnisse auswählen, die in keinem Fall in die Testumgebung übertragen werden soll. Im Beispiel-Screenshot betrifft das vier ausgeschlossene Verzeichnisse. Sie können den Baum mit den kleinen Dreiecken vor den jeweiligen Ankreuzfeldern erweitern, so dass die Baumstruktur sichtbar wird.

Wichtig: es werden nur die angekreuzten Verzeichnisse ausgeschlossen (hier: __TEST2__, __TEST__, _dbbackups sowie video). Die jeweiligen Oberverzeichnisse werden mitkopiert.

Ganz ähnlich funktioniert die zweite Option (Nur bei Ersterstellung übertragene Verzeichnisse). Hier können Sie ein oder mehrere Verzeichnisse auswählen, die zwar bei der Ersterstellung der Testumgebung übertragen werden, bei weiteren Kopiervorgängen dann jedoch nicht mehr. Sie können so viel Zeit bei der Erstellung einer Testumgebung sparen, in dem Sie beispielsweise das Verzeichnis media/image (das sind die Artikelbilder in Shopware) bei der Ersterstellung übertragen, danach dann aber nicht mehr.

Vergessen Sie nicht, vorgenommene Änderungen auch zu speichern!

Einstellungen bearbeiten

Für jede Testumgebung können weitere Optionen und Einstellungen gesetzt werden. Wählen Sie dazu in der Liste der Testumgebungen den Button Einstellungen



Wartungsmodus einschalten: Sie können die jeweilige Testumgebung über diese Option direkt in den Wartungsmodus versetzen. Das Frontend des Shops (nur dieser Testumgebung!) ist dann nicht erreichbar.

Verzeichnisschutz: wenn Sie hier sowohl einen Benutzer als auch ein Kennwort eintragen, wird ein zusätzlicher Verzeichnisschutz auf die Testumgebung gelegt (gilt für das Frontend).

Fehlerausgaben: diese Optionen steuern die Anzeige von PHP-Fehlermeldungen in der Testumgebung. Die genaue Bedeutung ist über die Links am rechten Rand erläutert.

Caching: hierüber kann der Cache der Testumgebung gesteuert werden; weitere Erläuterungen erhalten Sie wiederum über die Links am rechten Rand.

CSRF-Schutz: dies steuert Einstellungen zum Cross-site-request-forgery und ist vermutlich nur für Profis sinnvoll/notwendig.

Mit den weiteren Einstellungen können Sie noch Google und andere Suchmaschinen von der Indizierung der Testumgebung abhalten (Achtung: nicht alle Suchmaschinen beachten diese Einstellung, legen Sie zur Sicherheit noch einen Verzeichnisschutz auf die Testumgebung!). Weiterhin kann der Mailversand deaktiviert werden.

Alle diese Einstellungen beziehen sich immer auf die jeweilige Testumgebung - der Liveserver ist davon niemals betroffen!

Änderungen sind in der Regel sofort wirksam; sollte dies einmal nicht der Fall sein, müssen Sie den Cache der Testumgebung manuell löschen.

Tipp: die Einstellungen für eine Testumgebung können bereits vor der Erstellung gesetzt werden und sind dann nach der Erzeugung sofort gültig. Das gilt gleichermaßen auch für Testumgebungen, die durch einen CRON-Job erzeugt werden.

Daten anonymisieren

Eine Testumgebung ist zunächst eine hundertprozentige Kopie Ihres LIVE-Shops, hier sind also alle Daten (Kunden, Bestellungen, Dokumente etc.) enthalten. 

Über die Anonymisierung können Sie verhindern, dass Dritte und möglicherweise Unbefugte Einblick in Ihre Datenbestände erhalten. Die Optionen zur Anonymisierung können Sie bei der Bearbeitung einer Testumgebung (Button: Bearbeiten in der Liste der Testumgebung) anpassen.

Wählen Sie hier aus folgenden Möglichkeiten:

Alle Daten übertragen: hierbei werden sämtliche Daten 1:1 in die Testumgebung übertragen

Kunden anonymisieren: hierbei werden sämtliche kundenbezogenen Daten (Stammdaten, Adressen, Bestellungen, Dokumente, Newsletter-Mailings etc.) zwar übertragen, aber durch zufällig erzeugte Scheindaten ersetzt. Diese sehen zwar täuschend echt aus, sind aber vollkommen anonym.

Keine Kunden / Bestellungen: bei dieser Option werden alle kundenbezogenenen Datenbanktabellen vollständig geleert, d.h. in der Testumgebung sind keinerlei Kunden, Bestellungen etc. vorhanden.

Zur besseren Orientierung erfolgt in der Testumgebung ein zusätzlicher Hinweis, falls die Daten anonymisiert sind.

Änderungen vergleichen

Sinn einer Testumgebung ist es unter anderem, Änderungen etwa an Templates oder einer Plugin-Programmierung gefahrlos vorab testen zu können. Wenn Sie Änderungen etwa an einer Template-Datei vorgenommen haben, soll diese vielleicht später wieder auf den Live-Server zurück kopiert werden.

Unser Plugin bietet auch hier eine einzigartige Funktion, in dem ein Dateivergleich zwischen einer Testzumgebung und dem LIVE-Server möglich ist. Aus Geschwindigkeitsgründen werden hier allerdings nur Dateien aus den Verzeichnissen theme, ...plugins (altes Pluginsystem) sowie custom (neues Pluginsystem) verglichen.

Um diese Funktion zu nutzen, wählen Sie bitte den kleinen Pfeil im Button Einstellungen in der Liste der Testumgebungen und dann den Menüpunkt Dateien vergleichen.


Nach einigen Sekunden - die Zeit kann je nach Servergeschwindigkeit unterschiedlich sein - erscheint eine Liste der möglichen Dateiunterschiede:


Hier werden nun alle eventuell unterschiedlichen Dateien aufgeführt, und Sie sehen jeweils blau markiert, ob die betreffende Datei auf dem LIVE-Server oder in der Testumgebung aktueller ist.

Der Button Vergleichen bietet nun an, die exakten Unterschiede (diff) der jeweiligen Datei anzuzeigen:

Testumgebung für Dienstleister

Eine besondere Funktion ist die Möglichkeit, externen Dienstleistern einen Zugriff auf die Testumgebung zu ermöglichen. Dies ist zum Beispiel dann sinnvoll, wenn Ihr Dienstleister oder Ihre Shopware-Agentur ein Problem beheben soll, Sie aber keinen Zugriff auf den Live-Shop gewähren möchten.

Es wird dabei automatisch ein Nutzer für das Shopware-Backend eingerichtet und weiterhin ein Nutzer für den Zugriff auf das Dateisystem. Beides bezieht sich wohlgemerkt nur auf die Testumgebung, ein Zugriff auf den Live-Shop ist damit nicht möglich.

Durch den Online-Dateimanager müssen Sie zudem keine FTP-Daten herausgeben.

Rufen Sie die Funktion in der Liste der Testumgebungen über den Button Einstellungen / Zugangsdaten verschicken auf.


Nun erscheint folgende Eingabemaske:

Hier könne Sie zunächst entscheiden, welche Nutzer (Backend und/oder Dateizugriff) erstellt werden sollen. Geben Sie bitte weiterhin eine gültige E-Mailadresse sowie einen Firmennamen für den Nutzer ein. Der Firmenname wird den erzeugten Benutzernamen vorangestellt, so dass sie besser erkennbar sind. 

Der Button Erstellen und Versenden legt die gewünschten Nutzer an und verschickt die Zugangsdaten an die eingetragene E-Mailadresse. Sie erhalten zusätzlich eine gleichlautende E-Mail an die Shopbetreiber-E-Mailadresse zur Kontrolle.

Löschen von Zugangsdaten

Um einem externen Nutzer den Zugang wieder zu entziehen, gibt es zwei Möglichkeiten. Die einfachste ist, die Testumgebung komplett wieder zu löschen - dann besteht entsprechend auch kein Zugriff mehr darauf.

Falls die Testumgebung bestehen bleiben soll, kann der automatisch angelegte Showpare-Nutzer im Backend (des Testservers!) über den Menüpunkt Einstellungen / Benutzerverwaltung gelöscht werden. 

Ein eventuell eingerichteter Nutzer für den Dateizugriff kann in der Datei filemanager_config.php (im Hauptverzeichnis der Testumgebung!) entfernt werden. Achtung: Die Datei an sich muss bestehen bleiben, und auch der generelle Aufbau darf nicht verändert werden - es darf nur die Zeile mit dem jeweiligen Nutzer entfernt werden. 

Testumgebung mittels CRON-Job erzeugen

Möchten Sie eine oder mehrere Testumgebungen regelmässig und automatisch neu erzeugen, ist diese Funktion hilfreich.

Über einen sogenannten CRON-Job werden alle Testumgebungen, die in den Einstellungen entsprechend gekennzeichnet sind, zunächst gelöscht und anschließend neu erzeugt.

Kennzeichnen Sie zunächst die gewünschte Testumgebung für die Erstellung über einen CRON-Job, in dem Sie die Testumgebung bearbeiten und das Feld über CRON-Job erstellen ankreuzen.



Weiterhin muss der CRON-Job in den Shopware-Grundeinstellungen / CRON aktiviert und konfiguriert werden:

Setzen Sie hier das Feld Aktiv und wählen das gewünschte Erstellungsintervall aus (z.B. 1 Tag). Das Feld Bei Fehler deaktivieren sollte ausgeschaltet sein.

Zuletzt müssen Sie sicherstellen, aber sonst wird Shopware ohnehin nicht korrekt funktionieren, dass der Shopware-CRON überhaupt aufgerufen wird. Weitere Hinweise dazu finden Sie in der Shopware-Dokumentation.

Datenbank-Backup

Zusätzlich können Sie jederzeit einen Datenbank-Backup Ihres Live-Shops erzeugen und herunterladen.

Wählen Sie dazu den Button Einstellungen / Backup Datenbank in der Übersicht der Testumgebungen.



Die Erzeugung kann - je nach Server- und Datenbankgröße - eine Minuten in Anspruch nehmen. Kehren Sie später wieder zur Übersicht der Testumgebungen zurück und achten Sie auf die Zahl neben dem Tab "Backups". 


Wechseln Sie zum Tab "Backup":


Sie sehen hier die vorhandenen Datenbank-Backups mit Erstellungsdatum und Größe. Der Button Download lädt den jeweiligen Backup direkt lokal herunter, der Button Löschen entfernt nach einer Sicherheitsabfrage den Datenbank-Backup.

Die Datenbank-Backups sind ZIP-komprimierte SQL-Dateien und können mit einem geeigneten SQL-Verwaltungsprogramm (z.B. phpMyAdmin) wieder eingelesen werden.

Achtung: schützen Sie Ihre Datenbank-Backups gut - hier sind alle Informationen Ihres Shops enthalten!

Filter-Events

(nur für Profis)

Es gibt derzeit folgende Filter-Events, die einen begrenzten Eingriff in das Plugin ermöglichen:

  • NetzpStaging_Component_Helper_WriteConfigFile_FilterResult
    Dieser Filter wird aufgerufen, bevor die Konfigurationsdatei einer Testumgebung geschrieben wird. Die erzeugten Optionen können so für eigene Zwecke angepasst bzw. erweitert werden. Achtung: modifizieren Sie nach Möglichkeit keine Optionen des Plugins, sonst kann es zu Fehlfunktionen kommen.

Support anfordern

Über den Button Support (in der Übersicht der Testumgebungen ganz rechts oben) haben Sie Zugriff auf weitere Hilfestellungen (FAQ) und können direkt Support durch uns anfordern. Ebenfalls können Sie an dieser Stelle über den Download-Link die Log-Datei laden (und uns ggf. per E-Mail übermitteln). Dazu muss die entsprechende Option in den Plugin-Einstellungen (Backend / Plugin-Manager) aktiviert sein.

Hier können Sie ausserdem die Erzeugung eines Testservers abbrechen, sollte sich das Plugin komplett aufgehängt haben. Verwenden Sie diese Funktion bitte nur im Notfall.



Wir wünschen Ihnen viel Erfolg 
mit unserem Plugin und 
gute Geschäfte mit Shopware.