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 リンク
- PHP WebDAV 拡張: http://php-webdav.pureftpd.org/project/php-webdav
- WebDAV: http://www.webdav.org/
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。