Benutzer-Werkzeuge

Webseiten-Werkzeuge


cookbook:staging

Staging mit syncData2

Unter Staging versteht man unter anderem das Testen einer Website auf einem nichtöffentlichen Server. Bezogen auf BlackCat CMS könnte das beispielsweise bedeuten, daß die Inhalte zunächst in einer lokalen Umgebung - beispielsweise auf Basis einer Portable-Installation - erstellt und gepflegt werden, bevor sie auf den öffentlichen Webserver übertragen werden. Das schließt auch das Hinzufügen und Testen von Modulen mit ein.

Die Inhalte auf dem öffentlichen Server sind in diesem Fall - nach erfolgter Synchronisation - identisch mit denen der lokalen Installation.

Das manuelle Übertragen von Inhalten ist jedoch mühselig und fehleranfällig. Glücklicherweise steht jedoch das Werkzeug syncData2 der phpManufaktur zur Verfügung, um dies zu vereinfachen.

syncData2 wird auf beiden Systemen, also sowohl lokal als auch im Web, installiert und konfiguriert. Das lokale System ist die Quelle, auf der die Daten per Backup exportiert werden. Um das Zielsystem, also den öffentlichen Server, zu aktualisieren, überträgt man die Backup-Dateien per FTP auf den Server und importiert sie dort mit Hilfe von syncData2.

Allgemeines zu syncData2

Das Werkzeug syncData2 ist grundsätzlich unabhängig vom CMS, benötigt aber einige Informationen darüber. Unterstützt werden neben BlackCat CMS auch Website Baker und LEPTON, da sich diese in der Grundstruktur ähnlich sind.

Installation

Die Installation von syncData2 erfolgt in ein Unterverzeichnis syncdata innerhalb des CMS, parallel zu den Verzeichnissen wie 'media', 'framework' oder 'modules'.

syncData2 ist kein CMS-Modul! Die Installation kann also nicht über das BlackCat Backend erfolgen!

Die jeweils aktuelle Version ist bei GitHub zu finden: https://github.com/phpManufakturHeirs/SyncData2/releases

Nach dem Entpacken des ZIPs in dieses Verzeichnis wird mit

  http://<CAT_URL>/syncdata/setup

die Installation aufgerufen. Sobald diese abgeschlossen ist, wird ein automatisch generierter Schlüssel angezeigt, den man sich notieren und sicher aufbewahren sollte, denn dieser Schlüssel wird für den Im- und Export von Daten benötigt.

Wir empfehlen den zusätzlichen Schutz des syncdata-Verzeichnisses auf dem öffentlichen Server mit Hilfe eines Verzeichnisschutzes per .htaccess, sofern verfügbar.

Sollte BlackCat CMS in einem Unterverzeichnis installiert sein, muß vor der ersten Benutzung von syncData2 die Datei

  <CAT_PATH>/syncdata/.htaccess

angepaßt werden. Diese beinhaltet eine Zeile

  RewriteBase /syncdata

Diese Zeile muß entsprechend angepaßt werden. Beispiel: Wird BlackCat CMS über die URL

  http://<Domain>/bc 

aufgerufen und befindet sich syncData2 somit unter

  http://<Domain>/bc/syncdata, 

ist der Pfad folgendermaßen anzupassen:

  RewriteBase /bc/syncdata

Konfiguration

syncData2 verfügt über vielfältige Konfigurationsmöglichkeiten; unter anderem ist einstellbar, welche Datenbanktabellen und Verzeichnisse von der Sicherung bzw. dem Import ausgenommen werden sollen. Alle Einstellungen befinden sich in der Datei

  <CAT_PATH>/syncdata/config/syncdata.json

JSON ist eine aus JavaScript stammendes kompaktes Datenformat in einer einfach lesbaren Textform zum Zweck des Datenaustauschs zwischen Anwendungen.

Die Datei ist in mehrere Bereiche untergliedert:

CMS
Einstellungen des CMS
„email“
Einstellungen für den Mailversand
„monolog“
Einstellungen für das interne Logging
„general“
Allgemeine Einstellungen
„backup“
Einstellungen für den Export
„restore“
Einstellungen für den Import

Die größten Bereiche sind „backup“ und „restore“; hier kann definiert werden, welche Datenbanktabellen, Verzeichnisse und Dateien ignoriert werden sollen. Das ist wichtig, weil man beispielsweise das temp-Verzeichnis üblicherweise nicht mit sichern und wiederherstellen möchte. Daher ist dies standardmäßig ausgenommen, ebenso wie die Verzeichnisse kit2 (kitFramework und Erweiterungen) und syncdata.

Das Verzeichnis syncdata muß immer ausgeklammert werden, da sonst natürlich auch die Konfigurationsdateien beim Staging überschrieben werden würden.

