Subversion(svn)的配置和使用

查询是否已安装相关的包:

 

http://doc.iusesvn.com/show-12-1.html

 

openssl-0.9.8b-8.3.el5
openssl-devel-0.9.8b-8.3.el5
mod_ssl-2.2.3-6.el5
mod_auth_mysql-3.0.0-3.1
mysql-server-5.0.22-2.1
mysql-5.0.22-2.1
mysql-devel-5.0.22-2.1
subversion-1.4.2-2.el5
mod_dav_svn-1.4.2-2.el5

/etc/httpd/modules
mod_authz_svn.so
mod_dav_svn.so
mod_auth_mysql.so

 

初始化repository


1 创建svn的项目库父路径,

 

创建一个目录作为svn的项目库的父路径。

#mkdir /svn/baseroot


2
初始化一个svn项目库xxx

 

#svnadmin create / baseroot /repos/xxx

默认的存储方式是 bdb(Berkeley DB)
   

如果想自定义存储库 的存储 方式
#svnadmin create --fs-type fsfs /svn/repos/projectbase
#svnadmin create --fs-type bdb /svn/repos/
projectbase

 

创建登陆用户文件
在/svn目录下创建登陆用户文件.htpasswd以及用户userj,usery
#htpasswd -c /svn/.htpasswd
userj
#htpasswd /svn/.htpasswd usery

 

创建认证数据库
 登陆mysql
 #mysql -u root -p
 创建数据库svn_auth
 mysql>create database svn_auth;
 mysql>user svn_auth;
 创建用户svn
 mysql>GRANT ALL PRIVILEGES ON *.* TO svn@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 创建表users
 mysql> CREATE TABLE users (
 ->   user_name CHAR(30) NOT NULL,
 ->   user_passwd CHAR(20) NOT NULL,
 ->   PRIMARY KEY (user_name)
 -> );
 添加2个测试帐号
 mysql> insert into users values('test1', ENCRYPT('password'));
 mysql> insert into user values('test2', ENCRYPT('password'));
 mysql>commit;

 

SVN访问控制
在/svn目录下创建访问控制文件文件svnaccess,名字任意,

不过在以后的配置过程中你必须使用正确的名字,文件内容为


[groups]  
# harryharry_and_sally = harry,sally
[/]  
*=rw

我们可以看到最后2行才是有效的,意思是对所有的项目,

所有人都有读写(rw)的权限,当然我们还可以对某个项目单独进行限制,设置如下


[groups]
# harryharry_and_sally = harry,sally

[
projectbase :/]
userj =r
*=rw

意思是对于项目库projectbase ,用户userj 只有读权限,其他人有读写权限

 

Apache和SVN集成 [ 登陆文件认证的方式 ]
编辑apache的配置文件/etc/httpd/conf/httpd.conf文件

 

或者/etc/httpd/conf.d/subversion .conf文件
添加如下内容  


<Location /svn>
DAV svn
SVNParentPath /svn/baseroot
AuthzSVNAccessFile /svn/svnaccess
AuthType Basic
AuthName "SVN Repositorys"
AuthUserFile /svn/.htpasswd
Require valid-user
</Location> 

我们可以看到/svn/svnaccess,/svn/.htpasswd 是创建的文件,

需要和http.conf的配置一致。

 

安全访问设置
修改目录的属主和访问权限
#chown apache.apache -R /svn
#chmod 755 -R /svn 

修改SELinux的设置
禁用SELinux(强烈不推荐)或者在SELinux图形管理界面中勾上Disable SELinux protection for httpd daemon这个选项,

否则apache这个虚拟用户无法访问/svn目录,当然你也可以用更好的方法设置apache的访问权限.

 

 

http://www.blogjava.net/hadeslee/archive/2008/03/12/185788.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值