SyncCto: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Clients verwalten)
 
(30 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{stub}}
+
[[Category:Extensions]]
 
Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.
 
Mit '''syncCto''' kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.
 
{{ExtInfo
 
{{ExtInfo
 
| DevSite=http://www.men-at-work.de
 
| DevSite=http://www.men-at-work.de
| ExtVersion=1.0.0
+
| ExtVersion=2.6.1
| Version=ab 2.9
+
| Version=2.11 - 3.2
 
| ERLink=http://www.contao.org/erweiterungsliste/view/syncCto.html
 
| ERLink=http://www.contao.org/erweiterungsliste/view/syncCto.html
| TrackerLink=http://contao-forge.de/projects/synccto/issues
+
| TrackerLink=https://github.com/menatwork/syncCto
 
}}
 
}}
  
Zeile 17: Zeile 17:
 
Durch die Verwendung von syncCto können Redakteure schnell und einfach in einem Preview-System arbeiten und bei Vollendung der Arbeit den aktuellen und freigegebenen Stand zum Live-System synchronisieren.
 
Durch die Verwendung von syncCto können Redakteure schnell und einfach in einem Preview-System arbeiten und bei Vollendung der Arbeit den aktuellen und freigegebenen Stand zum Live-System synchronisieren.
  
==Erste Schritte==
+
==Server und Client bei syncCto==
 
+
Zu unterscheiden ist zwischen Server und Client. Die Server-Installation ist die Installation die auf den Client übertragen werden soll. Der Client ist die Contao Installation, zu der synchronisiert werden soll, also meistens die Installation, die auf dem Live-Server liegt. <br />
Im ersten Schritt muss man die Extension auf allen Contao-Systemen installieren die man miteinander synchronisieren möchte.
+
Anders gesagt, Entwicklungssystem: syncCto Server ; Livesystem: syncCto Client. Es gibt komplexere Beispiele, dazu folgt mehr in den weiteren Abschnitten.
  
 
==Konfiguration==
 
==Konfiguration==
 +
 +
===Systemcheck===
 +
 +
Für eine reibungslose und fehlerfreie Synchronisation ist es wichtig als erstes alle Installationen zu kontrollieren. Dafür steht der neue Menüpunkt Systemcheck zur Verfügung, denn dort werden alle für syncCto wichtigen Funktionen und Ressourcen des Servers aufgelistet. Sind alle Zellen grün, ist der erste Schritt getan. Sollte dies nicht der Fall sein, kann syncCto womöglich nicht erfolgreich funktionieren.
 +
 +
===Einstellungen===
 +
 +
Bevor man die erste Installation synchronisieren kann, muss zwingend bei allen Installationen auf denen syncCto installiert ist, der Menüpunkt Einstellungen ('''Contao Einstellungen''') aufgerufen und gespeichert werden. Bei diesem Vorgang wird der ctoCommunication API Key generiert. Den ctoCommunication API Key aus den Einstellungen der Clientinstallation benötigt man später bei der Erstellung des zuvor erwähnten Clients.
 +
 +
Zu beachten: Der von syncCto verwendete ctoCommunication API Key ist nicht der Contao-Installations-Schlüssel.
  
 
==Clients verwalten==
 
==Clients verwalten==
  
 +
Um im Server einen neuen Client anzulegen, klickt man im Menüpunkt Clients einfach auf den Button "Neuer Client".
 +
 +
* '''ctoCommunication API Key:''' Dieser Schlüssel sichert die Kommunikation zwischen den Contao-Installationen ab.
 
* '''Titel:''' z.B. der Kundenname und der Name des Servers
 
* '''Titel:''' z.B. der Kundenname und der Name des Servers
* '''Beschreibung:''' Eine aussagekräftige Beschreibung des Servers
+
* '''Beschreibung:''' Eine aussagekräftige Beschreibung des Servers (Seit syncCto 2.6 nicht mehr enthalten)
* '''Adresse:''' Der Pfad zum TL_ROOT der Contao Installation, z.B. http://www.example.com
+
* '''Domain:''' Die Domain des Clients, ohne Unterverzeichnis
* '''Benutzername:''' Der Benutzername mit dem man sich im Backend einloggt
+
* '''Serverpfad:''' Falls sich die Installation in einem Unterverzeichnis befindet
* '''Passwort:''' Das zum Benutzer zugehörige Passwort (wird verschlüsselt gespeichert)
+
* '''Portnummer:''' Standardmäßig ist es der Port 80
* '''Verschlüsselungsschlüssel:''' Hier gehört nun der Schlüssel aus den Einstellungen des Clients hinein
+
* '''Verschlüsselungs-Engine:''' Es stehen drei Möglichkeiten zur Verfügung, in der Regel genügt "Blowfish"
 +
