配置通过Apache(httpd)访问Subversion(SVN)1.7资源库

原创
2012/12/18 16:25
阅读数 502

前面写过一篇 《CentOS下编译安装Subversion 1.7+配置+自启动(非Apache方式)》 ,实现了用svn://协议访问资源库,现在打算用上apache+HTTP协议,在前端用nginx对apache再做一次代理,这样免费三个月的COMODO SSL证书就又有新用途了。

1. 安装apache

yum install httpd httpd-devel


2. 编译Subversion1.7

./configure --enable-mod-activation --with-apxs
make
make install

这步完成后在/etc/httpd/modules/目录新增两个文件 mod_authz_svn.so 和 mod_dav_svn.so


3. 创建SVN资源库目录

mkdir /data/svnrepos
svnadmin create /data/svnrepos/pro1
/data/svnrepos是仓库集, pro1是一个项目,每新建一个项目,就在该目录执行: svnadmin create ${项目名}


4. 配置apache
修改文件 /etc/httpd/conf/httpd.conf,在合适的位置加入


<Location /svn>
	DAV svn
	SVNParentPath /data/svnrepos
	AuthType Basic
	AuthName "Subversion Repository"
	AuthUserFile /data/svnrepos/passwd
	AuthzSVNAccessFile /data/svnrepos/authz
	Require valid-user
</Location>

Location /svn是http访问路径,SVNParentPath就是上一步骤配置的仓库集, AuthUserFile和AuthzSVNAccessFile分别是“用户名密码” 与 “SVN访问权限”的配置文件,在下面会创建。


5. 创建用户验证文件

touch /data/svnrepos/passwd
htpasswd /data/svnrepos/passwd <username>

htpasswd会把用户名和加密过的密码存入/data/svnrepos/passwd,每行对应一个用户

6. 编辑SVN访问权限控制文件
这个文件决定哪些用户可以读/写哪些资源,给出一个例子

[/]
*=

[pro1:/]
*=r
lcy=rw


7. 启动
要把/data/svnrepos/所属者设置为apache用户,否则客户端无法提交
chown apache -R /data/svnrepos/

/etc/init.d/httpd restart 重启apache,浏览器输入http://127.0.0.1:81/svn就可以访问了。

8. 设置nginx代理
因为我的对外web服务器是nginx,所以要设置nginx代理apache。修改nginx.conf

location /svn/ {
     proxy_pass http://127.0.0.1:81;
     rewrite (.*) $1 break;
 }
展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部