Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Реализация файловой системы WebDAV с помощью PHP и SabreDAV. Часть 2

Автор: Квентин Зерваас (Quentin Zervaas), 29 марта 2010.

Создание нового виртуального хоста

Теперь давайте создадим виртуальный хост для нашего сервера WebDAV. Эта статья предполагает, что вы используете HTTP-сервер Apache на Unix-платформе. Если это не так, вам понадобится некоторая корректировка. Мы будем настраивать не-SSL сервер.

Замечание: в целях сохранения простоты мы не будем затрагивать SSL в этой статье. Если у вас есть доступный защищенный сервер, вы можете попытаться использовать его.

Как обсуждалось в предыдущем разделе, мы должны установить наш сервер WebDAV в корневую директорию веб-хоста. Существуют и другие ограничения, накладываемые Microsoft Windows:

  • Сервер должен использовать стандартные порты (80 для не-SSL, 443 для SSL).
  • Базовая HTTP-аутентификация не может использоваться на не-SSL сайтах.

Аутентификацию мы обсудим в этой статье позже. А сейчас давайте создадим новый виртуальный хост. Мы создадим наш хост с тремя главными директориями:

  • htdocs — это корневая директория нашего веб-сайта;
  • include — это наша директория для скриптов PHP. SabreDAV мы тоже загрузим в нее;
  • files — здесь будут лежать файлы, сохраняемые посредством WebDAV;
  • files/dav — для совместимости с Windows мы будем хранить файлы только в этой под-директории.

В данной статье будем полагать, что эти директории вложены в директорию /var/www/dav. Тогда полные пути к ним будут следующими:

  • /var/www/dav/htdocs
  • /var/www/dav/include
  • /var/www/dav/files
  • /var/www/dav/files/dav

Поскольку наш сайт должен быть корневым веб-хостом, а также обрабатывать запросы к директории dav, мы будем использовать модуль Apache mod_rewrite для перенаправления всех запросов к единственному скрипту. Позже мы создадим этот скрипт, а сейчас нам достаточно знать, что он будет называться server.php и находиться в /var/www/dav/htdocs.

Следующий листинг показывает, как включить mod_rewrite и направить все запросы на файл server.php. Если требуемый файл существует, он будет обработан как обычно, но если его нет, вместо него будет вызван server.php.

Листинг 1. Включаем mod_rewrite так, чтобы все запросы обрабатывались единственным скриптом:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/*(.*)$ /server.php/$1

Теперь мы можем создать виртуальный хост. Следующий листинг показывает, как может выглядеть типичный виртуальный хост в настройках Apache.

Листинг 2. Виртуальный хост Apache для сервера WebDAV:

<VirtualHost *:80>
    ServerName dav.example.com
    DocumentRoot /var/www/dav/htdocs

    php_value include_path /var/www/dav/include

    <Directory /var/www/dav/htdocs>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^/*(.*)$ /server.php/$1
    </Directory>
</VirtualHost>

После того, как мы создали этот хост и рестартовали свой сервер, мы можем начать реализовывать наш сервер WebDAV.

Права доступа к файлам

Ранее в этом разделе мы создали директорию /var/www/dav/files. В ней будут находиться файлы, которые будут управляться сервером WebDAV, и сохраняться посредством WebDAV.

То есть, когда пользователь WebDAV будет копировать файл на свой примонтированный диск, он будет сохраняться в эту директорию.

Следовательно, эта директория должна быть доступна на запись для вашего веб-сервера.

Загрузка и установка SabreDAV

Теперь, когда у вас есть виртуальный хост, назначенный вашему серверу WebDAV, нужно скачать и установить SabreDAV. На время написания текущей версией SabreDAV была 1.0.10. Вы можете скачать ее с http://code.google.com/p/sabredav/downloads/list.

После загрузки, распакуем архив и перенесем содержимое lib в директорию /var/www/dav/include. В итоге вы должны получить следующие файлы:

  • /var/www/include/Sabre
  • /var/www/include/Sabre.autoload.php
  • /var/www/include/Sabre.includes.php

Для подключения библиотеки SabreDAV мы просто выполняем include файла Sabre.autoload.php. Тем самым в PHP будет зарегистрирован новый авто-лоадер, который будет подключать требуемые классы по мере необходимости.

Замечание: Если ваше приложение уже использует собственный авто-лоадер, то вместо указанного выше вы можете выполнить include файла Sabre.includes.php, который подключает все остальные файлы. Если ваш авто-лоадер использует соглашение PEAR об именовании классов (т.е. Foo/Bar/Baz.php соответствует Foo_Bar_Baz), то он также будет работать, и вам не придется заранее подключать файлы SabreDAV.

Перевод с английского: Дмитрий Скоробогатов, специально для xBB.uz, 20.01.2014
Оригинальный текст может быть найден по адресу http://www.phpriot.com/articles/web-dav-with-php


Предыдущие публикации:

Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2014-01-20 00:19:15

Метки материала: webdav, файловая система, php, система webdav, sabredav, реализации webdav, веб, сервер webdav, файлы, библиотека sabredav, web

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.