通过 WebDAV 的 SVN 和 Apache

通过 WebDAV 的 SVN 和 Apache

我正在尝试配置 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

在谷歌搜索后,我发现模块加载的顺序可能不对。但我无法真正影响这一点。我甚至尝试将文件重命名authz_svn.loadzauthz_svn.load以便最后加载它,但这也没有用。

有什么想法吗?或者有没有其他方法可以让 apache 使用相同的身份验证svnserve,因为我已经有一个正确运行的 svnserve。我想将 apache 附加到这个相同的存储库。

小提示:repos 只能通过 SSL 访问,强制

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

在 vhosts 文件中。

提前致谢并致以最诚挚的问候

答案1

如果您正在运行 Ubuntu,它应该可以工作。我很久以前安装了 libapache2-svn,它将 mod_authz_svn.so 安装到我的系统中。

这是我的 dav_svn.load

root@rhea:~# cat /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?

答案2

将来使用a2enmod modulenameUbuntu 上的命令来启用 apache 模块。它将处理所有事情,包括 *.load 文件。根本不需要手动编辑它们。

相关内容