Synchronisation mit dem FTP-Server der Webseite

Veröffentlicht: 29. Januar 2016 (Zuletzt geändert am 20. Juli 2019)
0 Kommentare
Enthalten in einer Kategorie: Website
Teil 10 von 10 in der Beitragsreihe 'Automatisierung statischer Webseiten'

Aktualisierung vom 20.07.2019: Ursprünglich wurde hier die Synchronisation mit dem Firefox-Addon FireFTP vorgestellt. Mit Version 57 von Firefox (veröffentlicht am 14. November 2017) wurde jedoch die Addon-Technologie auf WebExtensions umgestellt. Leider wurde FireFTP bis heute nicht darauf angepasst, was evtl auch an technischen Beschränkungen des neuen Systems liegt, da dies mehr wert auf Sicherheit und Abkopplung zum Kern von Firefox legt. Stattdessen habe ich diesen Beitrag umgeschrieben, so dass er jetzt die Synchronisation mit dem Windows Programm WinSCP erläutert. Außerdem ist noch zu erwähnen, dass ich die hier beschriebene Synchronisation nur noch am Backend der Webseite, also den php und css Dateien nutze. Neue oder geänderte Beiträge werden über das WordPress Web-Interface editiert.

In den letzten 9 Artikeln dieser Serie habe ich ausführlich beschrieben, wie ich diese statischen Webseiten möglichst klug und effizient automatisiert werden können. Das letzte Hindernis zur Veröffentlichung ist das Hochladen auf Webspace der Webseite. Klingt zunächst einfach, wenn man immer alles hochladen möchte. Das ist aber nicht notwendig, stattdessen zeige ich hier, wie man einfach mit dem FTP-Server der Webseite synchronisiert.

Als FTP-Clienten nutze ich WinSCP, das unter Windows läuft. WinSCP hat eine Funktion zum Vergleichen der Inhalte von Ordnern zwischen einem lokalen Verzeichnis und dem entfernten Verzeichnis auf dem Server. Die Option findet sich im Menü unter “Commands” und “Synchronize…”. Der Abgleich geschieht immer rekursiv im aktuellen Verzeichnis. Der rekursive Vergleich ist wichtig, damit auch alle Unterordner mit einbezogen werden.

Die Option "Synchronize..." unter "Commands" gleicht das lokale mit dem FTP-Verzeichnis ab.Vergrößern
Die Option “Synchronize…” unter “Commands” gleicht das lokale mit dem FTP-Verzeichnis ab.

Nach Anwählen der Option führt WinSCP einige Kommandos automatisch aus. Je nach Anzahl der Ordner und Dateien kann der Vergleichsvorgang etwas dauern. Es wird dabei auf Existenz der Dateien als auch auf Unterschiede in der Dateigrößen geprüft. Der Inhalt der Datei wird nicht geprüft, was in einigen Situationen problematisch sein kann (z.B. Schreibfehler korrigiert)!

Wichtig ist die Einstellung von "Remote" als Direction und die Auswahl der eingestellten Transfer-Settings.Vergrößern
Wichtig ist die Einstellung von “Remote” als Direction und die Auswahl der eingestellten Transfer-Settings.

Im nächsten Menü wählen Sie “Remote” als Zielverzeichnis. Achten Sie darauf, dass Die Option “Delete Files” nicht ausgewählt ist, damit nicht aus Versehen wichtige Dateien gelöscht werden. Wählen Sie danach die passenden Optionen für den Transfer aus oder erstellen Sie ggf. ein neues Profil dafür. Diese “Transfer-Settings” helfen, wenn Sie ganze Ordner oder Dateien von der Synchronisation ausnehmen möchten. Dies ist beispielsweise bei SVN und Git stets der Fall, außer Sie möchten das ganze Repository mit hochladen. Die Ausnahmen unterstützen auch die Wildcard “*” und den Platzhalter “?”. Wenn Sie in der “Hostname mask” die Adresse des FTP-Servers eingeben, dann wird das Transfer-Profil automatisch ausgewählt, wenn Sie sich mit dem Server verbinden. Die anderen Optionen sind auf den Standardeinstellungen absolut OK.

Die Transfer-Optionen mit den definierten Ausnahmen.Vergrößern
Die Transfer-Optionen mit den definierten Ausnahmen.

