Mein Blog ist ein lebender Organismus. Es verändert sich stänig etwas: Sei es das Update eines Plugins, die Einführung neuer und sicherer Share-Buttons, die Einführung eines neuen E-Mail-Marketing-Systems oder der ganz große Wurf: Der Design-Change.

Ich persönlich habe die Anforderung einer hohen Verfügbarkeit an meinen Blog-Organsimus um meinen Lesern, also dir, möglichst zu jeder Zeit den vollen Zugriff auf die Inhalte meines Blogs zu gewähren.

Maleben ein Plugin einspielen geht in 95% der Fälle gut. Aber was passiert, wenn man zu den fünf Prozent gehört, wo einmal etwas schief läuft? In vielen Fällen sind die Auswirkungen für den Blog und dessen Leser bis auf die 10 Sekunden Wartungsmodus kaum spürbar. Mir ist es aber auch schon passiert, dass ich mein gesamtes System nach dem Versuch ein Plugin einzuspielen wieder zurück setzen musste.

Das ist gleich dreimal schlecht für den Blog und die Leser:

  • Der Blog steht während der Zeit für die Leser nicht zur Verfügung
  • Eventuell gehen dir Stammleser oder möglich neuen Newsletter-Empfänger oder gar neue Kunden verloren
  • Du musst das Problem sofort beheben. Das bringt schon einmal dEINEN ganzen Terminplan durcheinander

Nachdem ich einmal damit auf die Nase gefallen bin und mein Wochenende mit dem fixen meines Blogs verbracht habe, musste eine Lösung für dieses Problem her, damit dieses nicht noch einmal vorkommt.

Was ein Staging-System für dich leistet

In der Weiterentwicklung meines Blogs gibt es ganz unterschiedliche Szenarien und Use-cases, wo mir das Staging-System enorm viel Zeit spart und ich meine Entwicklungen ungestört implementieren kann ohne den Zugriff auf den Blog für Benutzer einschränken zu müssen:

  • Testen von neuen Plugins
  • Implementierung und Tests von neuen Funktionen
  • Entwicklung eines neuen Design-Templates
  • Testen von Updates
  • Testen von Opt-In-Prozessen

Alle zwei Jahre gucke ich mein Design an und denke mir: Das geht so nicht weiter. Es muss etwas Neues her. Die Entwicklung in einer lokalen Umgebung via Xampp ist gut. Aber wie es sich dann im Web mit einem SSL-Zertifikat verhält sind dann meistens zwei unterschiedliche paar Schuhe. Daher habe ich für mich den Entschluss gefasst, dass auch mein Entwicklungs- bzw. Staging-System im Internet beheimatet sein muss. Der Austausch zwischen den beiden Systemen muss einfach und schnell erfolgen.

Welche Anforderungen ich an ein Staging-System habe:

  • Ich möchte von überall Zugriff auf das System haben
  • Der Außenwelt soll es untersagt sein, auf das System zu kommen
  • Das Staging-System darf nicht von Suchmaschinen erkannt und indexiiert werden
  • Das Staging-System soll nur für eingeloggte Benutzer sichtbar sein
  • Ich möchte via Knopfdruck meine kompletten Daten (MySQL, Blog-Posts, Bilder, Plugins, etc.) vom Live-System ins Staging-System kopieren können – und umgekehrt
  • Ich möchte das System regelmäig sichern können
  • Ich möchte längere Entwicklungen auf dem Staging-System durchführen und diese dann gemeinsam in das LIVE-System übertragen können
  • Ich möchte auch entscheiden können, dass ich nur Teile meiner Entwicklung bzw. nur einzelne Dateien ausliefere oder zurückspiele

Was du brauchst, um ein eigenes Staging-System einzurichten

Im folgenden möchte ich dir eine Checkliste an die Hand geben, was du alles benötigst um ein eigenes Staging-System zu implementieren, welches du von überall aus aufrufen und weiterentwickeln kannst:

  • Webspace bei deinem Hosting-Anbieter
  • Eine weitere MySQL-Datenbank
  • Eine eigene (Sub-)Domain
  • Das Plugin BackupBuddy
  • Das Plugin Absolut Privacy
  • eine robots.txt

Schritt für Schritt erklärt: Wie du mit BackupBuddy dein Staging-System erstellst

BackupBuddy stellt beim Aufbau meines Staging-Systems eine zentrale Rolle dar. Alle wichtigen Funktionen, die ich für den Aufbau einen funktionierenden System benötige werden durch dieses Plugin bereit gestellt.

Zugegeben ist das Plugin mit ca. 80 US$ pro Jahr nicht ganz billig, aber wenn ich daran denke ein weiteres Wochenende, welches ich eigentlich mit meiner Frau und meinen Freunden verbringen wollte, noch einmal aufwenden muss um meinen Blog zu richten, ist diese Summe mehr als lukrativ.

