Remote Webseiten mit Sitecopy instand halten (Debian Squeeze/Ubuntu 11.10)
Version 1.0
Author: Falko Timme <ft [at] falkotimme [dot] com>, Christian Schmalfeld <c [dot] schmalfeld [at] projektfarm [dot] de>
Follow me on Twitter
Sitecopy ist ein Werkzeug zum Kopieren von lokal gespeicherten Webseiten auf einen abseitigen Webserver (mit Hilfe von FTP oder WebDAV). So lassen sich abseitige Seiten leicht synchronisieren, indem Sie modifizierte lokale Dateien auf den Server hochladen und Dateien löschen, die auch schon auf dem lokalen Computer gelöscht wurden. Dieses Tutorial zeigt Ihnen, wie Sie mit Sitecopy Ihre Webseite von Ihrem lokalen Debian Squeeze/Ubuntu 11.10 Desktop verwalten.
Für die Richtigkeit der Inhalte des Tutorials gebe ich keinerlei Garantie.
1 Vorbemerkung
Ich benutze auf meinem Debian Squeeze/Ubuntu 11.10 Desktop den Benutzernamen falko (ich bin mit diesem Benutzer angemeldet – melden Sie sich bitte nicht als root an). Die Dateien für die abseitige Webseite example.com sind im Verzeichnis /home/falko/sites/example.com/ des lokalen Computers gespeichert. Das abseitige Stammverzeichnis ist /var/www/example.com/web/.
Sie können Sitecopy mit FTP oder WebDAV benutzen, Sie sollten deshalb ein Konto für einen der beiden Dienste auf dem abseitigen Server haben. Ich benutze in diesem Tutorial den FTP/WebDAV Benutzernamen defaultfalko und das Passwort howtoforge.
2 Installation von Sitecopy
Sitecopy kann wie folgt auf dem lokalen Desktop installiert werden (da hierzu root Benutzerrechte benötigt werden, benutzen wir sudo):
sudo apt-get install sitecopy
Am besten sehen Sie sich nun Sitecopys man Handbuchseite an, um sich mit den Optionen vertraut zu machen:
man sitecopy
3 Konfiguration von Sitecopy
Gehen Sie ins Home Verzeichnis Ihres lokalen Desktops…
cd ~
… und erstellen Sie den Ordner .sitecopy mit den Rechten 700 (Sitecopy benutzt diesen Ordner um Details von Dateien zu speichern):
mkdir -m 700 .sitecopy
Erstellen Sie als nächstes die Sitecopy Konfigurationsdatei .sitecopyrc:
touch .sitecopyrc
chmod 600 .sitecopyrc
Öffnen Sie die Datei…
vi .sitecopyrc
… und tragen Sie die Konfiguration für die Seite example.com ein. Hier sind zwei Beispiele, eines für FTP…
site example.com server example.com username defaultfalko password howtoforge local /home/administrator/sites/example.com/ remote ~/web/ exclude *.bak exclude *~ |
… und eines für WebDAV:
site example.com server example.com protocol webdav username defaultfalko password howtoforge local /home/administrator/sites/example.com/ remote /var/www/example.com/web/ exclude *.bak exclude *~ |
(Sie können einen Absatz für jede Webseite anlegen, welche Sie mit Sitecopy verwalten wollen.)
Der site Direktive folgt ein Name für die Webseite – hier können Sie frei entscheiden, z.B. example.com oder mysite. Dieser Name wird später in den Sitecopy Befehlen verwendet. Die nachfolgenden, zur Webseite gehörenden Optionen müssen eingerückt werden!
Die meisten der folgenden Konfigurationsoptionen sind selbsterklärend. Das Standardprotokoll ist FTP; wollen Sie WebDAV benutzen, geben Sie bitte protocol webdav an. Die local Direktive enthält den lokalen Pfad zur Webseitenkopie, remote enthält den Pfad der Webseite auf dem abseitigen Server – dieser kann absolut oder relativ sein. Ist Ihr Benutzer chrooted (sowie es normalerweise mit FTP Benutzern ist), so sollten Sie einen relativen Pfad benutzen (wie ~/ oder ~/web). Benutzen Sie andernfalls den absoluten Pfad.
Die Zeilen exclude sind optional, diese sind nur da um zu demonstrieren, wie Sie Dateien von der Verwaltung durch Sitecopy ausschließen.
Auf der man Handbuchseite können Sie mehr zur Konfiguration von Sitecopy erfahren:
man sitecopy
4 Erste Schritte
Bevor Sie Sitecopy das erste Mal benutzen, müssen Sie entscheiden, welches der folgenden Szenarios am ehesten auf Ihre Situation zutrifft:
- Existierende abseitige Seite und lokale Kopie, beide in
Synchronisation. - Existierende abseitige Seite, keine lokale Kopie.
- Neue abseitige Seite, existierende lokale Kopie.
4.1 Existierende abseitige Seite und lokale Kopie, beide in Synchronisation
Sind sowohl Seite als auch lokale Kopie vorhanden und in Synchronisation, benutzen Sie
sitecopy –catchup example.com
um Sitecopy klarzumachen, dass die lokale Seite deckungsgleich mit der abseitigen Kopie ist. Ersetzen Sie example.com mit dem Namen Ihrer Seite, so wie Sie ihn in der .sitecopyrc Datei konfiguriert haben.
[email protected]:~$ sitecopy –catchup example.com
sitecopy: Catching up site `example.com‘ (on example.com in ~/web/)
sitecopy: All the files and and directories are marked as updatedremotely.
[email protected]:~$
4.2 Existierende abseitige Seite, keine lokale Kopie
Haben Sie keine lokale Kopie der Seite, benutzen Sie zuerst
sitecopy –fetch example.com
sodass Sitecopy eine Liste der Dateien vom Server holt (ersetzen Sie example.com mit dem Namen Ihrer Seite, so wie Sie ihn in der .sitecopyrc Datei konfiguriert haben):
[email protected]:~$ sitecopy –fetch example.com
sitecopy: Fetching site `example.com‘ (on example.com in ~/web/)
File: data/index.html – size 5
File: error/503.html – size 1906
File: error/502.html – size 1881
File: error/500.html – size 1851
File: error/405.html – size 1810
File: error/404.html – size 1806
File: error/403.html – size 1809
File: error/401.html – size 1806
File: error/400.html – size 1792
File: stats/.htaccess – size 116
File: robots.txt – size 24
File: index.html – size 1861
File: favicon.ico – size 7358
File: .htaccess – size 26
Directory: data/
Directory: error/
Directory: stats/
sitecopy: Fetch completed successfully.
[email protected]:~$
Benutzen Sie dann
sitecopy –synch example.com
um die lokale Seite nach dem Vorbild der abseitigen Kopie zu aktualisieren.
[email protected]:~$ sitecopy –synch example.com
sitecopy: Synchronizing site `example.com‘ (on example.com in ~/web/)
Creating data/: done.
Creating error/: done.
Creating stats/: done.
Downloading data/index.html: [.] done.
Downloading error/503.html: [.] done.
Downloading error/502.html: [.] done.
Downloading error/500.html: [.] done.
Downloading error/405.html: [.] done.
Downloading error/404.html: [.] done.
Downloading error/403.html: [.] done.
Downloading error/401.html: [.] done.
Downloading error/400.html: [.] done.
Downloading stats/.htaccess: [.] done.
Downloading robots.txt: [.] done.
Downloading index.html: [.] done.
Downloading favicon.ico: [.] done.
Downloading .htaccess: [.] done.
sitecopy: Synchronize completed successfully.
[email protected]:~$
4.3 Neue abseitige Seite, existierende lokale Kopie
Existiert eine lokale Kopie aber Sie haben nur eine leere abseitige Seite, benutzen Sie zuerst
sitecopy –init example.com
um die Seite zu initialisieren. Ersetzen Sie example.com mit dem Namen Ihrer Seite, so wie Sie ihn in der .sitecopyrc Datei konfiguriert haben.
[email protected]:~$ sitecopy –init example.com
sitecopy: Initializing site `example.com‘ (on example.com in ~/web/)
sitecopy: All the files and directories are marked as NOT updated remotely.
[email protected]:~$
Benutzen Sie dann
sitecopy –update example.com
um die lokale Kopie auf den Server hochzuladen:
[email protected]:~$ sitecopy –update example.com
sitecopy: Updating site `example.com‘ (on example.com in ~/web/)
Creating stats/: done.
Creating data/: done.
Creating error/: done.
Uploading stats/.htaccess: [.] done.
Uploading data/index.html: [.] done.
Uploading error/403.html: [.] done.
Uploading error/401.html: [.] done.
Uploading error/404.html: [.] done.
Uploading error/503.html: [.] done.
Uploading error/400.html: [.] done.
Uploading error/502.html: [.] done.
Uploading error/405.html: [.] done.
Uploading error/500.html: [.] done.
Uploading index.html: [.] done.
Uploading robots.txt: [.] done.
Uploading .htaccess: [.] done.
Uploading favicon.ico: [.] done.
sitecopy: Update completed successfully.
[email protected]:~$
5 Benutzung von Sitecopy
Die Benutzung von Sitecopy ist ziemlich einfach. Sie können mit Ihrer lokalen Kopie arbeiten und Daten hochladen, erstellen und löschen. Ein erster, aber optionaler Schritt ist es
sitecopy example.com
zu benutzen um herauszufinden, welche lokalen Dateien Änderungen aufweisen (ersetzen Sie example.com mit dem Namen Ihrer Seite, so wie Sie ihn in der .sitecopyrc Datei konfiguriert haben):
[email protected]:~$ sitecopy example.com
sitecopy: Showing changes to site `example.com‘ (on example.com in ~/web/)
* These items have been added since the last update: info.php
sitecopy: The remote site needs updating (1 item to update).
[email protected]:~$
Um Ihre Webseite nach dem Vorbild der lokalen Kopie zu aktualisieren (also neue und geänderte Dateien auf den Server hochzuladen sowie Dateien zu löschen, welche auch in der lokalen Kopie gelöscht wurden), benutzen Sie einfach:
sitecopy –update example.com
[email protected]:~$ sitecopy –update example.com
sitecopy: Updating site `example.com‘ (on example.com in ~/web/)
Uploading info.php: [.] done.
sitecopy: Update completed successfully.
[email protected]:~$
Das war es! Viel Spaß mit Sitecopy!
6 Links
- sitecopy: http://www.manyfish.co.uk/sitecopy/
- Debian: http://www.debian.org/
- Ubuntu: http://www.ubuntu.com/