Как установить и настроить хранилище WebDAV используя Apache 2 и Fedora 13
Данное пошаговое руководство объяснит как как настроить хранилище WebDAV используя веб-сервер Apache 2 и дистрибутив Fedora 13. WebDAV расшифровывается как Web-based Distributed Authoring and Versioning, и является надстройкой над протоколом HTTP, позволяя пользователям напрямую редактировать и загружать файлы на сервере Apache не требуя для этого FTP. Ну, само собой, WebDAV можно использовать для скачивания и хранения файлов.
Предупреджаю, данное решение у вас может и не заработать!
Предварительные замечания
В данной конфигурации использовался дистрибутив Fedora 13. Ip-адрес у сервера был 192.168.0.100. Установка WebDAV
Если веб-сервер Apache ещё не установлен, то нам потребуется это сделать:
yum install httpd
После чего открываем конфигурационный файл /etc/httpd/conf/httpd.conf и убеждаемся, что модули dav and 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 [...]
Затем создаём ссылки для автозапуска вместе системой:
chkconfig --levels 235 httpd on /etc/init.d/httpd start
Создание виртуального хоста
А теперь создаём виртуальный хост в каталоге /var/www/web1/web. В данном случае, я просто добавил ещё один хост в конец файла /etc/httpd/conf/httpd.conf. Если у вас он уже имеется в наличии, то нужно приспособить это руководство к вашей ситуации.
Итак, во-первых мы должны создать каталог /var/www/web1/web, а также сделать пользователя apache и группу apache владельцем этого каталога:
mkdir -p /var/www/web1/web chown apache:apache /var/www/web1/web
Теперь добавляем новый vhost в конец файла:
vi /etc/httpd/conf/httpd.conf
[...] NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@localhost
DocumentRoot /var/www/web1/web/ <Directory /var/www/web1/web/> Options Indexes MultiViews AllowOverride None Order allow,deny allow from all </Directory>
</VirtualHost>
А теперь, перезагружаем сервер Apache:
/etc/init.d/httpd reload
Конфигурирование виртуального хоста для WebDAV
Сейчас нам необходимо создать файл с паролями /var/www/web1/passwd.dav, необходимых для доступа к хранилищу WebDAV, где будет наличествовать наш пользователь test (используйте опцию -c, если файл не существует).
htpasswd -c /var/www/web1/passwd.dav test
После этой команды у вас будет запрошен пароль для пользователя test. И, пожалуйста, не используйте ключ -c если файл с паролями уже существует. В противном случае файл будет пересоздан и вся имеющаяся там база пользователей и пароля будет потеряна!
Теперь зададим разрешения для файла /var/www/web1/passwd.dav. Доступ к этому файлу должен иметь только пользователь root и группа apache:
chown root:apache /var/www/web1/passwd.dav chmod 640 /var/www/web1/passwd.dav
Далее, мы отредактируем наш ыиртуальный хост и добавим следующие строчки в конец /etc/httpd/conf/httpd.conf
vi /etc/httpd/conf/httpd.conf
[...] Alias /webdav /var/www/web1/web
<Location /webdav> DAV On AuthType Basic AuthName "webdav" AuthUserFile /var/www/web1/passwd.dav Require valid-user </Location> [...]
Директива Alias выше (вкупе с директивой <Location>) при вызове каталога /webdav поднимает сервер WebDAV, при этом вы попадаете прямиком в корневой каталог виртуального хранилища, хотя все имена путей на нём обрабатываются как обычные данные по протоколу http).
Окончательный вариант конфигурационного файла должен выглядеть так:
[...] NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@localhost
DocumentRoot /var/www/web1/web/ <Directory /var/www/web1/web/> Options Indexes MultiViews AllowOverride None Order allow,deny allow from all </Directory>
Alias /webdav /var/www/web1/web
<Location /webdav> DAV On AuthType Basic AuthName "webdav" AuthUserFile /var/www/web1/passwd.dav Require valid-user </Location>
</VirtualHost>
И снова перезагружаем Apache командой:
/etc/init.d/httpd reload
Проверяем WebDAV
Давайте установим cadaver, клиент для WebDAV с интерфейсом командной строки:
yum install cadaver
Чтобы удостовериться в работе WebDAV, попробуем ввести следующую команду:
cadaver http://localhost/webdav/
У вас должно быть запрошено имя пользователя. Введите test, а затем пароль для пользователя test, который вы указывали. Если всё сделано правильно, будет получен доступ до хранилища и мы поймём, что WebDAV работает.
Дабы выйти из хранилища, наберите команду quit в оболочке WebDAV:
[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 ~]#
Настраиваем клиента под Windows XP для работы с WebDAV
1. Щелкните по значку "Сетевое окружение" (если используете англоязычную Windows, то My Network Places).
2. Нажмите на надпись "Добавить новый элемент в сетевое окружение" (Add a Network Place в англоязычной Windows) в панели слева.
3. У вас должен запуститься "Мастер добавления в сетевое окружение" (Add Network Place Wizard). Жмите на кнопку "Далее" (то есть, Next в англоязычной системе).
4. Выберите пункт "Выберите другое сетевое размещение" (Choose another network location) и снова жмите "Далее".
5. Введите в пути http://192.168.0.100:80/webdav и снова "Далее". Обязательно укажите порт для WebDAV (он должен быть :80). По непонятной причине, адрес такого вида позволяет потом указывать нормальые имена пользователя. Если этого не сделать, он будет запрашивать имена пользователей используя NTLM (то есть пожет помочь форма вида www.example.com\test).
6. У вас должно появиться окно запроса имени пользователя и пароля. Введите имя пользователя test с нужным паролем.
7. Задайте название каталога WebDAV (webdav в нашем случае)
8. Чтобы открыть новое соединение, необходимо оставить галочку "Открыть это место в сетевом окружении по завершению мастера" (Open this network place when I click Finish ) и нажать "Готово".
9. У вас должен будет открыться каталог WebDAV располагающийся в /var/www/web1/web с имеющимися там файлами и подкаталогами. Также вы найдёте значок нашего ресурса в "Сетевом окружении". Настраиваем клиента под Linux (используя GNOME)
С окружением Gnome всё намного проще.
1. Открывайте меню Places и ищите пункт "Connect to server..."
2. В Service type выбирайте WebDAV. В строке Server пишите 192.168.0.100. В строке Folder пишите webdav. Не заполняйте имя пользователя и пароль, иначе вы не сможете подключиться! После чего нажимайте кнопку Connect.
3. У вас появится запрос имени пользователя и пароля. Вводите имя пользователя test и наш пароль. При этом вы можете получить ошибку вида "Cant't display location", но тем не менее, на рабочем столе будет создан значок по нажатию на который вы без пробем сможете открыть хранилище WebDAV.
|