Schritt 1

Nachdem du das Plugin BackupBuddy erworben hast, steht der Download des Plugins im Download-Bereich von iTheme für dich zur Verfügung. Als Nächstes musst du das Plugin in deinem Live-System installieren.

Um BackupBuddy für dein Deployment zwischen deinem Staging- und deinem Live-System nutzen zu können, musst du folgende Code-Zeile an eine beliebige Stelle in der wp-config.php einfügen:

/* Secure API-Key für BackupBuddy */
define( 'BACKUPBUDDY_API_ENABLE', true );

Um später das Backup auf deinem Staging-System installieren zu können, musst du im Vorfeld die Datei importbuddy.php herunterladen. Wenn du in deinem Blog (im Live-System) im Backend den Menübaum für das Plugin BackupBuddy öffnest und in den Punkt „Wiederherstellen / umziehen“ navigierst, wird dir hier der Download der Datei angeboten. Nachdem Download der Datei musst du diese in das Root-Verzeichnis deines Staging-Systems einfügen.

Schritt 2

Jetzt ist es an der Zeit ein Backup von deinem Live-System mit Hilfe von BackupBuddy zu erstellen und dieses dann in das Root-Verzeichnis deines Staging-Systems einzufügen.

Dazu navigierst du im Menübaum deines Plugins BackupBuddy auf den Punkt „Backup“. Dort wählst du die Option „Vollständig“ aus und klickst auf den Button „Complete Backup“. Das Backup wird nun erzeugt und abgelegt.

INFO: Du kannst mit Klick auf das Zahnrad-Icon noch detaillierte Einstellungen vornehmen, welche Dateien bzw. Plugins du mit in das Backup einbinden bzw. ausschließen möchtest.

 

Schritt 3

Als Nächstes musst du das Backup herunterladen und in das Root-Verzeichnis deines Staging-Servers kopieren bzw. dieses direkt via SFTP von deinem Live-System in dein Staging-System übertragen.

 

Hast du das Backup kopiert musst du nun via Browser die bereits übertragende Datei importbuddy.php aufrufen. Es wird nun ein Assistent gestartet, der das Backup auf deinem Styging-System einspielt.

INFO: Bitte halte für diesen Schritt die Zugangsdaten für die MySQL-Datenbank bereit, in der das Backup eingespielt werden soll.

Herzlichen Glückwunsch. Das Backup sollte nun korrekt auf deinem Staging-Server installiert sein. Es fehlt nun noch die Möglichkeit, dass du per Knopfdruck Daten bzw. Entwicklungsstände zwischen den beiden Systemen austauschen kannst.

Schritt 4

Um dieses zu tun, musst du dir aus deinem Live-System den Deployment-Key kopieren und in dein Staging-System übertragen. Den Deployment-Key erhältst du, indem du in deinem produktivem System im Menübaum deines BackupBuddy-Plugins auf „Entfernte Ziele“ klickst. Im oberen Bereich findest du nun den Button „Show Deployment Key“. Klick auf diesen Button und kopiere dir diesen Key.

 

Schritt 5

Als Letztes musst du nun in deinem Staging-System im Menü von BackupBuddy im Unterpunkt „Entfernte Ziele“ ein neues Ziel hinzufügen. Um ein neues Ziel hinzufügen zu können, klickst du auf die Schaltfläche „Add new“. Du wählst hier „BackupBuddy Deployment“ aus.

 

In diesem Fenster musst du deinem Deployment-Prozess einen Namen geben und den aus dem Live-System kopierten Deployment-Key einfügen. Speichern und fertig.

 

Nun kannst du zwischen deinem Live- und deinem Staging-System Entwicklungsstände hin und her übertragen.

Letzte Kleinigkeiten erledigen

In meinen Anforderungen habe ich ebenfalls beschrieben, dass das Staging-System nur für mich zur Verfügung stehen soll. Um in Suchmaschinen nicht gefunden zu werden, habe ich eine modifizierte robots.txt erstellt. Diese verbietet es allen Suchmaschinen-Bots auf diese Seite zuzugreifen. So sieht der Inhalt meiner robots.txt aus:

User-agent: *
Disallow: /

Um nun die Zugriff von außen zu schützen, habe ich noch das Plugin Absolute Privacy installiert. Nun benötigt jeder der auf den Blog zugreifen möchte einen WordPress-Benutzer deines Blogs.

Hat dir dieser Artikel geholfen? Kennst du noch andere Alternativen um ein Staging-System aufzusetzen? Lass es mich wissen und schreib es in die Kommentare.