Я пытаюсь настроить 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. Нет необходимости вручную редактировать их.