白天和黑夜只交替没交换无法想像对方的世界
分类: linux
2011-05-31 21:35:35
centos svn安装与配置 (rhel5.4平台测试通过)
yum install httpd httpd-devel subversion subversion-devel mod_dav_svn
mod_auth_mysql
第一步:安装apache subversion
yum install httpd
yum install httpd-devel //用于开发apache模块
yum install subversion
yum install mod_dav_svn //subversion与apache之间的接口(通过它,apache就可以访问版本库,可以让客户端也使用http的扩展协议 webdav/deltav进行访问)
yum install mod_auth_mysql //这一项用于用户身份验证,在网上有资料说貌似这个mod_auth_mysql没得配置访问权限的 只有用户设置,建议不装,用htpasswd就可以,在这里我没有装,我还是打算用htpasswd,可能下回会试试。
验证svn模块(mod_dav_svn)是否正确安装
ls /etc/httpd/modules | grep svn
系统提示:
mod_authz_svn.so
mod_dav_svn.so
验证安装:
svn --version
第二步:创建svn库和项目
mkdir /home/svn //创建svn库
svnadmin create /home/svn/projcet //创建项目
第三步:添加组及组员权限
groupadd subversion //创建一个叫subversion的组为拥有仓库所在的目录
usermod -g subversion -a apache //将自己和apache 用户加入组成员中
查看:more /etc/group | grep subversion
系统提示:subversion:x:500:apache
第四步:修改项目权限
chgrp -r subversion /home/svn/project
chmod -r 777 /home/svn/project
这里最好根据自己的安全需求配置相应的权限,我这是试验环境所以直接给了777
第五步:配置httpd
编辑httpd.conf
vim /etc/httpd/conf/httpd.conf
查看有没有loadmodule dav_svn_module modules/mod_dav_svn.so这一行,如果没有就添加上为了使客户端能够通过apache来访问svn档案库,apache需要加载 mod_dav_svn模块。如果apache是按照与预设目 录安装的,mod_dav_svn 模块应该会安装在 apache 安装位置 (默认路径是 /etc/httpd/) 的 modules 子目录内。同时在apache的配置文件httpd.conf(默认路径为etc/httpd/conf/)中已经使用 loadmodule指令加载了该模块(如果没有,手动添加)注意这个指令必须出现在其它的 subversion 相关指令之前。还要加载mod_authz_svn.so模块
例如:
loadmodule dav_svn_module modules/mod_dav_svn.so
loadmodule authz_svn_module modules/mod_authz_svn.so
一般来说apache2都己正常加载了这两个模块
启动httpd
/etc/init.d/httpd start
打开浏览器查看是否能看到apache的页面(注意如果开了防火墙记得开放80端口)
第六步:配置svn
编辑subversion.conf
vim /etc/httpd/conf.d/subversion.conf
按以下代码更改(栗红为修改的代码):
loadmodule dav_svn_module modules/mod_dav_svn.so
loadmodule authz_svn_module modules/mod_authz_svn.so
dav svn
svnparentpath /home/svn
#
# # limit write permission to list of valid users.
#
# # require ssl connection for password protection.
# # sslrequiressl
#
authtype basic
authname "authorization realm"
authzsvnaccessfile /home/svn/project/conf/authz
authuserfile /home/svn/passwd
require valid-user
#
针对不同用户给予不同权限:
# vim /home/svn/project/conf/authz 添加如下内容:
[groups]
g_vip = admin,vip01,vip02
g_manager = user01,user02,user03
g_developer = user04,user05,user06
g_tester = user07,user08,user09
g_docs = user10
[/]
* = r
@g_manager = rw
@g_vip = rw
dangerman =
[/require_document]
@g_docs = rw
@g_manager = rw
* =
[/develope]
@g_developer = rw
@g_manager = rw
* =
[/test1]
@g_tester = rw
* =
第七步:建立用户
# htpasswd -c /home/svn/passwd test //第一次添加用户使用参数“-c”以后再添加就不用了
系统提示:
new password: //输入新密码
re-type new password: //确认密码
adding password for user test
重启apache
通过web页面访问,弹出用户登录验证,访问成功 (注意开放防火墙的3690端口)
trouble_shooting:
访问报错如下:
访问地址不正确,正确的地址为: