서버 설정 · 2 min read · Dec 17, 2025

Debian 8 (Jessie)에서 Lighttpd로 WebDAV 설치하는 방법

이 가이드는 Debian 8 (Jessie) 서버에서 Lighttpd로 WebDAV를 설정하는 방법을 설명합니다. WebDAV는 웹 기반 분산 저작 및 버전 관리의 약자로, 사용자가 FTP를 통해 파일을 다운로드/업로드할 필요 없이 Lighttpd 서버에서 직접 파일을 편집할 수 있도록 해주는 HTTP 프로토콜의 확장 집합입니다. 물론 WebDAV를 사용하여 파일을 업로드하고 다운로드할 수도 있습니다.

1 사전 참고

여기서는 IP 주소가 192.168.1.100인 Debian 8 서버를 사용하고 있습니다. 제 설정은 Debian 최소 서버 튜토리얼을 기반으로 하고 있지만, 웹 서버가 아직 실행되지 않는 모든 Debian 시스템에서 괜찮습니다.

2 WebDAV 설치하기

lighttpd(이미 설치되어 있지 않은 경우), lighttpd WebDAV 모듈 및 apache2-utils 패키지(여기에는 나중에 WebDAV 공유를 위한 비밀번호 파일을 생성하는 데 필요한 htpasswd 도구가 포함되어 있습니다)를 다음과 같이 설치할 수 있습니다:

apt-get -y install lighttpd lighttpd-mod-webdav apache2-utils

그 후, /var/run/lighttpd 디렉토리가 www-data 사용자 및 그룹에 의해 소유되고 있는지 확인해야 합니다. 이 디렉토리는 WebDAV에 필요한 SQLite 데이터베이스를 포함합니다:

chown www-data:www-data /var/run/lighttpd/

다음으로, mod_auth 및 mod_webdav 모듈을 활성화합니다:

lighty-enable-mod auth  
lighty-enable-mod webdav

그 후 Lighttpd를 다시 로드합니다:

service lighttpd force-reload

3 가상 호스트 만들기

이제 /var/www/web1/web 디렉토리에 Lighttpd vhost (www.example.com)를 생성하겠습니다. WebDAV를 활성화하려는 vhost가 이미 있는 경우, 이 튜토리얼을 귀하의 상황에 맞게 조정해야 합니다.

먼저, /var/www/web1/web 디렉토리를 만들고 lighttpd 사용자(www-data)를 해당 디렉토리의 소유자로 설정합니다:

mkdir -p /var/www/web1/web  
chown www-data:www-data /var/www/web1/web

그런 다음 /etc/lighttpd/lighttpd.conf 파일을 열고 파일 끝에 다음 vhost를 추가합니다:

nano /etc/lighttpd/lighttpd.conf
[...]  
$HTTP["host"] == "www.example.com" {  
  server.document-root = "/var/www/web1/web"  
}

그 후 lighttpd를 재시작합니다:

service lighttpd restart

4 WebDAV를 위한 가상 호스트 구성하기

이제 사용자 test로 WebDAV 비밀번호 파일 /var/www/web1/passwd.dav를 생성합니다(-c 스위치는 파일이 존재하지 않을 경우 파일을 생성합니다):

htpasswd -c /var/www/web1/passwd.dav test

사용자 test의 비밀번호를 입력하라는 메시지가 표시됩니다.

(/var/www/web1/passwd.dav가 이미 존재하는 경우 -c 스위치를 사용하지 마세요. 이 경우 파일이 처음부터 다시 생성되어 해당 파일의 모든 사용자가 사라집니다!)

이제 /var/www/web1/passwd.dav 파일의 권한을 변경하여 root와 www-data 그룹의 구성원만 접근할 수 있도록 합니다:

chown root:www-data /var/www/web1/passwd.dav  
chmod 640 /var/www/web1/passwd.dav

이제 /etc/lighttpd/lighttpd.conf에서 vhost를 다음과 같이 수정합니다:

nano /etc/lighttpd/lighttpd.conf
$HTTP["host"] == "www.example.com" {  
  server.document-root = "/var/www/web1/web"  
  alias.url = ( "/webdav" => "/var/www/web1/web" )  
  $HTTP["url"] =~ "^/webdav($|/)" {  
    webdav.activate = "enable"  
    webdav.is-readonly = "disable"  
    dir-listing.activate = "enable"  
    webdav.sqlite-db-name = "/var/run/lighttpd/lighttpd.webdav_lock.db"  
    auth.backend = "htpasswd"  
    auth.backend.htpasswd.userfile = "/var/www/web1/passwd.dav"  
    auth.require = ( "" => ( "method" => "basic",  
                             "realm" => "webdav",  
                             "require" => "valid-user" ) )  
  }  
}

alias.url 지시문은 ($HTTP[“url”] =~ “^/webdav($|/)”)와 함께 /webdav를 호출할 때 WebDAV가 호출되도록 하지만, 여전히 vhost의 전체 문서 루트에 접근할 수 있도록 합니다. 해당 vhost의 다른 모든 URL는 여전히 “정상” HTTP입니다.

그 후 Lighttpd를 재시작합니다:

service lighttpd restart

5 WebDAV 테스트하기

이제 cadaver라는 명령줄 WebDAV 클라이언트를 설치하겠습니다:

apt-get -y install cadaver

WebDAV가 작동하는지 테스트하려면 다음을 입력합니다:

cadaver http://www.example.com/webdav/

사용자 이름을 입력하라는 메시지가 표시됩니다. test를 입력한 다음 사용자 test의 비밀번호를 입력합니다. 모든 것이 잘 진행되면 접근이 허용되며 WebDAV가 정상적으로 작동하는 것입니다. WebDAV 셸을 종료하려면 quit를 입력합니다:

root@server1:/home/administrator# cadaver http://www.example.com/webdav/  
Authentication required for webdav on server `www.example.com':  
Username: test  
Password:  
dav:/webdav/> quit  
Connection to `www.example.com' closed.  
root@server1:/home/administrator#

6 링크

Share: X/Twitter LinkedIn

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

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