Linux下SVN+Apache服务器搭建

注:此文章代码因编辑器原因,格式略有差异,命令 应全部小写,格式为英文格式

通过页面访问SVN服务器

Yum –y install httpd

Yum –y install mod_dav_svn

Yum –y install subervsion

安装完成之后查看/etc/httpd/conf.d/svnerve.conf中是否有

 LoadModule dav_svn_module     modules/mod_dav_svn.so  

 LoadModule authz_svn_module   modules/mod_authz_svn.so

如果有表明SVN模块成功加载到Apache中

然后SVN整合Apache

在httpd默认路径下创建SVN版本库

Mkdir /var/www/svn

Svnadmin create /var/www/svn/test

修改Apache下的SVN模块配置文件

Vi /etc/httpd/conf.d/svnserve.conf

<Location /svn>

        DAV svn

        SVNParentPath /var/www/svn

        AuthType Basic

        AuthName "please login"

        AuthUserFile /var/www/svn/passwd

        Require valid-user

</Location>

#保存退出

Chown –R apache:apache /var/www/svn/test   #设置版本库所属用户及所属组

Touch /var/www/svn/passwd  #创建SVN用户的配置文件,注意,与上边/etc/httpd/conf.d/svnserve.conf 中SVNParentPath 的配置路径一样

创建httpd用户:htpasswd /var/www/svn/passwd username #然后系统会让输入两次密码,设置成功,密码是加密的,查看配置文件/var/www/svn/passwd中会有用户名以及密文密码

#第一次创建用户时也可以加-c选项,这样会它自己创建密码配置文件

创建权限文件,可以参照版本库中文件:

Cp /var/www/svn/test/conf/authz.conf /var/www/svn/authz

Vi /var/www/svn/authz

[groups]   #设置用户组,等于号前后都有一个空格,相同组的用户之间用逗号隔开

Admin = username,username,username

Group1 = username,username

Group2 = username,username

。。。。。。。。。。。

[/] #/表示根目录下的所有SVN版本库,与上边格式相同,组前边要加上@,然后指定权限

@admin = rw

Username = r

Username =rw

[svn:/test]  #设置指定的版本库配置

格式同上

#保存退出

启动Apache:service httpd start

如果出现httpd: apr_sockaddr_info_get() failed for svn-client错误,需要修改/etc/httpd/conf/httpd.conf文件中的ServerName选项,去掉注释,然后自定义,

比如:ServerName 192.168.31.20

#保存退出

然后重新启动httpd

Service httpd restart

可以用http://192.168.31.20/svn/test访问,如果弹出登录界面并登录成功,表示搭建成功。

如果本机可以访问,其他机器访问不了,则有可能是防火墙问题,需要设置一下

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

/etc/init.d/iptables save  #保存规则到iptables

此时应该可以登录成功。

将SVN服务器设置开机自启:vi /etc/rc.local

Svnserve –d –r /var/www/svn/test #保存退出

Windows客户端:下载SVN客户端,在开始菜单里查看TortoiseSVN,然后连接SVN服务器,登陆后进行代码管理。

原文地址:https://www.cnblogs.com/xinxiao/p/7269493.html