查询是否已安装相关的包:
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,名字任意,
不过在以后的配置过程中你必须使用正确的名字,文件内容为
我们可以看到最后2行才是有效的,意思是对所有的项目,
所有人都有读写(rw)的权限,当然我们还可以对某个项目单独进行限制,设置如下
意思是对于项目库projectbase ,用户userj 只有读权限,其他人有读写权限
Apache和SVN集成 [ 登陆文件认证的方式 ]
编辑apache的配置文件/etc/httpd/conf/httpd.conf文件
或者/etc/httpd/conf.d/subversion .conf文件
添加如下内容
我们可以看到/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