이 가이드는 Fedora 9 서버에서 lighttpd의 mod_webdav를 활성화해 WebDAV(웹 기반 분산 저작 및 버전 관리)를 설정하는 단계별 절차를 제공합니다. 패키지 설치, 모듈 활성화, 가상호스트 생성, 디렉터리 권한 설정, 간단한 인증 파일 생성 및 기본 테스트와 문제해결 팁을 포함합니다.
전제
- 예제에서는 IP 주소가 192.168.0.100인 Fedora 9 서버를 사용합니다.
- 루트 권한 또는 sudo 권한이 필요합니다.
- Fedora 9은 오래된 배포판이므로 가능하면 최신 배포판 사용을 권장합니다.
WebDAV란 한 줄 정의
WebDAV는 HTTP 확장의 집합으로, 사용자가 서버의 파일을 원격에서 열고 편집하거나 업로드/다운로드할 수 있게 합니다.
1 WebDAV 설치
다음 명령으로 lighttpd와 htpasswd 도구가 포함된 httpd-tools 패키지를 설치합니다:
yum install lighttpd httpd-tools설치 후 lighttpd가 부팅 시 자동 시작하도록 시스템 시작 링크를 만들고 서비스를 시작합니다:
chkconfig --levels 235 lighttpd on
/etc/init.d/lighttpd start그다음 /etc/lighttpd/lighttpd.conf 파일을 열어 server.modules 항목에 mod_alias, mod_webdav, mod_auth를 추가합니다. 중요: mod_webdav가 mod_auth보다 먼저 나와야 합니다.
vi /etc/lighttpd/lighttpd.conf| [...] server.modules = ( # "mod_rewrite", # "mod_redirect", "mod_alias", "mod_access", # "mod_cml", # "mod_trigger_b4_dl", "mod_webdav", "mod_auth", # "mod_status", # "mod_setenv", # "mod_fastcgi", # "mod_proxy", # "mod_simple_vhost", # "mod_evhost", # "mod_userdir", # "mod_cgi", # "mod_compress", # "mod_ssi", # "mod_usertrack", # "mod_expire", # "mod_secdownload", # "mod_rrdtool", "mod_accesslog" ) [...] |
설정 변경 후 lighttpd를 재시작합니다:
/etc/init.d/lighttpd restartImportant: mod_webdav가 활성화되어 있어야 WebDAV 관련 설정이 작동합니다.
2 가상호스트 생성 (예제)
이제 예제 도메인 www.example.com을 위한 vhost를 생성합니다. 실제 환경에서는 이미 있는 vhost에 WebDAV를 추가하면 됩니다.
서버 문서 루트 디렉터리를 만들고 소유권을 lighttpd 사용자로 변경합니다:
mkdir -p /var/www/web1/web
chown lighttpd:lighttpd /var/www/web1/web다음으로 /etc/lighttpd/lighttpd.conf 끝 부분에 vhost를 추가합니다:
vi /etc/lighttpd/lighttpd.conf| [...] $HTTP["host"] == "www.example.com" { server.document-root = "/var/www/web1/web" } |
변경 사항을 적용하려면 lighttpd를 다시 시작합니다:
/etc/init.d/lighttpd restart3 WebDAV 활성화(권장 구성 항목)
vhost 수준이나 URL 조건 내에서 mod_webdav를 활성화해야 합니다. 예를 들어 vhost 블록 안에 아래와 같이 추가할 수 있습니다:
$HTTP["host"] == "www.example.com" {
server.document-root = "/var/www/web1/web"
webdav.activate = "enable"
}참고: 구성 키 이름은 lighttpd의 버전에 따라 다를 수 있습니다. 구성 테스트 시 /var/log/lighttpd/error.log를 확인하세요.
4 WebDAV 접근 제어 (기본 인증)
WebDAV 공유에 대한 인증을 추가하려면 htpasswd로 암호 파일을 생성하고 lighttpd 설정에서 참조합니다.
사용자와 암호 파일을 생성하는 방법(예: 사용자 alice):
htpasswd -c /etc/lighttpd/webdav.password alice-c 옵션은 파일을 새로 만듭니다. 기존 파일에 사용자를 추가하려면 -c를 빼고 실행합니다:
htpasswd /etc/lighttpd/webdav.password boblighttpd 설정 예시 (vhost 내부에 추가):
$HTTP["host"] == "www.example.com" {
server.document-root = "/var/www/web1/web"
webdav.activate = "enable"
"auth.backend" = "plain"
"auth.backend.plain.userfile" = "/etc/lighttpd/webdav.password"
"auth.require" = (
"/" => (
"method" => "basic",
"realm" => "WebDAV",
"require" => "valid-user"
)
)
}중요: 위 auth 설정의 정확한 구문은 lighttpd 버전에 따라 다를 수 있습니다. 설정 적용 후 에러 로그를 확인하고 서비스 재시작을 잊지 마세요.
/etc/init.d/lighttpd restart5 파일 권한 및 소유권
WebDAV를 통해 파일 업로드/편집이 가능하려면 문서 루트의 소유권과 권한이 올바르게 설정되어야 합니다. 예제에서는 이미 lighttpd:lighttpd 소유로 설정했습니다.
추가 권장 명령:
chown -R lighttpd:lighttpd /var/www/web1/web
chmod -R 750 /var/www/web1/web필요에 따라 디렉터리별로 그룹 쓰기 권한을 부여하거나 ACL을 사용하세요.
6 테스트 및 문제해결
- 클라이언트: cadaver(콘솔 WebDAV 클라이언트), OS 내장 WebDAV 연결(예: Windows 네트워크 드라이브 연결), 또는 웹 브라우저(제한적) 사용.
- 간단한 테스트(예: PROPFIND 요청)에는 curl을 사용할 수 있습니다:
curl -u alice -X PROPFIND http://www.example.com/- 로그 확인: /var/log/lighttpd/error.log 및 access.log를 확인하세요.
- 모듈이 로드되지 않았거나 설정 구문 오류가 있으면 lighttpd가 시작되지 않거나 에러를 기록합니다.
문제가 발생하면 다음을 점검하세요:
- server.modules에 mod_webdav가 포함되어 있는가?
- mod_webdav가 mod_auth보다 먼저 나오는가?
- vhost 블록 내에 webdav.activate 설정이 있는가?
- 권한 및 소유권이 올바른가?
- 인증 파일의 경로와 형식이 올바른가?
7 보안 권장사항
- 가능한 경우 HTTPS(SSL/TLS)를 통해 WebDAV를 제공하세요. WebDAV는 인증 정보를 평문으로 전송할 수 있습니다.
- Fedora 9은 매우 오래된 배포판입니다. 최신 보안 업데이트와 지원을 위해 최신 배포판으로 마이그레이션을 권장합니다.
- 사용자별 접근 제어가 필요하면 디렉터리별 auth.require를 사용하거나 백엔드를 LDAP/DB로 전환을 검토하세요.
대안 및 추가 고려사항
- Apache(httpd)는 WebDAV 지원이 잘 되어 있어 복잡한 권한/인증을 다루기 쉽습니다.
- Nginx는 기본적으로 WebDAV의 일부 기능을 제공하지만 쓰기 기능에 제한이 있을 수 있으므로 모듈/설정 검토가 필요합니다.
- 대규모/협업 환경에서는 전용 파일 동기화/공유 솔루션(예: Nextcloud 등)을 고려하세요.
관리자/개발자 체크리스트
- lighttpd 및 httpd-tools 설치
- server.modules에 mod_webdav 추가(위치 확인)
- vhost에 webdav.activate 설정 추가
- 문서 루트 소유권/권한 설정
- /etc/lighttpd/webdav.password 생성 및 검증
- HTTPS 구성(가능하면)
- 기능 테스트(curl, cadaver, 클라이언트)
- 로그 모니터링 및 문제 해결
용어집 (한 줄)
- WebDAV: HTTP 확장을 사용해 원격에서 파일을 편집하고 관리하는 프로토콜입니다.
요약
이 문서는 Fedora 9에서 lighttpd로 WebDAV를 설정하는 기본 절차를 다룹니다. 핵심 단계는 패키지 설치, server.modules에 mod_webdav 추가, 가상호스트에 webdav.activate 설정, 문서 루트 권한 정리, htpasswd로 인증 구성, 그리고 HTTPS를 통한 보안 강화입니다. 문제가 발생하면 로그와 모듈 순서, 파일 권한을 먼저 확인하세요.
발표용 요약(한 문장): Fedora 9에서 lighttpd의 WebDAV를 활성화하려면 mod_webdav를 로드하고 vhost에 webdav.activate를 설정한 뒤 인증·권한·HTTPS를 점검하세요.