搭建SVN CentOS服务器

2017-01-01  本文已影响0人  孙瑞锴

1.借鉴:           

              Linux(Centos6.5)下安装svn服务器,并通过http访问  

              在linux服务器上装svn版本管理,自动部署代码到项目 

2.开始:        

              2.1 首先你得有一个干净的CentOS或者其他的服务器,确保它们能够连接外网,请别忘记将防火墙关闭。                

                      service iptables stop #关闭防火墙

                      chkconfig iptables off #使防火墙不自动启动

            2.2 配置的话建议配置成双网卡,效仿企业中服务器的网络配置,一个配置为内网,一个连接外网,不需要的话可以删除。(这里是配置网卡,如果已经可以连接网络,则可以省略这一步)       

                    以下为我自己的配置:

                    [root@svn ~]# vi  /etc/sysconfig/network-scripts/ifcfg-eth0       #网卡eth0

                     DEVICE=eth0       

                     TYPE=Ethernet        

                     ONBOOT=yes        

                     NM_CONTROLLED=yes        

                     BOOTPROTO=static #这里是配置静态IP        

                     IPADDR=10.211.55.9 #请更改IP        

                     NETMASK=255.255.255.0 # 请视情况更改网络掩码        

                    [root@svn ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth1        #网卡eth1

                    DEVICE=eth1        

                    TYPE=Ethernet        

                    ONBOOT=yes        

                    NM_CONTROLLED=yes        

                    BOOTPROTO=dhcp #这里是动态获取IP          

            2.3 安装svn        

                  # 首先你可能需要一个镜像,当然是为了提速       

                  [root@svn ~]# yum install yum-fastestmirror        

                  # 然后你可以下载yum安装svn了,当然yum要在centos下       

                  [root@svn ~]# yum -y install mod_dav_svn        

                  # 接下来安装httpd,一般情况下,linux服务器是有httpd服务的,你可以检查下,如果没有则安装        

                  [root@svn ~]# yum -y install httpd              

           2.4 配置仓库        

                 [root@svn ~]#  mkdir -p /home/svn/repos1  #创建仓库1     

                 [root@svn ~]#  svnadmin create /home/svn/repos1  #建立svn版本库       

                 [root@svn ~]# vi /home/svn/repos1/conf/svnserve.conf  #修改SVN版本库配置文件                       

                  # 修改文件结果如下:        

                  [general] # 以下配置必须顶格,否则会有问题的        

                  anon-access = none        

                  auth-access = write       

                  password-db = /home/svn/conf/pwd.conf    # 指向用户配置文件        

                  authz-db = /home/svn/conf/authz.conf    # 指向权限配置文件       

                  realm = repos1                          # 指向svn仓库地址         

           2.5 配置svn用户和权限        

                 2.5.1 配置svn用户

                 [root@svn ~]# vi /home/svn/conf/pwd.conf # 这里面什么也不用写,直接保存并退出就行,或者直接touch /home/svn/conf/pwd.conf就行        

                 [root@svn ~]# htpasswd -c /home/svn/conf/pwd.conf admin  # 创建admin用户,根据提示输入密码,第一个用户才需要加-c,后面的用户不需要-c       

                  [root@svn ~]# htpasswd /home/svn/conf/pwd.conf test # 创建test用户,根据提示输入密码       

                  [root@svn ~]# vi /home/svn/conf/pwd.conf # 在用户最上方加上[users],加上[users]这一步是很重要的,因为用htpasswd的方式加用户会覆盖掉[users],所以每次加完用户需要回去补一下该节点                

                  最终pwd.conf文件应该是这样的:            

                  [users]            

                  admin:qISaC0mVFWh1s            

                  test:M2CgPmmMSyDis      

                 2.5.2 配置svn权限        

                 [root@svn ~]# vi /home/svn/conf/authz.conf                

                 文件内容如下:       

                 [groups]        

                 admin=user1,user2        

                 test=user3        

                 [/]        

                @admin=rw       

                 * = r        

                [repos1:/]        

                user3=r                

                解释:            

                         a. [groups]为组定义,可以在该组下加很多用户,以,分割,但是该用户数据必须在/homd/svn/conf/pwd.conf中定义好,            

                         b. [/]表示根目录以下的权限定义            

                         c. [repos1:/]表示仓库下的权限定义            

                        如果要分项目,则以此规则类推:             

                        如:[repos1:/aaa]则表示仓库下的aaa项目的权限定义。              

                       @admin 表示admin这个组下的用户权限。              

                       user1=r 表示user1这个用户的权限。              

                       权限类型:r,w,rw 分别表示只读,只写,读写。如果是user1= 这种空情况则表示没有。           

            2.6 建立启动svn的用户        

                      [root@svn ~]# useradd svn      #如果提示svn账户已存在,则执行以下命令    

                      [root@svn ~]# passwd svn        ##根据提示修改下密码,不能过于简单,可使用常用密码        

                     [root@svn ~]# chown -R svn:svn /home/svn/    ##允许用户svn访问版本库    

                     [root@svn ~]# chmod –R o+rw /home/svn        ##解决windows检出提交提示/home/svn/db/txn-current-lock’错误(这一行我并没有执行,因为我的环境不是window检出,所以没有配置)                

            2.7 配置svn的端口        

                     [root@svn ~]# vi /etc/httpd/conf/httpd.conf        

                     找到:       

                     #Listen 12.34.56.78:80这一行,      

                     修改成:

                     Listen 9999  ##9999就是svn的端口,默认是80,你可以修改成你自己想要的。不建议使用默认80端口        

            2.8 配置httpd        

                     [root@svn ~]# vi /etc/httpd/conf.d/subversion.conf       

                     配置文件内容为:

                     <Location /svn>

                         DAV svn          

                         SVNListParentPath on          

                         SVNParentPath /home/svn

                        <LimitExcept GET PROPFIND OPTIONS REPORT>

                              AuthType Basic

                              AuthName "Authorization Realm"

                              AuthUserFile /home/svn/conf/pwd.conf

                             AuthzSVNAccessFile /home/svn/conf/authz.conf

                            Require valid-user

                       <LimitExcept>

                    <Location>

            2.9 启动服务        

                  [root@svn ~]# service httpd restart # 重启httpd服务        

                  [root@svn ~]# svnserve -d -r /home/svn/ # 启动svn        

                  [root@svn ~]# ps aux|grep svn # 查看svn服务是否正常     

                  # 出现以下说明svn服务启动成功了        

                 root      1406  0.0  0.0 152868  740 ?        Ss  16:20  0:00 svnserve -d -r /home/svn     

                 root      2012  0.0  0.0 103252  864 pts/0    S+  21:59  0:00 grep svn

            2.10 启动浏览器访问      

                在浏览器中输入:服务器Ip+端口+httpd配置中的。

                如:http://10.211.55.9:9999/svn/repos1

3.大功告成

上一篇下一篇

猜你喜欢

热点阅读