Как настроить доступ WebDAV с помощью Apache в Ubuntu 12.04
Статус: устарело
В этой статье рассматривается версия Ubuntu, которая больше не поддерживается. Если вы в настоящее время используете сервер под управлением Ubuntu 12.04, мы настоятельно рекомендуем обновить или перейти на поддерживаемую версию Ubuntu:
- Обновите Ubuntu до версии 14.04.
- Обновление Ubuntu 14.04 до Ubuntu 16.04
- Перенесите данные сервера в поддерживаемую версию.
Причина:
Смотрите вместо этого:
Введение
WebDAV — это распределенная реализация веб-разработки, встроенная в HTTP, которая позволяет вам легко обмениваться файлами и работать совместно с другими.
Мы можем установить это расширение на веб-сервере, чтобы разрешить удаленный доступ для чтения и записи к локальным файлам через веб-браузер. В этом руководстве мы будем настраивать WebDAV на Ubuntu 12.04 VPS с веб-сервером Apache.
Установите Apache на VPS
Наша реализация WebDAV будет установлена на Apache с помощью модуля WebDAV.
Во-первых, вам нужно будет установить Apache из стандартных репозиториев Ubuntu.
sudo apt-get update
sudo apt-get install apache2
Теперь у вас есть полностью работающий веб-сервер. Он уже должен быть доступен при переходе по IP-адресу вашего сервера в веб-браузере.
Включить WebDAV
Apache имеет встроенную поддержку WebDAV с несколькими модулями. Мы просто должны позволить им получить доступ к своим функциям.
Включите модули WebDAV с помощью следующих двух команд:
sudo a2enmod dav
sudo a2enmod dav_fs
Теперь нам нужно перезапустить сервер, чтобы изменения вступили в силу:
sudo service apache2 restart
WebDAV как функция теперь включена, но мы еще не настроили ее правильно для нашего сервера.
Создайте файловую систему
Мы создадим каталог, в котором будет размещаться содержимое нашего файла WebDAV.
Корень документа по умолчанию сервера Apache в Ubuntu находится в /var/www
. Однако мы создадим псевдоним, который позволит нам хранить содержимое нашего каталога в другом месте.
В этом руководстве мы разместим наш контент WebDAV по адресу /webdav/
.
sudo mkdir /webdav
Предоставьте веб-пользователю, то есть www-data
, право собственности на новый каталог, чтобы он мог правильно обслуживать контент:
sudo chown www-data /webdav
Настроить защиту паролем
Мы можем создать процедуру аутентификации для доступа к содержимому каталога, создав файл htpasswd.
Мы поместим его за пределы каталога содержимого, чтобы он не был доступен пользователям нашей системы. Создайте имя пользователя в командном вызове, и вам будет предложено ввести соответствующий пароль:
<пред>
Прямо сейчас любой может просмотреть имя пользователя и хешированный пароль в файле. Мы назначим групповое владение файлом www-data
, а затем заблокируем разрешения для всех остальных:
sudo chown root:www-data /etc/apache2/webdav.password
sudo chmod 640 /etc/apache2/webdav.password
Настроить Apache
Теперь нам нужно настроить доступ к нашему каталогу содержимого и указать Apache использовать модули WebDAV для обслуживания этого местоположения. Мы также должны отметить созданную нами схему аутентификации.
Отредактируйте конфигурацию основного виртуального хоста с привилегиями root:
sudo nano /etc/apache2/sites-available/default
Здесь наш веб-контент обслуживается из /var/www
, как обычно. Мы добавим некоторую информацию, которая позволит Apache рассматривать содержимое нашего нового каталога как материал WebDAV.
Ниже списка каталогов мы добавим директиву псевдонима, чтобы сообщить Apache, что запросы на \/webdav должны обслуживаться из созданного нами каталога /webdav
.
Затем мы добавим параметры, чтобы разрешить аутентификацию с использованием установленных нами методов.
<пред>
Псевдоним /webdav /webdav
<Расположение /webdav>
Сохраните и закройте файл.
Перезапустите Apache с помощью следующей команды:
sudo service apache2 restart
Проверьте результаты
Вы можете протестировать результаты своей конфигурации сначала в веб-браузере, а затем в клиенте WebDAV.
Тест веб-браузера
Чтобы убедиться, что ваша аутентификация работает правильно, перейдите к IP-адресу или доменному имени вашего сервера с помощью веб-браузера.
Вы должны увидеть файл Apache index.html по умолчанию:
Это демонстрирует, что обычные веб-функции работают.
Теперь перейдите к своему IP-адресу или доменному имени, а затем \/webdav:
<пред>
Вам будет предложено ввести комбинацию имени пользователя и пароля, которую вы установили ранее. После этого вы должны увидеть пустой список каталогов:
В настоящее время у нас нет контента, но мы сможем изменить это, получив доступ к той же области с помощью клиента WebDAV.
Тест клиента WebDEV
Существует множество клиентов WebDAV, и поддержка доступа WebDAV встроена во многие популярные файловые менеджеры.
Для простоты мы будем использовать в этом руководстве простой клиент WebDAV с командной строкой под названием «cadaver».
Предпочтительно с другого дроплета или Linux-машины, установите cadaver из репозиториев по умолчанию:
sudo apt-get install cadaver
Теперь давайте создадим файл, который мы загрузим в каталог WebDAV:
cd ~
touch testfile
Затем мы подключимся, используя то же местоположение, которое мы использовали для доступа из браузера:
<пред>
Вы должны ввести часть \http://, чтобы cadaver правильно нашел ваш сервер. Нам нужно будет снова пройти аутентификацию, а затем мы попадем в интерфейс командной строки.
dav:/webdav/>
Отсюда мы можем одновременно управлять клиентом и хостом, используя команды, похожие на обычные команды Linux.
Чтобы просмотреть содержимое каталога сервера, введите:
ls
Listing collection `/webdav/': collection is empty.
Каталог пуст. Давайте изменим это, загрузив наш тестовый файл:
put testfile
Мы можем снова попробовать команду list и увидеть, что файл теперь находится на сервере:
ls
Listing collection `/webdav/': succeeded.
testfile 0 Sep 20 19:36
Мы можем создать каталог и перейти в него, набрав:
mkdir hello
cd hello
Затем мы можем создать файл, набрав:
edit file.html
Мы можем вставить любой контент, который мы хотим:
<h1>Hi!!!</h1>
Когда мы закончим, мы можем ввести exit, чтобы закрыть соединение:
exit
Теперь, если мы вернемся в наш веб-браузер, изменения, которые мы сделали, будут видны:
<пред>
Отключить списки каталогов
Хотя списки каталогов полезны для просмотра файлов, доступных в WebDAV, часто бывает полезно, особенно если вы используете это для реального веб-контента, отключить этот список.
Если вы хотите, чтобы веб-доступная часть действовала больше как веб-сайт, а не как список каталогов, удалите строку \Options Indexes” из файла конфигурации:
sudo nano /etc/apache2/sites-available/default
<пред>
Псевдоним /webdav /webdav
<Расположение /webdav>
Перезапустите Apache, чтобы применить ваши изменения:
sudo service apache2 restart
Помните, что для правильной работы вам потребуется создать обычные веб-страницы, например, файл \index.html:
sudo nano /webdav/index.html
<h1>Default WebDAV Page</h1>
<p>This is the default page with directory listings turned off</p>
Сохраните и закройте файл.
Эта страница теперь будет отображаться при переходе к основному каталогу WebDAV, но функция редактирования по-прежнему будет доступна для клиентов.
Заключение
Теперь у вас должен быть каталог WebDAV с базовой аутентификацией. Если ваш каталог содержит содержимое, которое абсолютно необходимо хранить в безопасности, вы можете внедрить решение SSL поверх аутентификации по паролю. Однако это выходит за рамки данной статьи.
Существует множество файловых менеджеров и клиентов, которые могут беспрепятственно получать доступ и изменять содержимое WebDAV, как если бы оно было дополнительным локальным хранилищем. WebDAV обеспечивает гораздо более динамичную работу с HTTP, чем это возможно традиционно.