Настройка 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.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента