Гид по технологиям

Настройка WebDAV в lighttpd на Debian Etch

• 4 min read • Серверы • Обновлено 23 Nov 2025
WebDAV в lighttpd на Debian Etch
WebDAV в lighttpd на Debian Etch

Версия 1.0
Автор: Falko Timme

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

Важно: я не даю гарантий, что инструкция подойдёт для вашей конфигурации.

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

В примерах используется сервер Debian Etch с IP-адресом 192.168.0.100. Если у вас другой адрес или несколько виртуальных хостов, подставьте свои значения.

2 Установка WebDAV

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

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

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

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

Включите модуль мод_auth (аутентификация):

lighty-enable-mod auth

Откройте /etc/lighttpd/lighttpd.conf и убедитесь, что модули mod_alias и mod_webdav подключены в блоке server.modules:

vi /etc/lighttpd/lighttpd.conf
[...]
server.modules              = (
            "mod_access",
            "mod_alias",
            "mod_accesslog",
#           "mod_rewrite",
#           "mod_redirect",
#           "mod_status",
#           "mod_evhost",
#           "mod_compress",
#           "mod_usertrack",
#           "mod_rrdtool",
            "mod_webdav",
#           "mod_expire",
#           "mod_flv_streaming",
#           "mod_evasive"
 )
[...]

Перезапустите lighttpd после правок:

/etc/init.d/lighttpd restart 

Важно: если у вас старые конфигурации или кастомные include-файлы, проверьте, что нет конфликтующих определений server.modules.

3 Создание виртуального хоста

В примере создаём vhost для www.example.com и корневой каталог /var/www/web1/web. Если у вас уже есть vhost, адаптируйте пути.

Создаём каталог и назначаем владельца www-data:

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

Откройте /etc/lighttpd/lighttpd.conf и добавьте в конец файла следующий блок:

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

Перезапустите lighttpd:

/etc/init.d/lighttpd restart

Настройка аутентификации (htpasswd)

Для управления доступом создайте файл паролей с помощью htpasswd (утилита из apache2-utils). Пример создания нового файла и первого пользователя:

htpasswd -c /etc/lighttpd/webdav.password alice

Чтобы добавить ещё пользователей, не используйте -c (иначе файл перезапишется):

htpasswd /etc/lighttpd/webdav.password bob

Установите безопасные права на файл паролей:

chown root:www-data /etc/lighttpd/webdav.password
chmod 640 /etc/lighttpd/webdav.password

Файл паролей должен быть читаем для lighttpd (или для процесса, который использует модуль аутентификации).

Базовая конфигурация WebDAV в lighttpd

Ниже приведён минимальный пример конфигурации, который можно добавить в блок виртуального хоста (в /etc/lighttpd/lighttpd.conf). Он показывает идею: включение WebDAV для определённого URL, указание файла паролей и требование базовой аутентификации.

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

  # Включаем WebDAV для пути /webdav
  $HTTP["url"] =~ "^/webdav($|/)" {
    webdav.activate = "enable"
    # База блокировок/метаданных (обычно создаётся в /var/run/lighttpd)
    webdav.sqlite-db-name = "/var/run/lighttpd/webdav.db"
    webdav.is-readonly = "disable"
  }

  # Простейшая аутентификация через файл паролей
  auth.backend = "plain"
  auth.backend.plain.userfile = "/etc/lighttpd/webdav.password"
  auth.require = (
    "/webdav" => (
      "method"  => "basic",
      "realm"   => "WebDAV",
      "require" => "valid-user"
    )
  )
}

Примечание: синтаксис и имена опций могут отличаться в зависимости от версии lighttpd. Проверьте документацию вашей версии, если конфигурация не принимается.

Клиенты и монтирование WebDAV

Примеры клиентов и способов доступа:

  • Linux: davfs2 (монтирование как файловой системы)
    • Установка: apt-get install davfs2
    • Пример монтирования:
mkdir -p /mnt/webdav
mount -t davfs https://www.example.com/webdav /mnt/webdav
  • Linux: cadaver — консольный WebDAV-клиент для отладки и тестирования.
  • Windows: «Подключить сетевой диск» (Map Network Drive) или сторонние клиенты WebDAV.
  • macOS: Finder — Подключиться к серверу (cmd+K) с адресом вида https://www.example.com/webdav

Рекомендуется использовать HTTPS в продакшене. WebDAV часто передаёт учётные данные, и шифрование трафика обязательно.

Права доступа и безопасность

  • Собственник файлов и каталогов, доступных через WebDAV, обычно должен быть www-data. Проверьте права:
chown -R www-data:www-data /var/www/web1/web
find /var/www/web1/web -type d -exec chmod 750 {} \;
find /var/www/web1/web -type f -exec chmod 640 {} \;
  • Для продакшена обязательно включите HTTPS (сертификаты Lets Encrypt или коммерческие сертификаты).
  • Ограничьте область доступности (например, только /webdav), не давайте права на весь документ-рут без необходимости.
  • Используйте сильные пароли и регулярную ротацию ключей.

Типичные проблемы и отладка

  • 401 Unauthorized: проверьте правильность файла паролей и путь в auth.backend.plain.userfile. Убедитесь, что lighttpd имеет доступ к файлу.
  • 405 Method Not Allowed при попытке PUT/DELETE: возможно, WebDAV не включён для данного URL или модуль mod_webdav не загружен.
  • Проблемы с блокировкой (locks): проверьте наличие каталога /var/run/lighttpd и права на него. В нём должна находиться база SQLite для метаданных WebDAV.
  • Логи: см. /var/log/lighttpd/error.log и access.log для подробностей.
  • Проверка конфигурации: запустите lighttpd с проверкой конфигурации (в зависимости от версии может быть опция -t или используйте /etc/init.d/lighttpd configtest).

Критерии приёмки

  • Пользователь аутентифицируется и получает доступ к /webdav.
  • Файлы успешно загружаются (PUT) и скачиваются (GET).
  • Блокировки работают при одновременном доступе (если требуются).
  • Настройки сохраняются и survive перезапуск сервера.

Быстрый чек-лист (роль: системный администратор)

  • Установлен lighttpd и модуль mod_webdav
  • Создан /var/run/lighttpd и владелец www-data
  • Создан виртуальный хост и документ-рут
  • Создан файл паролей /etc/lighttpd/webdav.password
  • Настроена аутентификация в lighttpd
  • Перезапуск сервера без ошибок
  • Проверено подключение клиентом (cadaver/davfs2/Windows)

Краткий глоссарий

  • WebDAV — расширения HTTP для удалённого редактирования файлов.
  • htpasswd — утилита для создания/обновления файлов паролей в формате Apache.
  • vhost — виртуальный хост, логическая конфигурация сайта в сервере.
  • davfs2 — модуль для монтирования WebDAV в качестве файловой системы.

Итог

WebDAV в lighttpd на Debian Etch можно настроить относительно просто: установить нужные пакеты, включить mod_webdav и модуль аутентификации, создать файл паролей и настроить vhost. Для продакшена обязательно используйте HTTPS и корректные права доступа.

Важно: при проблемах изучайте логи, проверяйте доступ к файлам паролей и права на каталог /var/run/lighttpd.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро