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 링크
- PHP WebDAV 확장: http://php-webdav.pureftpd.org/project/php-webdav
- WebDAV: http://www.webdav.org/
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.