PHP 설치 · 3 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’);
    => http://webdav.example.org/dav/nice/object.txt 가져오기 webdav_connect(‘http://webdav.example.org/dav’);
    $a = webdav_get(‘/nice/object.txt’);
    => http://webdav.example.org/dav/nice/object.txt 가져오기 webdav_connect(‘http://webdav.example.org/dav’);
    $a = webdav_get(‘nice/object.txt’);
    => 잘못됨 : http://webdav.example.org/davnice/object.txt 가져오기 webdav_connect(‘http://webdav.example.org/dav/‘);
    $a = webdav_get(‘/nice/object.txt’);
    => 잘못됨 : 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_mkcol() 대신 webdav_mkdir() 이름을 사용할 수 있습니다.
  • *———————— 리소스 복사하기 ————————
  • 서버가 이를 구현하면 리소스를 복사할 수 있습니다: 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 STREAM 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

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.