Remote Webseiten mit Sitecopy instand halten (Debian Squeeze/Ubuntu 11.10)

Version 1.0
Author: Falko Timme , 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:
  1. Existierende abseitige Seite und lokale Kopie, beide in
    Synchronisation.
  2. Existierende abseitige Seite, keine lokale Kopie.
  3. 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.

falko@falko-desktop:~$ 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.
falko@falko-desktop:~$


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):

falko@falko-desktop:~$ 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.
falko@falko-desktop:~$

Benutzen Sie dann

sitecopy --synch example.com

um die lokale Seite nach dem Vorbild der abseitigen Kopie zu aktualisieren.

falko@falko-desktop:~$ 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.
falko@falko-desktop:~$


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.

falko@falko-desktop:~$ 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.
falko@falko-desktop:~$

Benutzen Sie dann

sitecopy --update example.com

um die lokale Kopie auf den Server hochzuladen:

falko@falko-desktop:~$ 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.
falko@falko-desktop:~$


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):

falko@falko-desktop:~$ 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).
falko@falko-desktop:~$

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

falko@falko-desktop:~$ sitecopy --update example.com
sitecopy: Updating site `example.com' (on example.com in ~/web/)
Uploading info.php: [.] done.
sitecopy: Update completed successfully.
falko@falko-desktop:~$

Das war es! Viel Spaß mit Sitecopy!

6 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte