PHP WebDAV · 4 min read · Dec 30, 2025
Installation der PHP WebDAV-Erweiterung auf Debian Squeeze
Installation der PHP WebDAV-Erweiterung auf Debian Squeeze
Version 1.0
Autor: Falko Timme
Folge mir auf Twitter
Dieser Artikel zeigt, wie Sie die PHP WebDAV-Erweiterung für PHP5 auf einem Debian Squeeze-System installieren können. Die PHP WebDAV-Erweiterung ermöglicht einfachen Zugriff auf entfernte Ressourcen über das DAV-Protokoll von PHP-Skripten.
Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!
1 Vorbemerkung
Ich verwende hier einen Debian Squeeze-Server. Ich gehe davon aus, dass Apache2 und PHP5 bereits installiert und funktionsfähig sind.
2 Installation der PHP WebDAV-Erweiterung
Bevor wir die PHP WebDAV-Erweiterung installieren, müssen wir einige Abhängigkeiten wie folgt installieren:
apt-get install php5-dev build-essential libneon27 libneon27-devAls nächstes laden wir die PHP WebDAV-Erweiterung herunter und entpacken sie:
cd /tmp
wget http://download.pureftpd.org/php-webdav/php-webdav-1.2.tar.gz
tar xvfz php-webdav-1.2.tar.gzDann wechseln wir in das dav-Verzeichnis…
cd dav/… und bauen die PHP WebDAV-Erweiterung:
phpize
./configure --enable-dav
make installUm die Erweiterung zu aktivieren, erstellen wir die Datei /etc/php5/conf.d/dav.ini…
vi /etc/php5/conf.d/dav.ini| extension=dav.so |
… und starten Apache neu:
/etc/init.d/apache2 restartDas war’s!
3 Verwendung der PHP WebDAV-Erweiterung
Hier ist ein kleines PHP-Skript, das zeigt, wie Sie die PHP WebDAV-Erweiterung verwenden können:
| |
Dieses Beispiel sollte ziemlich selbsterklärend sein, jedoch gibt es auch eine README-Datei im heruntergeladenen PHP WebDAV-Quellpaket, die eine vollständige Funktionsreferenz enthält:
*.:. PHP WebDAV-Erweiterung .:.
- *———————— BLURB ————————
- Die PHP WebDAV-Erweiterung ermöglicht einfachen Zugriff auf entfernte Ressourcen über das
DAV-Protokoll. Sie basiert auf der Neon-Referenzbibliothek. Die Homepage der PHP WebDAV-Erweiterung ist http://php-webdav.pureftpd.org *Bitte melden Sie Fehler und Vorschläge an jpureftpd org - *———————— INSTALLATION ————————
- Diese Erweiterung erfordert die Neon-Bibliothek und die zugehörigen Header-Dateien. Neon kann heruntergeladen werden von: http://www.webdav.org/neon/ Bereits vorgefertigte Pakete und Ports sind für die meisten Betriebssysteme
und Distributionen verfügbar. Um die PHP WebDAV-Erweiterung zu kompilieren und zu installieren, folgen Sie einfach der
standardmäßigen PECL-Prozedur : *$ phpize
$ ./configure –enable-dav
$ env AUTOCONF_VERSION=2.61 phpize (ersetzen Sie 2.61 durch eine der derzeit installierten Versionen von autoconf auf Ihrem
System) ———————— GRUNDLEGENDES BEISPIEL ————————
- *webdav_connect(‘http://webdav.example.com/dav’, ‘davuser’, ‘davpassword’);
$a = webdav_get(‘/my/nice/object.txt’);
webdav_put(‘/your/nice/thing.txt’, $data);
webdav_unlink(‘/unwanted_resource.txt’);
webdav_rename(‘/dir/old_name’, ‘/dir/new_name’);
webdav_copy(‘/dir/orig_dir’, ‘/dir/new_dir’, TRUE);
webdav_close(); - *———————— BEISPIEL FÜR BENANNTES RESSOURCE ————————
- *$res = webdav_connect(‘http://webdav.example.com/dav’, ‘davuser’, ‘davpassword’);
$a = webdav_get(‘/my/nice/object.txt’, $res);
webdav_put(‘/your/nice/thing.txt’, $data, $res);
webdav_unlink(‘/unwanted_resource.txt’, $res);
webdav_rename(‘/dir/old_name’, ‘/dir/new_name’, $res);
webdav_copy(‘/dir/orig_dir’, ‘/dir/new_dir’, TRUE, $res);
webdav_close($res); - *———————— HERSTELLUNG EINER VERBINDUNG ————————
- Um eine neue Verbindung herzustellen, verwenden Sie: webdav_connect(string base_url [, string user [, string password
[, int timeout]]] Beispiele: webdav_connect(‘http://webdav.example.org/dav/‘)
webdav_connect(‘http://webdav.example.org/dav/‘, ‘myuser’, ‘mypassword’)
webdav_connect(‘http://webdav.example.org/dav/‘, ‘myuser’, ‘mypassword’, 10) Das Schließen einer Sitzung erfordert nur einen Aufruf von webdav_close() : webdav_close()
webdav_close($resource) Die Basis-URL ist eine Zeichenfolge, die an URI-Teile anderer
Funktionen angehängt wird, um die vollständige Ressourcen-URL zu erhalten. Beispiele: webdav_connect(‘http://webdav.example.org/dav/‘);
$a = webdav_get(‘nice/object.txt’); => ruft http://webdav.example.org/dav/nice/object.txt ab webdav_connect(‘http://webdav.example.org/dav’);
$a = webdav_get(‘/nice/object.txt’); => ruft ebenfalls http://webdav.example.org/dav/nice/object.txt ab webdav_connect(‘http://webdav.example.org/dav’);
$a = webdav_get(‘nice/object.txt’); => FALSCH : ruft http://webdav.example.org/davnice/object.txt ab webdav_connect(‘http://webdav.example.org/dav/‘);
$a = webdav_get(‘/nice/object.txt’); => FALSCH : ruft http://webdav.example.org/dav//nice/object.txt ab *Alternativ kann der Name webdav_open() anstelle von
webdav_connect() verwendet werden. - *———————— ABRUFEN EINER RESSOURCE ————————
- Um eine Ressource abzurufen, verwenden Sie:
webdav_get(string uri [, resource session]) *Die Funktion gibt den Inhalt zurück oder FALSE, wenn ein Fehler aufgetreten ist. - *———————— SPEICHERN EINER RESSOURCE ————————
- *Das Speichern einer Ressource ist über die Funktion webdav_put() verfügbar:
webdav_put(string uri, string data [, resource session]) - *———————— LÖSCHEN EINER RESSOURCE ————————
- webdav_delete() löscht eine Ressource :
webdav_delete(string uri [, resource session]) *Alternativ können die Namen webdav_unlink(), webdav_remove() und
webdav_rmdir() anstelle von webdav_delete() verwendet werden. - *———————— ERSTELLEN EINER SAMMLUNG ————————
- Eine Sammlung (denken Sie daran, dass es sich um ein Unterverzeichnis handelt, wenn Sie mit
DAV nicht vertraut sind) wird mit der Funktion webdav_mkcol() erstellt : bool webdav_mkcol(string uri [, resource session]) *Alternativ kann der Name webdav_mkdir() anstelle von
webdav_mkcol() verwendet werden. - *———————— KOPIEREN EINER RESSOURCE ————————
- Wenn der Server es implementiert, können Ressourcen kopiert werden: webdav_copy(string source_uri, string target_uri
[, bool overwrite [, bool recursive [, resource session]]]) *Standardmäßig können Ressourcen überschrieben werden und sie werden rekursiv kopiert. - *———————— VERSCHIEBEN/UMBENENNEN EINER RESSOURCE ————————
- Ressourcen können auch verschoben oder umbenannt werden: webdav_move(string source_uri, string target_uri
[, bool overwrite, [, resource session]]) *Alternativ kann der Name webdav_rename() anstelle von
webdav_move() verwendet werden. - *—————————— PHP STREAM API ——————————
- Als Alternative zu den webdav_() Funktionen kann die Datei davstream.inc.php in Ihre Projekte
eingefügt werden, sodass DAV-Server über Standard-PHP-Aufrufe, über webdav:// Streams, erreicht werden können: require ‘dav_stream.inc.php’; $fp = fopen(‘webdav://dav.example.com/dav/dir/file.txt’, ‘w’);
fwrite($fp, “test\n”);
fclose($fp);
$data = file_get_contents(‘webdav://dav.example.com/dav/dir/file.txt’);
$st = stat(‘webdav://dav.example.com/dav/dir/file.txt’);
copy(‘/tmp/xyz.txt’, ‘webdav://dav.example.com/dav/dir/xyz.txt’);
unlink(‘webdav://dav.example.com/dav/dir/abc.txt’); ?> Dies ist etwas langsamer als die nativen webdav*() Funktionen.
4 Links
- PHP WebDAV-Erweiterung: http://php-webdav.pureftpd.org/project/php-webdav
- WebDAV: http://www.webdav.org/
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.