Ermöglicht das browserbasierte Backup eines Wiki-Felds.
Download: siehe http://www.pmwiki.org/wiki/Cookbook/WbBackup
Installation
Wichtig: Sie benötigen die zlib-Bibliothek (siehe phpinfo()) sowie die pclzip-Bibliothek.
(Download unter http://www.phpconcept.net/pclzip/index.php)
- Speichern Sie die Datei wbbackup.php in Ihrem
cookbook-Verzeichnis. - Legen Sie ein Verzeichnis
pclzipunterhalb Ihrescookbook-Verzeichnisses an. - Laden Sie die
pclzip-Bibliothek herunter (http://www.phpconcept.net/pclzip/index.php) und legen Sie die Dateipclzip.lib.phpaus dem Download-Archiv in das Unterverzeichnispclzip.
Ihre Verzeichnisstruktur sollte nun so aussehen:
../cookbook
|- wbbackup.php
../cookbook/pclzip
|- pclzip.lib.php
- Binden Sie die wbbackup.php folgendermaßen ein: include_once( "$FarmD/cookbook/wbbackup.php" );
Konfiguration
WbBackup ist so vorkonfiguriert, daß Sie in der Regel wenig oder gar nichts konfigurieren müssen. Dennoch haben Sie weitreichende Möglichkeiten, das Backup zu beeinflussen.
$wbBackupAction
Default: wbbackup
Hiermit können Sie den action-Parameter verändern, der das Backup auslöst. (...URL...&action=wbbackup)
Bitte beachten Sie, daß Sie diesen Parameter angeben müssen, _bevor_ Sie die wbbackup.php einbinden! Das bedeutet auch, daß Sie diesen Parameter in einer Wiki-Farm nur farmweit ändern können.
Beispiel: $wbBackupAction = 'mybackup';
$wbBackupAuthLevel
Default: admin
Der notwendige Benutzerlevel, um das Backup aufrufen zu dürfen. Normalerweise sollte man dem normalen Besucher nicht einfach erlauben, ein Backup des Wikis herunter zu laden. Der Standardwert bedeutet, daß der Benutzer Administrations-Rechte braucht.
Bitte beachten Sie: Da das Backup im Kontext der aktuellen Seite ausgelöst wird, wird der Autorisierungsstatus für diese Seite als Kriterium herangezogen. Das bedeutet, wenn Sie hier "edit" angeben und ein Benutzer mit "edit"-Rechten auf nur eine Seite das Backup im Kontext dieser Seite auslöst, kann er alle Daten sichern und herunterladen. Das ist nicht notwendigerweise ein Sicherheitsrisiko, Sie sollten sich dessen aber bewußt sein, wenn Sie den Level ändern.
Gültige Werte: read, edit, attr, upload, admin
(Nicht alle sind sinnvoll...)
Beispiel: $wbBackupAuthLevel = 'admin';
$wbBackupDelAction
Default: wbbackupdel
Der Name des Parameters, über den die Löschfunktion aufgerufen werden kann. (...URL...&action=wbbackupdel)
Da dieser Parameter gesetzt werden muß, _bevor_ die Erweiterung eingebunden wird, kann der Parameter nur in der farmconfig.php, also für die komplette Wiki-Farm, geändert werden!
Bei Aufruf dieser Funktion erhält man eine Liste aller Backup-Dateien mit der Möglichkeit, diese zu löschen.
Beispiel: $wbBackupDelAction = 'mybackupdel';
$wbBackupDelAuthLevel
Default: admin
Der notwendige Benutzerlevel, um die Löschfunktion aufrufen zu dürfen. Es gilt das Gleiche wie oben.
Beispiel: $wbBackupDelAuthLevel = 'admin';
$wbBackupFileName
Default: wiki-backup-<dd-mm-yyyy>.zip
Name der zu erzeugenden Zip-Datei. In der Standard-Einstellung wird das aktuelle Datum im Dateinamen verwendet. Sie können aber auch einen festen Dateinamen angeben, was bedeutet, daß die jeweilige Datei immer wieder überschrieben wird, wenn Sie das Backup auslösen.
Beispiel: $wbBackupFileName = 'my-wiki-backup.zip';
$wbBackupDir
Default: ./__wiki_backups
Das Verzeichnis, in dem die Backups gespeichert werden.
Wichtig: Ist das Verzeichnis über das Web erreichbar (bei der Default-Einstellung ist das so), kann jemand, der den Pfad kennt, die Backups herunter laden! Bitte geben Sie hier ein Verzeichnis außerhalb des über Web erreichbaren Pfades an, so daß Backups nur per FTP heruntergeladen werden können, falls Sie Bedenken haben.
$wbBackupDirs
Default: local, pub, cookbook, wiki.d, uploads
Liste der Verzeichnisse, die gesichert werden. In obiger Standardeinstellung sind alle Verzeichnisse enthalten, in denen sich "Bewegungsdaten" befinden.
Verzeichnisse werden immer relativ zum Basis-Verzeichnis angegeben.
Hinweis: Sie können Verzeichnisse bzw. Unterverzeichnisse gezielt vom Backup ausschließen, indem Sie die $wbIgnoreDirs Option (s. u.) verwenden!
Beispiel: $wbBackupDirs = array( "local", "pub", "wiki.d" );
$wbBackupFile
Default: $wbBackupDir/$wbBackupFileName
Diese Einstellung sollte normalerweise nicht geändert werden. Wird diese Option zusammen mit $wbBackupDir und $wbBackupFileName gesetzt, gilt die hier vorgenommene Einstellung.
$wbBackupBaseUrl
Default: $ScriptUrl without script file name
Basis-URL für den Download der ZIP-Datei. Muß nur geändert werden, wenn die Datei nicht im Standardpfad liegt, also wenn Sie $wbBackupDir geändert haben.
$wbBackupUrl
Default: $wbBackupBaseURL/__wiki_backups/$wbBackupFileName
Die komplette URL zum Download. Muß nur geändert werden, wenn die Datei nicht unterhalb des Wiki-Verzeichnisses liegt. Wird auch $wbBackupBaseUrl gesetzt, hat diese Einstellung Vorrang.
$wbBackupShowLink
Default: TRUE
Besagt, daß unter der Zusammenfassung ein Download-Link angezeigt wird. Setzen Sie diese Einstellung auf FALSE, wenn die Backup-Datei nicht vom Web aus erreichbar ist.
Beispiel: $wbBackupShowLink = FALSE;
$wbBackupOverwrite
Default: FALSE
Einstellung, ob eine evtl. vorhandene Datei überschrieben werden darf. Sie sollten diese Einstellung normalerweise so belassen und veraltete Dateien mit Hilfe der 'wbbackupdel' Aktion entfernen. (Oder per FTP.)
Beispiel: $wbBackupOverwrite = TRUE;
$wbBackupTrace
Default: FALSE
Wird diese Einstellung auf TRUE gesetzt, erhält man ausführliche Informationen darüber, was das Script tut. Sollte man nur setzen, wenn man einen Fehler sucht.
Beispiel: $wbBackupTrace = TRUE;
$wbBackupIgnoreDirs
Default: pub/skins, pub/guiedit
Liste von Verzeichnissen, die aus der Sicherung ausgenommen werden. Sinnvoll, wenn die Sicherung wegen zu vieler Dateien fehl schlägt.
Verzeichnisse werden immer relativ zum Basis-Verzeichnis angegeben.
Beispiel: $wbBackupIgnoreDirs = array( "pub/skins", "pub/guiedit", "uploads" );
Das "skins"-Verzeichnis wird beispielsweise ausgenommen, da eine Vielzahl von skins, die unter Umständen viele und große Grafiken beinhalten, problematisch sein kann. Zudem ändern sich die Skins in der Regel nicht sehr häufig, so daß sie auch per FTP gesichert werden können.
$wbBackupSendToBrowser
Default: FALSE
Hiermit kann man erreichen, daß der Browser automatisch den Download der erzeugten ZIP-Datei beginnt, ohne daß auf den Download-Link geklickt werden muß.
Beispiel: $wbBackupSendToBrowser = TRUE;
Bekannte Fehler und mögliche Probleme
Es erscheint nur ein weißes Fenster
In einer Webserverumgebung verhindern verschiedene Einstellungen, daß ein Script zu lange laufen oder zu viel Arbeitsspeicher verbrauchen kann. Ist ein Wiki-Verzeichnis sehr umfangreich (beispielsweise viele Grafiken, PDFs oder ähnliches), kann es passieren, daß das Backup vom Webserver zwangsbeendet wird, bevor es zu Ende durchlaufen kann. Im Ergebnis bekommt man eine leere Seite, und die erzeugte ZIP-Datei ist ungültig.
In diesem Fall hilft es nur, Verzeichnisse aus der Sicherung auszunehmen. Ein guter Kandidat ist das uploads-Verzeichnis, das oft die meisten Daten beinhaltet. (siehe $wbIgnoreDirs)
Das Backup scheint durchzulaufen, aber es wurde keine Datei erzeugt, oder der Download-Link funktioniert nicht
Es gibt mehrere Möglichkeiten:
- Die entsprechenden Einstellung (s. o.) sind nicht korrekt
- Das Sicherungsverzeichnis existierte nicht, oder es konnte nicht automatisch erzeugt werden, daher konnte die ZIP-Datei nicht gespeichert werden. Prüfen Sie den Pfad und die Zugriffsrechte. (Es sind Schreibrechte erforderlich.)
Abort pclzip.lib.php : Missing zlib extensions
PHP muß mit den "zlib extensions" kompiliert sein, damit Sie diese Erweiterung nutzen können. Die Fehlermeldung besagt, daß das bei Ihnen nicht der Fall ist.
Release Notes
- Thursday, January 17, 2008
- First release.
- Tuesday, January 22, 2008
- Mod: renamed $wbIgnoreDirs to $wbBackupIgnoreDirs to unify variable names
Fix: Text outside php was sent to browser
| E-Mail: 