Die nachfolgenden Bereiche existieren sowohl in backup als auch in restore und funktionieren grundsätzlich gleich:

„settings“
Allgemeine Einstellungen; replace_table_prefix, add_if_not_exists und replace_cms_url sollten üblicherweise immer auf true gesetzt sein
„files“
Hier können beliebig viele Dateien eingetragen werden, die ignoriert werden sollen. Wichtig: Diese Einstellung gilt für alle Verzeichnisse!
„directories“
Eine Liste von Verzeichnissen (=Verzeichnisnamen), die ignoriert werden sollen. Auch diese Einstellung gilt global, also auch für alle Unterverzeichnisse!
„tables“
Eine Liste von Tabellennamen, die ausgenommen werden sollen. Wichtig: Die Tabellennamen ohne das Präfix angeben!

Erstes Backup

Die Erstellung einer Komplettsicherung ist denkbar einfach. Hierzu wird syncData2 mit dem Parameter „backup“ und dem Sicherungsschlüssel, der während der Installation erzeugt wurde, aufgerufen.

  http://<CAT_URL>/syncdata/backup?key=<Schlüssel>

Die Sicherung kann je nach Umfang der Installation recht lange dauern, also Geduld!

Während der Sicherung ist die Seite im Browser leer, also in der Regel einfach weiß. Nach Abschluß der Sicherung wird eine Ergebnisseite ausgegeben.

Das Ergebnis des Backups liegt im Verzeichnis

   /syncdata/data/backup

Übertragen des Backups auf den Server

Das Backup besteht aus zwei Dateien, nämlich einem ZIP, welches alle Daten beinhaltet, und einer MD5-Datei mit einer Checksumme. Dies ermöglicht es syncData2, das Backup auf Konsistenz zu überprüfen. Es ist deshalb wichtig, immer beide Dateien (per FTP) auf das Zielsystem zu übertragen.

Beispiel:

  syncdata_backup_20150205_1314.md5
  syncdata_backup_20150205_1314.zip

Der Name der Dateien setzt sich aus dem festen Präfix „syncdata_backup“, dem Datum und der Uhrzeit zusammen.

Beide Dateien werden auf dem Zielsystem im Verzeichnis

  /syncdata/inbox

abgelegt.

Import auf dem Server

Analog zum Backup, erfolgt auch der Import wieder per Aufruf von syncData2.

  <CAT_URL>/syncdata/restore?key=<Schlüssel>

Wichtig: Der <Schlüssel> ist in diesem Fall der des Servers! Jede syncData2-Installation hat ihren eigenen Sicherheitsschlüssel, der während der Installation generiert wird.

SyncData2 sucht nun in der inbox nach Datensicherungen. Jede einmal importierte Sicherung wird in die Datenbank eingetragen und die Dateien aus der inbox in das Verzeichnis /data/backup verschoben.

Auch hier kann der Import der Daten je nach Umfang einige Zeit dauern. Nach Abschluß des Imports wird wieder eine Ergebnisseite angezeigt.

Synchronisierung

Nach dem initialen Ex- und Import der Webseiten geht es darum, den öffentlichen Server bei Bedarf zu aktualisieren. Ein vollständiges Backup ist in diesem Fall unnötig und auch zu umfangreich. Daher verfügt syncData2 über eine weitere Funktionalität, nämlich die Synchronisierung.

Um auf dem Quellsystem ein Differenzbackup zu erzeugen, dient folgender Aufruf:

  <CAT_URL>/syncdata/createsync?key=<Schlüssel>

Sofern es veränderte Daten gibt, wird im Verzeichnis

   /syncdata/outbox

ein Backup angelegt. Genau wie beim Vollbackup besteht auch dieses aus einer ZIP-Datei und einer Checksummen-Datei mit der Endung .md5.

Auch in diesem Fall wird das Backup nach Fertigstellung in die Inbox des Zielsystems übertragen. Anschließend wird auf dem Zielsystem der Import mit

  <CAT_URL>/syncdata/sync?key=<Schlüssel>

veranlaßt.

Fertig importierte Synchronisierungen werden in das Verzeichnis

  <CAT_PATH>/syncdata/data/synchronize

verschoben.

Wichtiger Hinweis zum Schluß: Obiges Vorgehen erfordert, daß sämtliche Änderungen ausschließlich auf dem Quellsystem vorgenommen werden. Es ist sonst möglich, daß Änderungen durch die Synchronisierung überschrieben werden.

Serverumzug mit syncData2

Mit obigem Verfahren kann man auch eine BlackCat-Installation von Server A auf Server B umziehen. Das Vorgehen ist das gleiche, nur der letzte Schritt - Synchronisation - fällt weg.

cookbook/staging.txt · Zuletzt geändert: 2017/01/19 00:00 (Externe Bearbeitung)