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-dev

Als 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.gz

Dann wechseln wir in das dav-Verzeichnis…

cd dav/

… und bauen die PHP WebDAV-Erweiterung:

phpize  
./configure --enable-dav  
make install

Um 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 restart

Das 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 j pureftpd 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

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.