* '''HTTP-Authentifizierung aktivieren:''' Falls der Client mit einer .htaccess abgesichert ist, kann man hier den Benutzernamen und das Passwort eingeben und die gesicherte Installation synchronisieren
  
==Synchronisieren==
+
==Synchronisation==
  
 
Um den Client mit dem Server zu synchronisieren, klickt man beim entsprechenden Client auf den rechten Button "Client synchronisieren". Im nächsten Fenster wählt man die Synchronisationsart aus.
 
Um den Client mit dem Server zu synchronisieren, klickt man beim entsprechenden Client auf den rechten Button "Client synchronisieren". Im nächsten Fenster wählt man die Synchronisationsart aus.
  
* '''Contao-Installation:''' Die gesamte Contao-Installation, Dateien und Ordner in den tl_files müssen seperat ausgewählt werden
+
* '''Contao-Installation:''' Die gesamte Contao-Installation, ausgenommen ist tl_files
* '''Persönliche Daten:''' Nur ausgewählte Dateien und Ordner im tl_files Ordner. Core-Dateien werden nicht berücksichtigt
+
* '''Persönliche Daten:''' Nur Dateien und Ordner im tl_files Ordner. Core-Dateien werden nicht berücksichtigt
 +
* '''Konfigurationsdateien:''' Einträge aus der localconfig.php
  
Standardmäßig ist die Option '''Persönliche Daten''' ausgewählt. Danach kann man die DB-Tabellen auswählen, man muss in diesem Schritt wissen welche Tabellen welche Daten enthält. Zum Schluss wählt man bei Bedarf noch Dateien und Ordner im tl_files aus und klickt für den Start der Synchronisation auf den Button "Client synchronisieren".
+
Datenbank-Tabellen werden nicht mehr (wie es bis Version 2.1 war) im DCA ausgewählt, sondern während der Synchronisation in einer Art Vergleichsliste dargestellt. Dort kann man dann auswählen welche Tabelle man synchronisieren will und welche ignoriert werden sollen.
 +
 
 +
==Backups==
 +
 
 +
Backups können im Backend unter dem Menüpunkt Backups angelegt und wiederhergestellt werden. Alle Backups werden im automatisch angelegten Ordner "syncCto_backups" in den tl_files abgelegt. Datenbanken finden sich im Ordner "database" und Dateien im Ordner "files". Wenn man Backups wieder einspielen möchte, klickt man im Menüpunkt auf Backups und wählt die Art der Wiederherstellung. Im nächsten Schritt wählt man die entsprechende Datei aus und klickt auf "Wiederherstellen". Die Dateien oder die Datenbank auf dem Server werden danach mit den Daten aus dem Backup überschrieben.
 +
 
 +
===Backups automatisiert löschen===
 +
 
 +
Zur Verfügung stehen folgende zwei PHP-Skripte:
 +
 
 +
* '''SyncCtoDeleteDbBackups.php''' Löscht alle Datenbank-Backups
 +
* '''SyncCtoDeleteFileBackups.php''' Löscht alle Datei-Backups
 +
 
 +
Die Cron Extension wird seit 2.1 nicht mehr automatisch ausgeliefert, daher muss sie manuell nachinstalliert werden oder die Dateien werden über einen echten Cronjob konfiguriert.
  
 
==Anwendungsfall 1==
 
==Anwendungsfall 1==
Zeile 45: Zeile 73:
 
Auf dem Webserver laufen zwei Contao-Installationen.
 
Auf dem Webserver laufen zwei Contao-Installationen.
  
