• 实战:使用SVN+apache搭建一个版本控制服务器


    今天讲的内容:

    • 实战使用SVN+apache搭建一个版本控制服务器

    每天: 10:00

    晚上:21:00

    服务端:xuegod63.cn   IP:192.168.10.63

    服务概述:

    SVN(subversion)是近年来崛起的版本管理工具,是CVS的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。作为一个运维人员安装和配置SVN服务器和客户端是必须要掌握的内容。

    版本控制:

     

     

    常见版本控制软件:

    Cvs  由于之前CVS编码的问题,现在大多数软件开发公司都使用SVN替代了CVS

    Svn  

    git  分布式版本控制器

    SVN服务器运行模式:

    模式1:svn服务器单独运行  监听: 3690端口    访问: svn://IP

    模式2: svn 服务器+ apache   : 80 端口  访问: http://IP     今天要讲的

     

    实战:搭建svn 服务器+ apache 实现版本控制服务器

     

    安装: svn服务器,apache, mod_dav_svn 软件包

    运行机制:

     

    实战:RHEL6 上安装配置 svn server+apache

    #安装svn服务器和 apache服务器,  mod_dav_svn模块

    # yum install subversion  httpd  mod_dav_svn  -y

    mod_dav_svn模块 apache http 服务器的插件,可以让版本库通过http协议,在网站上展现。

     

    创建版本库目录,并修改相应权限。

    [root@xuegod63 ~]# mkdir /var/repos

     

    创建两个项目仓库。 xuegod.cn和svn2

    [root@xuegod63 ~]# svnadmin create /var/repos/xuegod.cn

    [root@xuegod63 ~]# svnadmin create /var/repos/svn2

    [root@xuegod63 ~]# ls /var/repos/xuegod.cn

    conf  db  format  hooks  locks  README.txt

     

    [root@xuegod63 conf]#ls /var/repos/xuegod.cn/conf

    authz  passwd  svnserve.conf

    #注:用户权限配置我们使用apache的,这里暂时不用svn自带

    启动:SVN服务器

    [svn@xuegod63 conf]# svnserve -d -r /var/repos/

      -d表示以daemon方式(后台运行)运行

      -r  /var/repos指定根目录是/var/repos

     

    [svn@xuegod63 conf]# ps -axu | grep svn

    Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

    root      6982  0.0  0.0 161476  1924 pts/2    S    18:09   0:00 su - svn

    svn       6983  0.0  0.0 108392  1864 pts/2    S    18:09   0:00 -bash

    svn       7262  0.0  0.0 182760  1056 ?        Ss   18:26   0:00 svnserve -d -r /var/repos/

    [svn@xuegod63 conf]# netstat -antup | grep 3690

    (Not all processes could be identified, non-owned process info

     will not be shown, you would have to be root to see it all.)

    tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      7262/svnserve      

     

    总结:svn服务器搭建

    1、安装:  yum install subversion httpd mod_dav_svn

    2、创建仓库存储代码: svnadmin create /var/repos/xuegod.cn

    3、启动svn服务器:svnserve -d -r /var/repos/

     

    APACHE部分

     

    第一步,查看apache支持subversion两个动态库有没有安装成功。

    查看:

    [root@xuegod63 conf]# vim /etc/httpd/conf.d/subversion.conf  #看到下面配置文件中两个模块相关信息,说明安装成功。

         LoadModule dav_svn_module     modules/mod_dav_svn.so

    LoadModule authz_svn_module   modules/mod_authz_svn.so

     

    配置apache通过mod_dav_svn模块访问SVN服务器

    [root@xuegod63 ~]# vim /etc/httpd/conf.d/subversion.conf

    <Location /svn>

           DAV svn

           SVNParentPath /var/repos

            AuthType Basic

    AuthName " SVN server of xuegod!"

       AuthUserFile /home/svn/passwd

            AuthzSVNAccessFile /home/svn/auth

            Require valid-user

    </Location>

    注释:

    <Location /svn>    #apache的虚拟目录。后期通过链接:http://192.168.1.63/svn 来访问两个仓库:xuegod和svn2

           DAV svn

           SVNParentPath /var/repos   #存放两个仓库:xuegod和svn2的真实目录

            AuthType Basic

            AuthName " SVN server of xuegod!"   #apache认证时弹出的消息

            AuthUserFile /home/svn/passwd   # passwd存储用户名和密码

            AuthzSVNAccessFile /home/svn/auth  #存放用户的权限

            Require valid-user

    </Location>

     

      

    建立本地访问控制文件/home/svn/passwd#后期通过httpd服务器访问svn时,会使用这个文件中的用户信息验证用户和密码。

     

    [root@xuegod63 ~]# mkdir /home/svn

    [root@xuegod63 ~]# htpasswd -c /home/svn/passwd  tube   

    # -c create, 创建/home/svn/passwd文件。会提示你输入密码,默认是MD5加密

    New password: 123456

    Re-type new password:

    Adding password for user tube

     

    第二次添加用户是否需要加 -c 参数:  要1 : 不要:2

     

    [root@xuegod63 ~]# htpasswd  /home/svn/passwd  cd   #后期再创建时,就不需要加-c参数,否则,会把之前添加到/home/svn/passwd中信息,全部覆盖。

    New password: 123456

    Re-type new password:123456 

    Adding password for user tree

     

    查看用户名和密码:

    [root@xuegod63 ~]# cat /home/svn/passwd

    cd:sjplr6rMtpN3E

    tube:gZEcmDnMwFsMc

    注:tube和cd两个用户的明文密码都一样,但是加完密码以后是不一样。

     

    加密时:  (密码+用户名 ) md5  -》  ll7IH3i5G0JfU

     

    第四步,建立本地项目版本库,权限控制文件。

    达到以下目标:

    用户     仓库                  权限

    tube    xuegod.cn,svn2     rw

    cd       xuegod.cn            rw

     

    [root@xuegod63 ~]# vim /home/svn/auth   #写入以下内容

    [/]         

    tube = rw    

    [xuegod.cn:/]

    cd = rw

     

    解释:

    [/]          #  这个表示在所有仓库的根目录下

    tube = rw    #  表示tube用户对所有仓库根目录下的软件版本库有rm权限

    [xuegod.cn:/]        #这表示,仓库xuegod.cn的根目录下的访问权限

    cd= rw        # cd用户对xuegod.cn仓库具有读和写权限

     

    给目录权限

    [root@xuegod63 conf.d]# chmod  777  /var/repos/ -R

     

    [root@xuegod63 ~]# service httpd restart

    svn的访问地址是:       http://192.168.10.63/svn/xuegod.cn

     

     

     

     

     

     

    总结:配置apache+svn

    1、修改配置文件:vim /etc/httpd/conf.d/subversion.conf  apache可以支持svn

    2、创建SVN用户和密码文件: /home/svn/passwd

    3、创建SVN权限管理文件:/home/svn/auth

     

    SVN客户端使用说明

    subversion windows客户端TortoiseSVN配置:

    http://tortoisesvn.net/about.zh.html

     

     

    注: 32位的软件只能安装在32位操作系统上。 我是64位,所以在安装在64上。

     

    新一个文件夹:www.xuegod.cn

    取出版本为0的源代码:

     

     

    上传代码:

    随意保存一个网页,把网页源代码复制到目录www.xuegod.cn中,然后提交第一个网站代码:

     

     

    Linux下测试客户端:

    [root@xuegod64 ~]# svn checkout http://192.168.10.63/svn/xuegod.cn xuegod.cn

    认证领域: <http://192.168.10.63:80>  SVN server of xuegod!

    “root”的密码:

    认证领域: <http://192.168.10.63:80>  SVN server of xuegod!

    用户名: tube

    “tube”的密码:

     

    -----------------------------------------------------------------------

    注意!  你的密码,对于认证域:

     

       <http://192.168.10.63:80>  SVN server of xuegod!

     

    只能明文保存在磁盘上!  如果可能的话,请考虑配置你的系统,让 Subversion

    可以保存加密后的密码。请参阅文档以获得详细信息。

     

    你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,

    来避免再次出现此警告。

    -----------------------------------------------------------------------

    保存未加密的密码(yes/no)?no

    A    xuegod.cn/salt主机地址密码.txt

    A    xuegod.cn/新建虚机需知.txt

    取出版本 1。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    操作系统概念(第十一章) 文件系统实现
    Linux内核中网络数据包的接收-第一部分 概念和框架
    【技术文档】jeecg3.7-maven搭建好开发环境入门
    memcache源码编译安装
    Linux系统级日志系统
    shell流程控制
    EOF多行写入文件防止变量替换
    zip压缩解压
    shell变量的截取总结
    对linux安装中文字体库
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/8671474.html
Copyright © 2020-2023  润新知