apache2: конфигурация mod_dav, mod_dav_fs - PullRequest
0 голосов
/ 02 июля 2010

В точке монтирования (в частности: / var / data /) я смонтировал raid-раздел размером 3 ТБ, в котором хранятся все виды данных, и я хотел бы поделиться им через WebDAV. Поэтому я установил davfs2 на свой клиент и настроил сайт сервера, добавив:

ScriptAlias "/var/www/webdav" "/var/data"
<Directory "/var/www/webdav">
   Dav On
</Directory>

Наконец, я добавил пользователя www-data в группу media, которая является группой, которая имеет доступ на чтение / запись ко всему материалу / var / data (режим файла для всего содержимого - 660, chown - «some_owner_which_is_part_of_media: media»). ).

Тогда a2enmod mod_dav и перезапуск апача должны вызвать его к жизни. Хорошо, пока здесь. Я установил davfs на своем клиентском компьютере, и это сработало с первого взгляда. По крайней мере, это выглядело так. Содержание было перечислено, и я был счастлив. Позже я попытался открыть какой-нибудь файл на моем клиенте, но, к сожалению, это не удалось с ошибкой ввода-вывода. И тут начинаются проблемы.

==> /var/log/apache2/access.log <==
jin.local - - [26/Jun/2010:14:04:45 +0200] "PROPFIND /webdav/ HTTP/1.1" 207 25152 "-" "davfs2/1.4.5 neon/0.29.0"
jin.local - - [26/Jun/2010:14:04:46 +0200] "GET /webdav/test HTTP/1.1" 500 823 "-" "davfs2/1.4.5 neon/0.29.0"

==> /var/log/apache2/error.log <==
[Sat Jun 26 14:04:46 2010] [error] [client 192.168.2.50] (13)Permission denied: exec of '/var/data/test' failed
[Sat Jun 26 14:04:46 2010] [error] [client 192.168.2.50] Premature end of script headers: test

В предположении, что это может быть проблема с разрешениями, что apache2 не имеет права на доступ к этому материалу. Я быстро разбил файлы, и поэтому я совершенно уверен, что все должно быть в порядке, как это:

# ls -la /var/data
-rw-r--r--  1 www-data www-data   22 2010-06-27 10:07 anotherTest
-rw-r--r--  1 www-data www-data    5 2010-06-26 19:28 test
# cat anotherTest
this is another test
# cat test
test

В последнее время я также добавил аутентификацию на случай, если WebDAV может понадобиться, чтобы разрешить мне запрос GET. Аутентификация работает, но остальное остается прежним.

На данный момент я не знаю, что я могу изменить. Кто-нибудь понял, что я могу попробовать?

Привет, D.

- РЕДАКТИРОВАТЬ -

еще несколько журналов и текущая конфигурация. я просто не понимаю, что с этим не так. как вы можете видеть в журнале, я могу создавать (PUT) и удалять (DELETE) файлы. но получить просто не работает.

ScriptAlias /webdav/ /test/
        <Location /webdav/>
                DAV On
                AuthType Basic
                AuthName "Restricted Files"
                AuthBasicProvider file
                AuthUserFile /var/www/passwords
                AuthGroupFile /var/www/groups
                <LimitExcept PROPFIND>
                         require group webdav
                </LimitExcept>
        </Location>

Это так странно?!

192.168.2.158 - - [02/Jul/2010:21:11:38 +0200] "GET /webdav/test HTTP/1.1" 500 823 "-" "-"
192.168.2.158 - - [02/Jul/2010:21:11:38 +0200] "GET /webdav/test HTTP/1.1" 500 823 "-" "-"
192.168.2.158 - dominik [02/Jul/2010:21:11:39 +0200] "PROPFIND /webdav/ HTTP/1.1" 207 1882 "-" "-"
192.168.2.158 - - [02/Jul/2010:21:11:39 +0200] "GET /webdav/test HTTP/1.1" 500 823 "-" "-"
192.168.2.158 - - [02/Jul/2010:21:11:39 +0200] "GET /webdav/test HTTP/1.1" 500 823 "-" "-"
192.168.2.158 - - [02/Jul/2010:21:11:39 +0200] "GET /webdav/test HTTP/1.1" 500 823 "-" "-"
192.168.2.158 - dominik [02/Jul/2010:21:11:42 +0200] "PROPFIND /webdav/.test.swp HTTP/1.1" 404 467 "-" "-"
192.168.2.158 - dominik [02/Jul/2010:21:11:42 +0200] "PUT /webdav/.test.swp HTTP/1.1" 201 481 "-" "-"
192.168.2.158 - dominik [02/Jul/2010:21:11:42 +0200] "DELETE /webdav/.test.swp HTTP/1.1" 204 141 "-" "-"
192.168.2.158 - dominik [02/Jul/2010:21:11:45 +0200] "PROPFIND /webdav/ HTTP/1.1" 207 497 "-" "-"

==> /var/log/apache2/private-error.log <==
[Fri Jul 02 21:11:38 2010] [error] [client 192.168.2.158] (13)Permission denied: exec of '/test/test' failed
[Fri Jul 02 21:11:38 2010] [error] [client 192.168.2.158] Premature end of script headers: test
[Fri Jul 02 21:11:38 2010] [error] [client 192.168.2.158] (13)Permission denied: exec of '/test/test' failed
[Fri Jul 02 21:11:38 2010] [error] [client 192.168.2.158] Premature end of script headers: test
[Fri Jul 02 21:11:39 2010] [error] [client 192.168.2.158] (13)Permission denied: exec of '/test/test' failed
[Fri Jul 02 21:11:39 2010] [error] [client 192.168.2.158] Premature end of script headers: test
[Fri Jul 02 21:11:39 2010] [error] [client 192.168.2.158] (13)Permission denied: exec of '/test/test' failed
[Fri Jul 02 21:11:39 2010] [error] [client 192.168.2.158] Premature end of script headers: test
[Fri Jul 02 21:11:39 2010] [error] [client 192.168.2.158] (13)Permission denied: exec of '/test/test' failed
[Fri Jul 02 21:11:39 2010] [error] [client 192.168.2.158] Premature end of script headers: test

1 Ответ

1 голос
/ 07 июля 2010

Я мог бы ударить головой.Решение было простым:

Alias /webdav/ /var/data/
<Location /webdav/>
        DAV On
        AuthType Basic
        AuthName "Restricted Files"
        AuthBasicProvider file
        AuthUserFile /etc/passwords
        AuthGroupFile /etc/groups
        <LimitExcept PROPFIND>
                 require group webdav
        </LimitExcept>
</Location>

Обратите внимание на «Псевдоним» вместо «ScriptAlias».Причину, по которой это работает, можно найти здесь .

...