Als nächstes erhält man eine Liste, in der man die Aktionen festlegen kann, die beim Synchronisieren ausgeführt werden sollen.

  • Lokal nicht vorhandene Dateien, also Dateien die auf dem Server vorhanden sind, aber nicht im lokalen Build-Ordner der Webseite, werden bei der Synchronisation ignoriert. Es wird also keine Aktion durchgeführt. Dies ist sinnvoll, wenn noch andere Inhalte auf dem FTP-Server liegen, die nicht zur Webseite gehören. Wenn Sie diese nicht ignorieren möchten, müssen Sie den Haken links neben der Datei setzen.
  • Alle nicht vorhandenen entfernten Dateien sind neue HTML-Dokumente oder Grafiken, die wir veröffentlichen möchten. Hier ist also die Option Hochladen (grüner Pfeil Richtung Remote) sinnvoll.
  • Dateien mit unterschiedlichen Dateigrößen sollten ebenfalls hochgeladen und damit auf dem Server überschrieben (roter Pfeil Richtung Remote) werden. Dies sind Dateien, die editiert wurden, beispielsweise durch neue Verlinkungen oder Korrekturen.
In der Dateiliste wählen Sie links alle Dateien aus für die eine Aktion durchgeführt werden soll.Vergrößern
In der Dateiliste wählen Sie links alle Dateien aus, für die eine Aktion durchgeführt werden soll.

Wer die letzten Artikel dieser Artikelserie gelesen hat, dem wird vermutlich schon aufgefallen sein, dass eigentlich viel mehr Unterschiede bestehen müssten. Alleine schon durch das automatische Einfügen des letzten Aktualisierungsdatums müssten eigentlich alle HTML-Seiten einen Unterschied aufweisen. Dies ist leider nicht immer der Fall, da die Dateien oft gleich groß sind – es wurden ja nur Zeichen ersetzt und nicht hinzugefügt oder entfernt. Dies ist ein Problem, dem man mit dem künstlichen Hinzufügen von (Leer-)Zeichen entgehen könnte, aber das halte ich für unsauber. Tatsächlich ist das Problem eher unbedeutend. Wenn man allerdings Rechtschreibfehler korrigiert, kann es auch nervig sein.

Die Überwachung von Verzeichnissen ist sehr nützlich bei Entwicklungsarbeiten.Vergrößern
Die Überwachung von Verzeichnissen ist sehr nützlich bei Entwicklungsarbeiten.

Noch ein Tipp: WinSCP bietet auch die Möglichkeit lokale Ordner zu überwachen und jede Änderung automatisch auf den FTP-Server hochzuladen. Ich habe diese Funktion sehr häufig während der Entwicklung meines eigenen WordPress-Themes auf einer Subdomain verwendet, da ich Änderungen nach einem Neuladen im Webbrowser direkt sehen konnte, nachdem ich die Datei im Quellcodeeditor gespeichert hatte.

Trotz dieser kleinen Probleme, die man einfach wissen muss um darauf ggf. reagieren zu können, ist die Synchronisation über WinSCP sehr komfortabel und einfach. Dies war der letzte Teil der Artikelserie zur Beschreibung der Realisierung von Features auf dieser statischen Webseite, die man sonst nur von dynamischen Webseiten inklusive Datenbank kennt. Ich hoffe die Erklärung war nicht zu komplex sondern einigermaßen verständlich. Wenn Sie Fragen oder Anregungen haben, dann melden Sie sich bei mir – nur mit konstruktiven Feedback können die Artikel und das Skript dahinter noch besser werden. Vielen Dank fürs Lesen!

Vorheriger Beitrag der Reihe

zurück

Teile deinen Kommentar oder Feedback zu diesem Beitrag.

Die Angabe der E-Mail-Adresse ist optional und wird nicht veröffentlicht. Sie wird zur Einbindung deines Gravatars und ggf. zur Kontaktaufnahme verwendet. Erforderliche Felder sind mit * markiert.

*

*

*

Durch Betätigen von "Kommentar abschicken", stimmen Sie der Veröffentlichung der eingegebenen Daten zu. Weitere Informationen finden Sie in der Datenschutzerklärung.
Sie können Quellcode über <pre><code>Quellcode</code></pre> in Kommentare einfügen.