понедельник, 10 декабря 2018 г.

Установка WebDAV в Apache на CentOS 7

Установка WebDAV в Apache на CentOS 7

WebDAV (Web-based Distributed Authoring and Versioning) - это расширение протокола HTTP, позволяющее пользователю управлять файлами на WEB-сервере.
В CentOS7 при установке Apache это расширение устанавливается по умолчанию.
Проверить это можно командой «httpd -M | grep fs» . Вывод должен быть таким:
# httpd -M | grep fs
dav_fs_module (shared)

Создадим директорию для файлов, которые будут доступны по протоколу WebDAV и дадим ей права:
# mkdir /var/www/webdav
# chown -R apache:apache /var/www/webdav
# chmod -R 755 /var/www/webdav

Создаем пользователя, который будет подключаться к ресурсу:
# htdigest -c "/etc/httpd/wduser.passwd" DAV-upload dev
Adding password for dev in realm DAV-upload.
New password: <вводим пароль, например 12345>
Re-type new password: <вводим пароль еще раз, например 12345>
Здесь DAV-upload это признак пользователя, который будет использоваться далее в настройках.
dev – имя пользователя
12345 – это пароль

Добавляем виртуальный хост к серверу Apache, который будет обслуживать созданную папку webdav. Для этого создаем файл конфигурации webdav.conf и наполняем его содержимым:
# nano /etc/httpd/conf.d/webdav.conf
Вставляем описание хоста:
Listen 0.0.0.0:8080
DavLockDB /var/www/DavLock
<VirtualHost *:8080>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/webdav/
    ErrorLog /var/log/httpd/error.log
    CustomLog /var/log/httpd/access.log combined
    Alias /webdav /var/www/webdav
    <Directory /var/www/webdav>
        DAV On
        AllowOverride All
        Order allow,deny
        allow from all
        AuthType Digest
        AuthName DAV-upload
        AuthUserFile "/etc/httpd/wduser.passwd"
        AuthDigestProvider file
        Require valid-user
        Options Indexes MultiViews
        IndexOptions Charset=UTF-8 FancyIndexing HTMLTable VersionSort NameWidth=350 FoldersFirst IgnoreCase SuppressDescription
        IndexOrderDefault Descending Name
        IndexIgnore *~ favicon.ico *.bat *.sh* ~$* Thumbs.db
        IndexStyleSheet "http://localhost/style.css"
    </Directory>
</VirtualHost> 
Для WebDAV важно, что бы вся папка /var/www/ принадлежала пользователю apache, поэтому выполняем:
# chown -R apache:apache /var/www/

Рестартуем сервер
# systemctl restart httpd

Не забываем открыть порт 8080 в файрволле:
Для iptables:
# nano /etc/sysconfig/iptables
Добавляем строку:
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
Рестартуем сервис:
# service iptables save
# service iptables restart

Для тестирования WEbDAV устанавливаем утилиту - клиента WebDav - cadaver
# yum --enablerepo=epel install cadaver
Проверяем работу WebDav с помощью cadaver
Подключение к ресурсу WebDev:
# cadaver http://10.10.49.162:8080/webdav/
Authentication required for webdav on server `10.10.49.162':
Username: dev
Password: <вводим пароль 12345>
dav:/webdav/>
Увидев это приглашение понимаем, что подключение прошло успешно.
Тестовая заливка файла:
> put /var/www/html/network2.html
Uploading /var/www/html/network2.html to `/webdav/network2.html':
Progress: [=============================>] 100,0% of 2364 bytes succeeded.
Просмотр содержимого каталога:
> ls
Listing collection `/webdav/': succeeded.
        network2.html                       2364  дек  1 19:45
        test.txt                              26  ноя 18 08:06
Скачивание файла:
> get test.txt
Downloading `/webdav/test.txt' to test.txt:
Progress: [=============================>] 100,0% of 26 bytes succeeded.
Удаление файла:
> delete test.txt
Deleting `test.txt': succeeded.
Выход из клиента:
> exit
Connection to `10.10.49.162' closed.


Ресурс WebDAV можно подключить в ОС Windows как сетевой диск.
Первый вариант (самый легкий):
"Мой компьютер" – кнопка "Подключить сетевой диск"
В поле "Папка" вводим наш URL http://10.10.49.162:8080/webdav/, отмечаем все галочки. Затем будет запрошен логин и пароль. После чего подключением можно пользоваться.
Второй вариант.
Подключаем сетевой диск в Windows из командной строки так:
C:\Users\rossyp>net use N: http://10.10.49.162:8080/webdav/
Введите имя пользователя для '10.10.49.162': dev
Введите пароль для 10.10.49.162:
Команда выполнена успешно.
Отключаем сетевой диск:
C:\Users\rossyp>net use N: /DELETE
N: успешно удален.
Третий вариант.
С помощью программы Cyberduck (https://cyberduck.io/ ) работать с ресурсом можно без проблем. В поле «Сервер» вводим URL, затем вводим логин и пароль и с ресурсом можно работать. Очередь загрузки / выгрузки показывается в удобном окне:

ПРИМЕЧАНИЯ:
1.
Для добавления хранилищу красивости просмотра через WEB-интерфейс можно в корне создать файл "HEADER.html", содержимое которого будет выводиться над листингом, и файл "README.html", содержимое которого будет выводиться под листингом.
Файл style.css применяется в конфигурации для подкачки стиля оформления страниц.
2.
Для решения проблемы работы с большими файлами через WebDAV в Windows необходимо исправить одну переменную в реестре:
Запускаем редактор реестра:
>regedit
Ищем ветку:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
Исправляем параметр FileSizeLimitInBytes на ffffffff
По умолчанию здесь -  2faf080

Комментариев нет:

Отправить комментарий