* Die Adresse der 1. Webseite heißt http://192.168.0.100/server/
+
* Die Adresse der 1. Webseite heißt ''<nowiki>http://192.168.0.100/server/</nowiki>''
* Die Adresse der 2. Webseite heißt http://192.168.0.100/client/
+
* Die Adresse der 2. Webseite heißt ''<nowiki>http://192.168.0.100/client/</nowiki>''
  
 
Der Server, bei syncCto, beschreibt immer die Installation die alle Informationen hat, die man auf eine andere Installation übertragen will. Dieses Ziel wird bei syncCto als Client beschrieben. Server und Client laufen also auf der gleichen Maschine auf den gleichen Webserver.  
 
Der Server, bei syncCto, beschreibt immer die Installation die alle Informationen hat, die man auf eine andere Installation übertragen will. Dieses Ziel wird bei syncCto als Client beschrieben. Server und Client laufen also auf der gleichen Maschine auf den gleichen Webserver.  
Zeile 52: Zeile 80:
 
==Anwendungsfall 2==
 
==Anwendungsfall 2==
  
Es gibt 2 Seiten die auf zwei verschiedenen Maschinen laufen. Beide Maschinen sind verbunden. Ob nun im lokalen Netzwerk oder über das Internet. Dabei ist es wichtig das der Server den Client erreichen kann. Der Server kann lokal zuhause auf dem internen Webserver laufen. Der Client allerdings muss von außen erreichbar sein.
+
Es gibt 2 Seiten die auf zwei verschiedenen Maschinen laufen. Beide Maschinen sind verbunden; egal ob nun im lokalen Netzwerk oder über das Internet. Dabei ist es wichtig das der Server den Client erreichen kann. Der Server kann lokal zuhause auf dem internen Webserver laufen. Der Client allerdings muss von außen erreichbar sein.
  
* Server läuft lokal zuhause die Adresse ist http://192.168.0.100/server
+
* Server läuft lokal zuhause die Adresse ist ''<nowiki>http://192.168.0.100/server</nowiki>''
* Der Client liegt im Internet und hat die Adresse http://www.example.com
+
* Der Client liegt im Internet und hat die Adresse ''<nowiki>http://www.example.com</nowiki>''
  
So wird im Server für den Client einfach die Adresse http://www.example.com eingetragen.
+
So wird im Server für den Client einfach die Adresse ''<nowiki>http://www.example.com</nowiki>'' eingetragen.
  
[[Category:Extensions]]
+
==Mögliche Problemfälle==
 +
 
 +
Der SMH ist keine Lösung da die Daten via HTTP versendet werden. Ein ordentlich konfigurierter Server ist daher Pflicht.
 +
 
 +
Um möglichen Problemfällen auf die Spur zu kommen kann man den Debugmodus in den Einstellungen aktivieren. Dabei wird die Dauer der Synchronisation und die Speicherauslastung während der Synchronisation ausgegeben. Zusätzlich werden Debugdateien im Tempordner von Contao abgelegt. Diese sind bei Problemen immer im Forum anzuhängen.
 +
 
 +
==Tipps und Tricks==
 +
 
 +
===Providerspezifische Anpassungen===
 +
 
 +
====Domainfactory====
 +
Bei Domainfactory sind oft die Defaulteinstellungen in der PHP.INI nicht ausreichend. So ist gerne der PHP_SAFEMODE aktiviert und dafür ZipArchive deaktiviert. Zum Glück bietet DF die Möglichkeit, im Kundenmenü je Domain eine eigene PHP.INI anzulegen.
 +
 
 +
Mit den folgenden Einstellungen klappt es dann auch bei df.eu:
 +
 
 +
extension_dir = "/usr/local/lib/php_modules/5-STABLE"
 +
 
 +
extension = "zip.so"
 +
 
 +
Bei dieser Gelegenheit kann man dann auch gleich das vorgegebene Memory-Limit auf 128 MB anpassen.
 +
 
 +
