Не удалось открыть базу данных блокировок – настройка Apache WebDAV

Вопрос или проблема

Я настроил сервер WebDAV с использованием Apache. Вот моя конфигурация:

DAVLockDB /var/www/DAVLock.db

<Location /majid>
    AllowOverride None
    Options +Indexes
    DAV On
    AuthUserFile /var/www/users.db
    AuthName Authentication
    AuthType Basic
    <Limit GET PUT DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        Require user majid
    </Limit>
</Location>

Alias /majid /var/www/dav/majid

/var/www/DAVLock.db принадлежит пользователю и группе apache. Я могу получить доступ к WebDAV через браузер. Я настроил WebFolder в Windows XP SP3, но я не могу создавать файлы и папки. Файл error_log сообщает:

[Tue Oct 11 17:05:12 2011] [error] [client 192.168.1.2] File does not exist: /var/www/dav/majid/New Folder
[Tue Oct 11 17:05:12 2011] [error] [client 192.168.1.2] The locks could not be queried for verification against a possible "If:" header.  [500, #0]
[Tue Oct 11 17:05:12 2011] [error] [client 192.168.1.2] Could not open the lock database.  [500, #400]
[Tue Oct 11 17:05:12 2011] [error] [client 192.168.1.2] (13)Permission denied: Could not open property database.  [500, #1]

Кто-нибудь может помочь?
Другой вопрос: нужно ли использовать Options +Indexes для клиентов WebDAV, чтобы перечислять файлы и папки, или это касается только веб-доступа через браузер?

ls -ld /var/www/
drwxr-xr-x. 9 root root 4096 Oct 11 15:54 /var/www/

chown -R apache:apache /var/www/, отмените ваше изменение и попробуйте снова.

Это было неожиданностью для меня, но согласно документации для mod_dav:

“Каталог, содержащий файл базы данных блокировок, должен быть доступен для записи пользователем и группой, под которой работает Apache.”

Вы должны убедиться, что у вас есть правильные разрешения как на файл базы данных блокировок DAV, так и на содержащий его каталог.

В моей свежей установке каталог /var/www/ не имел настроек на запись для группы apache. Каталог /var/lib/dav/ имеет эти разрешения по умолчанию, поэтому это работало для Маджид. Зная это, вы можете создать каталог где угодно с правильными разрешениями.

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

Я удалил эту строку:

DAVLockDB /var/www/DAVLock.db

и использовал стандартную конфигурацию Apache:

<IfModule mod_dav_fs.c>
    # Location of the WebDAV lock database.
    DAVLockDB /var/lib/dav/lockdb
</IfModule>

Теперь все работает идеально, но я пока не знаю причину.

Для тех, кто пришел сюда через поисковик, еще одной причиной этой ошибки может быть отсутствие или неустановленный драйвер apr-util DBM. Обычно это решается установкой пакета apr-util-bdb через диспетчер пакетов, но это зависит от ОС.

Обработка ошибок была исправлена в (скором) apr-util v1.7 и будет доступна в будущей версии httpd, когда будет выпущен apr-util.

http://svn.apache.org/viewvc?rev=1891018&view=rev
http://svn.apache.org/viewvc?rev=1891019&view=rev

Мы также сталкиваемся с теми же проблемами в Apache WebDAV с CentOS 7, чтобы исправить это, после изменения конфигурации мы выполнили

chcon -R -t httpd_sys_content_rw_t /var/www/{корневая папка webdav}

После этого все прекрасно работает

Референс:
https://sirion-notes.blogspot.com/2015/09/centos-7-apache-24-webdav-not-so-secure.html

Я столкнулся с той же проблемой, когда пытался редактировать документ через ms word, я удалил строку DavLockDB /usr/local/apache/var/DavLock в конфигурации apache2, и все заработало, это не лучший подход, но пока он работает.

Ответ или решение

Конфигурация WebDAV на Apache, описанная в вопросе, сталкивается с ошибками, связанными с базой данных блокировок (DAVLockDB). Ошибка «Не удалось открыть базу данных блокировок» встречается довольно часто при неправильной настройке разрешений или отсутствующих компонентах системы. Давайте разберем, как эту проблему можно решить, применяя лучшие практики и учитывая детали вашего описания.

Анализ проблемы

  1. Ошибки в логах:

    • Ошибка 500 указывает на то, что сервер не может обработать запрос из-за проблем с доступом к базе данных блокировок (DAVLockDB).
    • Причина в том, что Apache не имеет достаточных разрешений для чтения или записи в базу данных блокировок и/или директорию, в которой она расположена.
  2. Проблемы с разрешениями:

    • База данных блокировок (/var/www/DAVLock.db) и директория (/var/www/) принадлежат пользователю и группе apache.
    • Однако, директория /var/www/ имеет разрешения drwxr-xr-x, что не позволяет пользователю apache записывать в нее (нужно разрешение записи).

Решение проблемы

Шаг 1: Настройка разрешений

Убедитесь, что у Apache есть необходимые права на запись:

# Измените владельца и группу на apache
chown -R apache:apache /var/www/

# Рекурсивно установите разрешения записи для apache
chmod -R 770 /var/www/

Шаг 2: Перенос базы данных блокировок

Как вариант, перенесите базу данных блокировок в директорию, которая изначально настроена на правильные разрешения, например:

DAVLockDB /var/lib/dav/lockdb

Эта директория имеет нужные права по умолчанию, что устраняет проблемы с доступом.

Шаг 3: SELinux настройки (если применимо)

Если на вашем сервере работает SELinux, необходимо применить корректные контексты безопасности:

chcon -R -t httpd_sys_content_rw_t /var/www/dav/

Важные замечания

  • Необходимость параметра Options +Indexes: Этот параметр необходим только для веб-просмотра через браузер и не влияет на WebDAV-клиенты при листинге файлов и каталогов. Таким образом, его можно исключить из конфигурации, если вас интересуют только операции с файлами через WebDAV.

  • Проверка зависимостей: Убедитесь, что установлены все необходимые библиотеки для apr-util, например, с помощью установки пакета apr-util-bdb.

Заключение

Настройка WebDAV на Apache требует внимательного управления правами и конфигурациями. Следуя вышеописанным шагам, можно устранить ошибки с доступом к базе данных блокировок. Разобравшись с проблемой разрешений, ваша конфигурация должна начать нормально функционировать. Всегда важно следовать актуальной документации Apache и учитывать специфические настройки и требования вашей операционной системы.

Оцените материал
Добавить комментарий

Капча загружается...