您的位置:首页 > 运维架构 > Apache

apache2 + WebDAV + svn 1.6安装配置

2010-07-14 02:14 288 查看
一、安装apache2

1. 从apache的源码目录里面找到apr和apr-util单独安装,以便subversion安装时使用

进入apr目录:

./configure --prefix=/usr/local/apr

make

make test

make install

进入apr-util目录:

./configure --prefix=/usr/local/apr-util

make

make test

make install

2. 安装apache

./configure --prefix=/usr/local/apache2

--with-apr=/usr/local/apr

--with-apr-util=/usr/local/apr-util

--enable-so

--enable-dav

--enable-rewrite

--enable-maintainer-mode

make

make install

二、安装subversion 1.6

1. 由于系统已经有zlib、sqlite等库,因此只单独安装了serf。

./configure --prefix=/usr/local/serf

--with-apr=/usr/local/apr

--with-apr-util=/usr/local/apr-util

make

make check

make install

2. 安装subversion

./configure --prefix=/usr/local/svn

--with-apxs=/usr/local/apache2/bin/apxs

--with-apr=/usr/local/apr

--with-apr-util=/usr/local/apr-util

--with-serf=/usr/local/serf

--with-ssl

--enable-maintainer-mode

make

make check

make install

三、配置

1. 查看apache安装目录的modules目录下是否有mod_authz_svn.so和mod_dav_svn.so

2. 确保conf/httpd.conf文件里面有如下两行:

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

3. 创建一个目录比如/home/svn/repos来存放版本库,可以将多个版本库放在这个目录中统一管理。比如可以在此目录下建一版本库gr:

svnadmin create /home/svn/repos/gr

4. 配置httpd.conf,在其中加入

<Location /svn/>
DAV svn
SVNListParentPath on
SVNParentPath "/home/svn/repos"
AuthType Basic
Authname "Subversion repository"
AuthUserFile "/home/svn/repos/passwd"
AuthzSVNAccessFile "/home/svn/repos/authz"
Require valid-user
</Location>


由于我们在同一个目录中有多个版本库,因此指定SVNParentPath,通过指定SVNListParentPath可以列出版本库列表。

AuthUserFile指定用于用户验证的文件,里面是用户名和密码,由于是用apache进行用户验证,因此这个文件要用apache的htpasswd命令创建的,密码是用MD5加密的。

AuthzSVNAccessFile指定版本库的访问规则。

htpasswd -c /home/svn/repos/passwd user1

-c选项用于创建新文件,以后用-m选项,htpasswd会提示输入密码。

创建文本文件/home/svn/repos/authz,内容格式如下:

[groups]

admin = user1

[/]

* = r

@admin = rw

[gr:/]

重启apache就可以访问到http://host/svn/gr了。

但是访问http://host/svn出现403 Forbidden,换用http://host/svn/则可以列出版本库列表。这是因为在authz文件中指定访问规则的根目录为"/"。

可以使用apache的重定向使http://host/svn定向到http://host/svn/,在httpd.conf中加入

RedirectMatch ^(/svn)$ $1/

这样就不会有403错误码。

另外,向版本库提交时出现如下错误:

svn: Can't open file '/home/svn/repos/gr/db/txn-current-lock': Permission denied

这是因为版本库目录的权限问题。可以将其改为apache所有。apache默认用daemon用户运行,可以增加apache组和用户。

在httpd.conf中修改如下两行:

User daemon

Group daemon



User apache

Group apache

让apache以apache用户运行,然后将版本库目录改为apache所有即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: