Cách cài đặt WebDAV với Lighttpd trên Debian 8 (Jessie)

theanh

Administrator
Nhân viên
Hướng dẫn này giải thích cách thiết lập WebDAV với Lighttpd trên máy chủ Debian 8 (Jessie). WebDAV là viết tắt của Web-based Distributed Authoring and Versioning và là một tập hợp các tiện ích mở rộng của giao thức HTTP cho phép người dùng chỉnh sửa trực tiếp các tệp trên máy chủ Lighttpdd để không cần phải tải xuống/tải lên qua FTP. Tất nhiên, WebDAV cũng có thể được sử dụng để tải lên và tải xuống các tệp.


1 Lưu ý sơ bộ​

Tôi đang sử dụng máy chủ Debian 8 có địa chỉ IP 192.168.1.100 tại đây. Thiết lập của tôi dựa trên hướng dẫn về máy chủ tối giản Debian, nhưng bất kỳ hệ thống Debian nào chưa chạy máy chủ web đều có thể sử dụng được.


2 Cài đặt WebDAV​

Bạn có thể cài đặt lighttpd (nếu chưa cài đặt), mô-đun lighttpd WebDAV và gói apache2-utils (có chứa công cụ htpasswd mà chúng ta sẽ cần sau này để tạo tệp mật khẩu cho chia sẻ WebDAV) như sau:
Mã:
apt-get -y install lighttpd lighttpd-mod-webdav apache2-utils
Sau đó, chúng ta phải đảm bảo rằng thư mục /var/run/lighttpd thuộc quyền sở hữu của người dùng và nhóm www-data. Thư mục này sẽ chứa cơ sở dữ liệu SQLite cần thiết cho WebDAV:
Mã:
chown www-data:www-data /var/run/lighttpd/
Tiếp theo, chúng ta kích hoạt các mô-đun mod_auth và mod_webdav:
Mã:
lighty-enable-mod auth
lighty-enable-mod webdav
Tải lại Lighttpd sau đó:
Mã:
service lighttpd force-reload

3 Tạo máy chủ ảo​

Bây giờ tôi sẽ tạo một vhost Lighttpd (www.example.com) trong thư mục /var/www/web1/web. Nếu bạn đã có một vhost mà bạn muốn bật WebDAV, bạn phải điều chỉnh hướng dẫn này cho phù hợp với tình huống của mình.

Đầu tiên, chúng ta tạo thư mục /var/www/web1/web và biến người dùng lighttpd (www-data) thành chủ sở hữu của thư mục đó:
Mã:
mkdir -p /var/www/web1/web
chown www-data:www-data /var/www/web1/web
Sau đó, chúng ta mở /etc/lighttpd/lighttpd.conf và thêm vhost sau vào cuối tệp:
Mã:
nano /etc/lighttpd/lighttpd.conf
Mã:
[...]$HTTP["host"] == "www.example.com" { server.document-root = "/var/www/web1/web"}
Sau đó, chúng ta khởi động lại lighttpd:
Mã:
service lighttpd restart

4 Cấu hình Virtual Host cho WebDAV​

Bây giờ, chúng ta tạo tệp mật khẩu WebDAV /var/www/web1/passwd.dav với người dùng test (công tắc -c sẽ tạo tệp nếu tệp không tồn tại):
Mã:
htpasswd -c /var/www/web1/passwd.dav test
Bạn sẽ được yêu cầu nhập mật khẩu cho người dùng test.

(Vui lòng không sử dụng công tắc -c nếu /var/www/web1/passwd.dav đã tồn tại vì thao tác này sẽ tạo lại tệp từ đầu, nghĩa là bạn sẽ mất tất cả người dùng trong tệp đó!)

Bây giờ chúng ta thay đổi quyền của tệp /var/www/web1/passwd.dav để chỉ root và các thành viên của nhóm www-data mới có thể truy cập tệp đó:
Mã:
chown root:www-data /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.dav
Bây giờ chúng ta sửa đổi vhost của mình trong /etc/lighttpd/lighttpd.conf để trông như sau:
Mã:
nano /etc/lighttpd/lighttpd.conf
Mã:
$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" ) ) }}
Chỉ thị alias.url tạo ra (cùng với $HTTP["url"] =~ "^/webdav($|/)") khi bạn gọi /webdav, WebDAV được gọi, nhưng bạn vẫn có thể truy cập toàn bộ gốc tài liệu của vhost. Tất cả các URL khác của vhost đó vẫn là HTTP "bình thường".

Khởi động lại Lighttpd sau đó:
Mã:
service lighttpd restart

5 Kiểm tra WebDAV​

Bây giờ chúng ta sẽ cài đặt cadaver, một máy khách WebDAV dòng lệnh:
Mã:
apt-get -y install cadaver
Để kiểm tra xem WebDAV có hoạt động không, hãy nhập:
Mã:
cadaver http://www.example.com/webdav/
Bạn sẽ được nhắc nhập tên người dùng. Nhập test rồi nhập mật khẩu cho người dùng test. Nếu mọi việc diễn ra tốt đẹp, bạn sẽ được cấp quyền truy cập, điều đó có nghĩa là WebDAV đang hoạt động bình thường. Nhập quit để thoát khỏi shell WebDAV:
Mã:
root@server1:/home/administrator# cadaver http://www.example.com/webdav/
Cần xác thực cho webdav trên máy chủ `www.example.com':
Tên người dùng: test
Mật khẩu:
dav:/webdav/> quit
Kết nối tới `www.example.com' đã đóng.
root@server1:/home/administrator#

6 Liên kết​

 
Back
Bên trên