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