搭建SVN CentOS服务器

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.大功告成

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容