Linux配置SVN服务器(subversion+apache)

1:环境及相关服务检查
确认是否安装了apache,没有请yum 安装apache
一般情况下,centos自带了svnserver,如果没有运行:

yum install subversion

2: 相关软件包检查
请确认下面软件包有没有安装,如果没有安装,请yum 安装
subversion
mod_dav_svn
如果安装正常的话,应该在/etc/httpd/modules目录下能找到这些模块
mod_authz_svn.so
mod_dav_svn.so

3: 初始化repository
创建svn的项目库父路径,我把/home/svnroot做为svn的项目库父路径。这个目录是任意的,如果是多个项目库则必须在同一个父路径下

#mkdir /home/svnroot

我们通过如下命令初始化一个svn项目库test1

#svnadmin create /home/svnroot/test1

重复上面的命令创建多个项目库,如

#svnadmin create /home/svnroot/test2

或者你指定SVN库的存储方式

#svnadmin create –fs-type fsfs /home/svnroot/test1

4: SVN访问控制
建立用户认证:

htpasswd -cm /home/svnroot/passwd [username]

然后输入用户名密码。打开该文件会看到输入的用户名和一段加密的密码。
在/home/svnroot目录下创建访问控制文件文件svnaccess,名字任意,不过在以后的配置过程中你必须使用正确的名字,文件内容为

[groups]
    admin=test1,test2
    [test1:/]
    @admin=rw
    *=r
    [test2:/]
    @admin=rw
    *=r

意思是对于项目库test1和test2,test1和test2用户有读写权限,其他人有读取权限无写入权限。

5: Apache和SVN集成
编辑apache的配置文件/etc/httpd/conf/httpd.conf文件

 <Location /svn>
    DAV svn
    SVNParentPath /home/svnroot
    AuthzSVNAccessFile /home/svnroot/svnaccess
    AuthUserFile /home/svnroot/passwd
    AuthName ”SVN Repositorys”
    AuthType Basic
    Require valid-user
    </Location>

6: 安全访问设置[必须设置,否则svn无法访问]
修改目录的属主和访问权限

 #chown apache.apache -R /home/svnroot
 #chmod 755 -R /home/svnroot

修改SELinux的设置
禁用SELinux(强烈不推荐)或者在SELinux图形管理界面中勾上Disable SELinux protection for httpd daemon这个选项,否则apache这个虚拟用户无法访问/home/svnroot目录,当然你也可以用更好的方法设置apache的访问权限,比如:

chcon -R -h -u system _u -t httpd_sys_content_t /home/svnroot

7: 重新启动Apache服务器
执行如下命令

#service httpd restart
或者
#/etc/init.d/httpd restart

键入下面的url看是否能正确的访问svn。

http://localhost/svn/test1,http://localhost/svn/test2

posted @ 2014-01-28 11:08  狂热的猴子  阅读(288)  评论(0编辑  收藏  举报