How To Set Up WebDAV With Apache2 On CentOS 5.5
Настройка WebDAV на Apache2 в CentOS 5.5: установить httpd, включить модули dav и dav_fs, создать виртуальный хост с Alias /webdav, создать файл паролей htpasswd, ограничить права доступа и перезагрузить Apache. Для теста используйте командный клиент cadaver или любой WebDAV-клиент.
Введение
Этот документ объясняет, как настроить WebDAV с Apache2 на сервере CentOS 5.5. WebDAV (Web-based Distributed Authoring and Versioning) — расширения протокола HTTP, которые позволяют редактировать файлы напрямую на сервере Apache без необходимости загружать/выгружать их через FTP. Также WebDAV подходит для загрузки и скачивания файлов.
Я не даю гарантий, что описанное подойдёт для вашей среды — адаптируйте шаги под вашу конфигурацию.
Важно: в примерах используется IP 192.168.0.100 и пути к файлам конфигурации в CentOS: /etc/httpd/conf/httpd.conf, /var/www/web1/
Что потребуется
- Сервер с CentOS 5.5 (root-доступ) или совместимая система
- Права root для установки пакетов и изменения конфигураций
- Пакет httpd (Apache) и утилита htpasswd
- Клиент cadaver или GUI-клиент WebDAV для тестирования
1 Предварительная заметка
В примерах используется сервер CentOS 5.5 с IP 192.168.0.100. Если у вас другая версия или дистрибутив, обратитесь к разделу «Совместимость и примечания».
2 Установка WebDAV (Apache)
Если Apache ещё не установлен — установите пакет httpd:
yum install httpdОткройте /etc/httpd/conf/httpd.conf и убедитесь, что модули dav и dav_fs подключены в секции LoadModule (они обычно включены по умолчанию):
vi /etc/httpd/conf/httpd.confНайдите строки похожие на:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.soСоздайте системные ссылки для автозапуска Apache и запустите службу:
chkconfig --levels 235 httpd on
/etc/init.d/httpd startВажное замечание: команды управления сервисом в CentOS 5.x используют /etc/init.d. На более новых версиях используется systemd.
3 Создание виртуального хоста
В примере мы создаём виртуальный хост с документ-рутом /var/www/web1/web. Скорректируйте пути под вашу структуру сайтов.
Создайте директорию и назначьте владельца apache:apache:
mkdir -p /var/www/web1/web
chown apache:apache /var/www/web1/webДобавьте виртуальный хост в конец файла /etc/httpd/conf/httpd.conf (или создайте отдельный файл в /etc/httpd/conf.d/):
vi /etc/httpd/conf/httpd.confПример конфигурации vhost:
NameVirtualHost *:80
ServerAdmin webmaster@localhost
DocumentRoot /var/www/web1/web/
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
Перезагрузите или перечитайте конфигурацию Apache:
/etc/init.d/httpd reload4 Настройка виртуального хоста для WebDAV
Создайте файл паролей WebDAV и добавьте пользователя test (ключ -c создаёт файл):
htpasswd -c /var/www/web1/passwd.dav testВас попросят ввести пароль для пользователя test.
Если файл уже существует — не используйте -c, иначе файл будет перезаписан и вы потеряете всех пользователей.
Ограничьте права доступа к файлу паролей так, чтобы читать его могли root и члены группы apache:
chown root:apache /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.davДобавьте в конфигурацию виртуального хоста директивы Alias и Location для WebDAV:
vi /etc/httpd/conf/httpd.confВставьте внутри описания виртуального хоста:
Alias /webdav /var/www/web1/web
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /var/www/web1/passwd.dav
Require valid-user
Полная конфигурация vhost в примере должна выглядеть так:
NameVirtualHost *:80
ServerAdmin webmaster@localhost
DocumentRoot /var/www/web1/web/
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
Alias /webdav /var/www/web1/web
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /var/www/web1/passwd.dav
Require valid-user
Затем перечитайте конфигурацию Apache:
/ etc/init.d/httpd reload(Примечание: в некоторых окружениях пробел после слэша не нужен — приведённая команда должна быть без пробела: /etc/init.d/httpd reload.)
5 Тестирование WebDAV
Установите cadaver — консольный WebDAV-клиент:
yum install cadaverПодключитесь к WebDAV:
cadaver http://localhost/webdav/Вас попросят ввести имя пользователя — укажите test и пароль. Если доступ предоставлен, вы попадёте в интерактивную оболочку cadaver. Введите quit для выхода.
Пример сеанса:
[root@server1 ~]# cadaver http://localhost/webdav/
Authentication required for webdav on server `localhost':
Username: test
Password:
dav:/webdav/> quit
Connection to `localhost' closed.
[root@server1 ~]#Проверка и отладка
Если подключение не удаётся:
- Проверьте, запущен ли httpd:
ps aux | grep httpdили/etc/init.d/httpd status. - Убедитесь, что модули mod_dav и mod_dav_fs загружены в httpd.conf.
- Проверьте права доступа к директории /var/www/web1/web и к файлу /var/www/web1/passwd.dav.
- Посмотрите логи Apache:
/var/log/httpd/error_logи/var/log/httpd/access_log. - Попробуйте подключиться локально (http://localhost) и с другой машины по IP.
Если при авторизации браузер постоянно предлагает логин:
- Убедитесь, что AuthUserFile указывает на существующий файл и что его права позволяют Apache читать файл.
- Проверьте, что имя пользователя и пароль были созданы корректно через htpasswd.
Безопасность и рекомендации по доступу
- Basic Auth передаёт учётные данные в кодировке Base64; используйте HTTPS (SSL/TLS), если WebDAV доступен через сеть.
- Ограничьте доступ к /webdav по IP или через VPN при необходимости.
- Храните файл паролей вне DocumentRoot, как в примере (/var/www/web1/passwd.dav).
- Регулярно обновляйте пакеты и следите за патчами безопасности Apache.
Альтернативы и расширения
- Для шифрования используйте модуль mod_ssl и настройте HTTPS. На CentOS 5.x это часто делается через пакет mod_ssl.
- При необходимости более продвинутой аутентификации используйте digest-авторизацию, LDAP или интеграцию с PAM.
- Для больших команд рассмотрите использование WebDAV-серверов уровня приложения (например, SabreDAV в PHP) для более гибкой логики прав.
Чеклист для развёртывания
- Установлен пакет httpd
- Подключены модулі mod_dav и mod_dav_fs
- Создана директория DocumentRoot и права назначены apache:apache
- Добавлен виртуальный хост с Alias /webdav
- Создан файл паролей htpasswd и установлены права 640
- Apache перезагружен и сервис активен
- Проверено подключение через cadaver или GUI-клиент
- При необходимости настроен HTTPS
Критерии приёмки
- WebDAV доступен по URL http://
/webdav/ и запрашивает аутентификацию. - Авторизованный пользователь может просматривать и изменять файлы в /var/www/web1/web через WebDAV.
- Неавторизованные запросы получают отказ в доступе.
Частые ошибки и решения
- «401 Unauthorized» после ввода корректного пароля — проверьте AuthUserFile и права на файл.
- «405 Method Not Allowed» при попытке PUT — убедитесь, что DAV On включён в
и mod_dav_fs загружен. - Разрешения на файловой системе мешают записи — проверьте, что владелец/группа директории и права позволяют Apache создавать файлы.
Совместимость и заметки по версиям
Этот гайд ориентирован на CentOS 5.5 и Apache2 тех лет. На более новых системах команды управления сервисами и расположение конфигурационных файлов могут отличаться (например, systemd и директории /etc/httpd/conf.d/). Актуализируйте команды управления и пути под вашу ОС.
Быстрая сводка команд (cheat sheet)
yum install httpd
chkconfig --levels 235 httpd on
/etc/init.d/httpd start
mkdir -p /var/www/web1/web
chown apache:apache /var/www/web1/web
htpasswd -c /var/www/web1/passwd.dav test
chown root:apache /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.dav
/etc/init.d/httpd reload
yum install cadaver
cadaver http://localhost/webdav/Резюме
Следуя шагам этого руководства, вы установите и настроите WebDAV на Apache2 в CentOS 5.5: от установки httpd и включения модулей до создания виртуального хоста с Alias /webdav и файла паролей. Не забудьте про безопасность — используйте HTTPS и ограничивайте доступ там, где это необходимо.
Ключевые файлы и пути: /etc/httpd/conf/httpd.conf, /var/www/web1/web, /var/www/web1/passwd.dav
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента