WebDAV установка · 2 min read · Dec 17, 2025

Как установить WebDAV с Lighttpd на Debian 8 (Jessie)

Этот гид объясняет, как настроить WebDAV с Lighttpd на сервере Debian 8 (Jessie). WebDAV расшифровывается как Web-based Distributed Authoring and Versioning и представляет собой набор расширений к протоколу HTTP, который позволяет пользователям напрямую редактировать файлы на сервере Lighttpd, чтобы их не нужно было загружать/выгружать через FTP. Конечно, WebDAV также может использоваться для загрузки и выгрузки файлов.

1 Предварительная заметка

Я использую сервер Debian 8 с IP-адресом 192.168.1.100. Моя настройка основана на минимальном серверном руководстве Debian, но любая система Debian, на которой еще не работает веб-сервер, должна подойти.

2 Установка WebDAV

Вы можете установить lighttpd (если он еще не установлен), модуль lighttpd WebDAV и пакет apache2-utils (который содержит инструмент htpasswd, который нам понадобится позже для генерации файла паролей для WebDAV) следующим образом:

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

После этого мы должны убедиться, что каталог /var/run/lighttpd принадлежит пользователю и группе www-data. Этот каталог будет содержать базу данных SQLite, необходимую для WebDAV:

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 Создание виртуального хоста

Теперь я создам виртуальный хост Lighttpd ( www.example.com) в каталоге /var/www/web1/web. Если у вас уже есть виртуальный хост, для которого вы хотите включить WebDAV, вам нужно будет адаптировать этот учебник к вашей ситуации.

Сначала создадим каталог /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 и добавим следующий виртуальный хост в конец файла:

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

После этого перезапустим lighttpd:

service lighttpd restart

4 Настройка виртуального хоста для WebDAV

Теперь мы создадим файл паролей WebDAV /var/www/web1/passwd.dav с пользователем test (опция -c создает файл, если он не существует):

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

Вас попросят ввести пароль для пользователя test.

(Пожалуйста, не используйте опцию -c, если /var/www/web1/passwd.dav уже существует, потому что это создаст файл заново, что приведет к потере всех пользователей в этом файле!)

Теперь мы изменим разрешения файла /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 так, чтобы он выглядел следующим образом:

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 активируется, но вы все равно можете получить доступ ко всему корню документа виртуального хоста. Все другие 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 работает нормально. Введите quit, чтобы выйти из оболочки WebDAV:

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

Get new posts in your inbox

No spam. Unsubscribe anytime.