Quelle: u.a. [http://www.df.eu/de/service/df-faq/webhosting/skriptsprachen/phpini-editor/ DomainFactory]
 +
 
 +
==Weiterführende Links==
 +
 
 +
* [http://www.contao-tutorials.de/tutorial/contao-installationen-synchronisieren.html Tutorial zu syncCto2]

Aktuelle Version vom 17. Juni 2014, 13:03 Uhr

Mit syncCto kann der Benutzer im Backend mehrere Contao-Installationen miteinander synchronisieren.

Erweiterungs-Übersicht
Entwickler Webseite http://www.men-at-work.de
Version der Erweiterung 2.6.1
Kompatibilität mit Contao Version 2.11 - 3.2
Link zum Extension Repository http://www.contao.org/erweiterungsliste/view/syncCto.html
Link zum Tracker https://github.com/menatwork/syncCto


Was ist syncCto?

syncCto bietet die Möglichkeit mehrere Contao-Installationen auf Basis einer Grund-Installation zu synchronisieren. Alle Aktionen können bequem im Backend durchgeführt werden. Durch die Integration in das Contao Rechtesystem können auch Redakteure eine Auswahl vorher definierter Datenbank-Tabellen und Dateien synchronisieren.

Ein integrierter Backup-Manager sichert ausgewählte Datenbank-Tabellen, wahlweise die gesamte Contao-Installation oder nur die persönlichen Daten. Angelegte Backups können durch den Backup-Manager auch wieder importiert werden.

Durch die Verwendung von syncCto können Redakteure schnell und einfach in einem Preview-System arbeiten und bei Vollendung der Arbeit den aktuellen und freigegebenen Stand zum Live-System synchronisieren.

Server und Client bei syncCto

Zu unterscheiden ist zwischen Server und Client. Die Server-Installation ist die Installation die auf den Client übertragen werden soll. Der Client ist die Contao Installation, zu der synchronisiert werden soll, also meistens die Installation, die auf dem Live-Server liegt.
Anders gesagt, Entwicklungssystem: syncCto Server ; Livesystem: syncCto Client. Es gibt komplexere Beispiele, dazu folgt mehr in den weiteren Abschnitten.

Konfiguration

Systemcheck

Für eine reibungslose und fehlerfreie Synchronisation ist es wichtig als erstes alle Installationen zu kontrollieren. Dafür steht der neue Menüpunkt Systemcheck zur Verfügung, denn dort werden alle für syncCto wichtigen Funktionen und Ressourcen des Servers aufgelistet. Sind alle Zellen grün, ist der erste Schritt getan. Sollte dies nicht der Fall sein, kann syncCto womöglich nicht erfolgreich funktionieren.

Einstellungen

Bevor man die erste Installation synchronisieren kann, muss zwingend bei allen Installationen auf denen syncCto installiert ist, der Menüpunkt Einstellungen (Contao Einstellungen) aufgerufen und gespeichert werden. Bei diesem Vorgang wird der ctoCommunication API Key generiert. Den ctoCommunication API Key aus den Einstellungen der Clientinstallation benötigt man später bei der Erstellung des zuvor erwähnten Clients.

Zu beachten: Der von syncCto verwendete ctoCommunication API Key ist nicht der Contao-Installations-Schlüssel.

Clients verwalten

Um im Server einen neuen Client anzulegen, klickt man im Menüpunkt Clients einfach auf den Button "Neuer Client".

  • ctoCommunication API Key: Dieser Schlüssel sichert die Kommunikation zwischen den Contao-Installationen ab.
  • Titel: z.B. der Kundenname und der Name des Servers
  • Beschreibung: Eine aussagekräftige Beschreibung des Servers (Seit syncCto 2.6 nicht mehr enthalten)
  • Domain: Die Domain des Clients, ohne Unterverzeichnis
  • Serverpfad: Falls sich die Installation in einem Unterverzeichnis befindet
  • Portnummer: Standardmäßig ist es der Port 80
  • Verschlüsselungs-Engine: Es stehen drei Möglichkeiten zur Verfügung, in der Regel genügt "Blowfish"
  • HTTP-Authentifizierung aktivieren: Falls der Client mit einer .htaccess abgesichert ist, kann man hier den Benutzernamen und das Passwort eingeben und die gesicherte Installation synchronisieren

Synchronisation

Um den Client mit dem Server zu synchronisieren, klickt man beim entsprechenden Client auf den rechten Button "Client synchronisieren". Im nächsten Fenster wählt man die Synchronisationsart aus.

  • Contao-Installation: Die gesamte Contao-Installation, ausgenommen ist tl_files
  • Persönliche Daten: Nur Dateien und Ordner im tl_files Ordner. Core-Dateien werden nicht berücksichtigt
  • Konfigurationsdateien: Einträge aus der localconfig.php

Datenbank-Tabellen werden nicht mehr (wie es bis Version 2.1 war) im DCA ausgewählt, sondern während der Synchronisation in einer Art Vergleichsliste dargestellt. Dort kann man dann auswählen welche Tabelle man synchronisieren will und welche ignoriert werden sollen.

Backups

Backups können im Backend unter dem Menüpunkt Backups angelegt und wiederhergestellt werden. Alle Backups werden im automatisch angelegten Ordner "syncCto_backups" in den tl_files abgelegt. Datenbanken finden sich im Ordner "database" und Dateien im Ordner "files". Wenn man Backups wieder einspielen möchte, klickt man im Menüpunkt auf Backups und wählt die Art der Wiederherstellung. Im nächsten Schritt wählt man die entsprechende Datei aus und klickt auf "Wiederherstellen". Die Dateien oder die Datenbank auf dem Server werden danach mit den Daten aus dem Backup überschrieben.

Backups automatisiert löschen

Zur Verfügung stehen folgende zwei PHP-Skripte:

  • SyncCtoDeleteDbBackups.php Löscht alle Datenbank-Backups
  • SyncCtoDeleteFileBackups.php Löscht alle Datei-Backups

Die Cron Extension wird seit 2.1 nicht mehr automatisch ausgeliefert, daher muss sie manuell nachinstalliert werden oder die Dateien werden über einen echten Cronjob konfiguriert.

Anwendungsfall 1

Auf dem Webserver laufen zwei Contao-Installationen.

  • Die Adresse der 1. Webseite heißt http://192.168.0.100/server/
  • Die Adresse der 2. Webseite heißt http://192.168.0.100/client/

Der Server, bei syncCto, beschreibt immer die Installation die alle Informationen hat, die man auf eine andere Installation übertragen will. Dieses Ziel wird bei syncCto als Client beschrieben. Server und Client laufen also auf der gleichen Maschine auf den gleichen Webserver.

Anwendungsfall 2

Es gibt 2 Seiten die auf zwei verschiedenen Maschinen laufen. Beide Maschinen sind verbunden; egal ob nun im lokalen Netzwerk oder über das Internet. Dabei ist es wichtig das der Server den Client erreichen kann. Der Server kann lokal zuhause auf dem internen Webserver laufen. Der Client allerdings muss von außen erreichbar sein.

  • Server läuft lokal zuhause die Adresse ist http://192.168.0.100/server
  • Der Client liegt im Internet und hat die Adresse http://www.example.com

So wird im Server für den Client einfach die Adresse http://www.example.com eingetragen.

Mögliche Problemfälle

Der SMH ist keine Lösung da die Daten via HTTP versendet werden. Ein ordentlich konfigurierter Server ist daher Pflicht.

Um möglichen Problemfällen auf die Spur zu kommen kann man den Debugmodus in den Einstellungen aktivieren. Dabei wird die Dauer der Synchronisation und die Speicherauslastung während der Synchronisation ausgegeben. Zusätzlich werden Debugdateien im Tempordner von Contao abgelegt. Diese sind bei Problemen immer im Forum anzuhängen.

Tipps und Tricks

Providerspezifische Anpassungen

Domainfactory

Bei Domainfactory sind oft die Defaulteinstellungen in der PHP.INI nicht ausreichend. So ist gerne der PHP_SAFEMODE aktiviert und dafür ZipArchive deaktiviert. Zum Glück bietet DF die Möglichkeit, im Kundenmenü je Domain eine eigene PHP.INI anzulegen.

Mit den folgenden Einstellungen klappt es dann auch bei df.eu:

extension_dir = "/usr/local/lib/php_modules/5-STABLE"

extension = "zip.so"

Bei dieser Gelegenheit kann man dann auch gleich das vorgegebene Memory-Limit auf 128 MB anpassen.

Quelle: u.a. DomainFactory

Weiterführende Links

Ansichten
Meine Werkzeuge

Contao Community Documentation

<user> Composer meckert bei Isotope, dass er mit tablelookupwizard 3.1 nicht zurecht kommt - korrekt?
<Toflar> keine Ahnung, sowas weiss ich doch nicht auswendig :D
<user> wer dann ;)
<Toflar> na niemand, deswegen schreibt man's ja in die composer.json

Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge