Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
cookbook:staging [2015/02/05 13:06] shadowcat [Konfiguration] |
cookbook:staging [2017/01/19 00:00] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Staging mit syncData2 ====== | ====== 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. | + | 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. |
+ | |||
+ | {{:cookbook:schematisch.png?nolink|}} | ||
+ | |||
+ | 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. | 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 ===== | ===== Allgemeines zu syncData2 ===== | ||
Zeile 16: | Zeile 21: | ||
syncData2 ist kein CMS-Modul! Die Installation kann also nicht über das BlackCat Backend erfolgen! | syncData2 ist kein CMS-Modul! Die Installation kann also nicht über das BlackCat Backend erfolgen! | ||
</WRAP> | </WRAP> | ||
+ | |||
+ | 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 | Nach dem Entpacken des ZIPs in dieses Verzeichnis wird mit | ||
Zeile 61: | Zeile 68: | ||
Die Datei ist in mehrere Bereiche untergliedert: | Die Datei ist in mehrere Bereiche untergliedert: | ||
- | ; "CMS" : Einstellungen des CMS : | + | ; "CMS" : Einstellungen des CMS |
- | ; "email" : Einstellungen für den Mailversand : | + | ; "email" : Einstellungen für den Mailversand |
- | ; "monolog" : Einstellungen für das interne Logging : | + | ; "monolog" : Einstellungen für das interne Logging |
- | ; "general" : Allgemeine Einstellungen : | + | ; "general" : Allgemeine Einstellungen |
- | ; "backup" : Einstellungen für den Export : | + | ; "backup" : Einstellungen für den Export |
- | ; "restore" : Einstellungen für den Import : | + | ; "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''. | 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''. | ||
Zeile 76: | Zeile 83: | ||
Die nachfolgenden Bereiche existieren sowohl in ''backup'' als auch in ''restore'' und funktionieren grundsätzlich gleich: | 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\\ | + | ; "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!\\ | + | ; "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!\\ | + | ; "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! | + | ; "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. | ||
+ | |||
+ | {{:cookbook:syncdata_2_backup.png?nolink|}} | ||
+ | |||
+ | 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> | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **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. | ||
+ | </WRAP> | ||
+ | |||
+ | 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. | ||
+ | |||
+ | |||
+ | <WRAP center round important 100%> | ||
+ | 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. | ||
+ | </WRAP> | ||
+ | |||
+ | ===== 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. |