Назад | Перейти на главную страницу

SVN и Apache через WebDAV

Я пытаюсь настроить Apache для работы с SVN. Это работает очень хорошо, за исключением аутентификации.

# /etc/init.d/apache2 restart
* Restarting web server apache2
apache2: Syntax error on line 185 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/authz_svn.load: Cannot load /usr/lib/apache2/modules/mod_authz_svn.so into server: /usr/lib/apache2/modules/mod_authz_svn.so: undefined symbol: dav_svn_split_uri
[fail]

Я проверил файл конфигурации, на который он жалуется:

root@uxserver:/etc/apache2# cat mods-enabled/authz_svn.load
LoadModule authz_svn /usr/lib/apache2/modules/mod_authz_svn.so

Мне нужно было собрать этот файл самостоятельно, так как он был недоступен после установки libapache2-svn пакет. На машине работает Ubuntu и работает сам SVN. Вот мой ...

root@uxserver:/etc/apache2# ls mods-enabled/
alias.conf          authz_groupfile.load  autoindex.load  dav.load       deflate.load mime.conf         proxy_http.load  ssl.conf
alias.load          authz_host.load       cgid.conf       dav_lock.load  dir.conf      mime.load         proxy.load       ssl.load
auth_basic.load     authz_svn.load        cgid.load       dav_svn.conf   dir.load      negotiation.conf  rewrite.load     status.conf
authn_file.load     authz_user.load       dav_fs.conf     dav_svn.load   env.load      negotiation.load  setenvif.conf    status.load
authz_default.load  autoindex.conf        dav_fs.load     deflate.conf   headers.load  proxy.conf        setenvif.load

При поиске в Google я обнаружил, что порядок, в котором загружаются модули, может быть неправильным. Но я не могу повлиять на это. Я даже пытался переименовать файл authz_svn.load к zauthz_svn.load чтобы он наконец загрузился, что тоже не сработало.

Любая идея? Или есть другой способ использовать apache такую ​​же аутентификацию, как svnserve, потому что у меня уже есть svnserve, работающий правильно. И к этому же репозиторию хотелось бы прикрепить apache.

Небольшое примечание: репозитории доступны только через SSL, принудительно

<Location /svn>
    DAV svn
    SVNPath /media/data/svn/
    AuthzSVNAccessFile /media/data/svn/conf/authz
</Location>

в файле для vhosts.

Заранее спасибо и с наилучшими пожеланиями

Если вы используете Ubuntu, он должен работать. Я установил libapache2-svn очень давно, и он установил mod_authz_svn.so в мою систему.

Вот мой dav_svn.load

корень @ rhea: ~ # кот /etc/apache2/mods-enabled/dav_svn.load
# Зависит от: dav
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

Хотите, чтобы я каким-то образом прикрепил свой mod_authz_svn.so, чтобы вы могли увидеть, сработает ли это для вас?
Возможно, вам просто нужно включить mod_dav_svn.so?

Использовать a2enmod modulename команда в Ubuntu, чтобы включить модули apache в будущем. Он позаботится обо всем, включая файлы * .load. Нет необходимости вручную редактировать их.