PHP WebDAV · 2 min read · Dec 30, 2025

Debian Squeeze に PHP WebDAV 拡張をインストールする

Debian Squeeze に PHP WebDAV 拡張をインストールする

バージョン 1.0
著者: Falko Timme
Twitterでフォローしてください

この記事では、Debian Squeeze システムに PHP5 用の PHP WebDAV 拡張をインストールする方法を示します。PHP WebDAV 拡張は、PHP スクリプトから DAV プロトコルを介してリモートリソースに簡単にアクセスできるようにします。

これがあなたにとって機能するという保証はありません!

1 前提条件

ここでは Debian Squeeze サーバーを使用しています。Apache2 と PHP5 がすでにインストールされ、動作していると仮定しています。

2 PHP WebDAV 拡張のインストール

PHP WebDAV 拡張をインストールする前に、以下の依存関係をいくつかインストールする必要があります:

apt-get install php5-dev build-essential libneon27 libneon27-dev

次に、PHP WebDAV 拡張をダウンロードして解凍します:

cd /tmp  
wget http://download.pureftpd.org/php-webdav/php-webdav-1.2.tar.gz  
tar xvfz php-webdav-1.2.tar.gz

次に、dav ディレクトリに移動します…

cd dav/

… そして PHP WebDAV 拡張をビルドします:

phpize  
./configure --enable-dav  
make install

拡張を有効にするために、/etc/php5/conf.d/dav.ini というファイルを作成します…

vi /etc/php5/conf.d/dav.ini

| extension=dav.so |

… そして Apache を再起動します:

/etc/init.d/apache2 restart

これで完了です!

3 PHP WebDAV 拡張の使用

以下は、PHP WebDAV 拡張を使用する方法を示す簡単な PHP スクリプトです:

| |

その例はかなり自己説明的ですが、ダウンロードした PHP WebDAV ソースパッケージには、完全な関数リファレンスを含む README ファイルもあります:

*.:. PHP WebDAV 拡張 .:.

  • *———————— 概要 ————————
  • PHP WebDAV 拡張は、DAV プロトコルを介してリモートリソースに簡単にアクセスできるようにします。 これは、Neon リファレンスライブラリに基づいています。 PHP WebDAV 拡張のホームページは http://php-webdav.pureftpd.org です。 *バグや提案は j pureftpd org に報告してください。
  • *———————— インストール ————————
  • この拡張は、Neon ライブラリと関連するヘッダーファイルを必要とします。 Neon は次の場所からダウンロードできます: http://www.webdav.org/neon/ ほとんどのオペレーティングシステムおよびディストリビューションには、すでにプリビルドされたパッケージとポートが利用可能です。 PHP WebDAV 拡張をコンパイルしてインストールするには、標準の PECL 手順に従ってください: *$ phpize
    $ ./configure –enable-dav
  • *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();
  • *———————— 名前付きリソースの例 ————————
  • *$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);
  • *———————— 接続の確立 ————————
  • 新しい接続を確立するには、次のようにします: webdav_connect(string base_url [, string user [, string password [, int timeout]]] 例: 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)
    セッションを閉じるには、webdav_close() を呼び出すだけです: webdav_close()
    webdav_close($resource)
    ベース URL は、他の関数の URI 部分に連結される文字列で、完全なリソース URL を取得します。 例: webdav_connect(‘http://webdav.example.org/dav/‘);
    $a = webdav_get(‘nice/object.txt’);
    => fetch http://webdav.example.org/dav/nice/object.txt webdav_connect(‘http://webdav.example.org/dav’);
    $a = webdav_get(‘/nice/object.txt’);
    => fetch http://webdav.example.org/dav/nice/object.txt webdav_connect(‘http://webdav.example.org/dav’);
    $a = webdav_get(‘nice/object.txt’);
    => WRONG : fetches http://webdav.example.org/davnice/object.txt webdav_connect(‘http://webdav.example.org/dav/‘);
    $a = webdav_get(‘/nice/object.txt’);
    => WRONG : fetches http://webdav.example.org/dav//nice/object.txt *代わりに、webdav_connect() の代わりに webdav_open() を使用できます。
  • *———————— リソースの取得 ————————
  • リソースを取得するには、次のようにします:
    webdav_get(string uri [, resource session])
    *この関数は、コンテンツを返すか、エラーが発生した場合は FALSE を返します。
  • *———————— リソースの保存 ————————
  • *リソースの保存は、webdav_put() 関数を介して利用可能です:
    webdav_put(string uri, string data [, resource session])
  • *———————— リソースの削除 ————————
  • webdav_delete() はリソースを削除します:
    webdav_delete(string uri [, resource session])
    *代わりに、webdav_delete() の代わりに webdav_unlink()、webdav_remove()、および webdav_rmdir() を使用できます。
  • *———————— コレクションの作成 ————————
  • コレクション(DAV に不慣れな場合はサブディレクトリと考えてください)は、webdav_mkcol() 関数を使用して作成されます: bool webdav_mkcol(string uri [, resource session]) *代わりに、webdav_mkdir() の名前を webdav_mkcol() の代わりに使用できます。
  • *———————— リソースのコピー ————————
  • サーバーがそれを実装している場合、リソースをコピーできます: webdav_copy(string source_uri, string target_uri [, bool overwrite [, bool recursive [, resource session]]]) *デフォルトでは、リソースは上書き可能であり、再帰的にコピーされます。
  • *———————— リソースの移動/名前変更 ————————
  • リソースも移動または名前変更できます: webdav_move(string source_uri, string target_uri [, bool overwrite, [, resource session]]) *代わりに、webdav_move() の代わりに webdav_rename() の名前を使用できます。
  • *—————————— PHP ストリーム API ——————————
  • webdav_() 関数の代わりに、davstream.inc.php ファイルをプロジェクトに含めることで、DAV サーバーに標準の PHP 呼び出しを介してアクセスできます。webdav:// ストリームを介して: 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’); ?> これは、ネイティブの webdav() 関数よりも少し遅くなります。

4 リンク

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。