今天讲的内容:

  • 实战使用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。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

最新文章

  1. 在linux命令行中直接执行php命令
  2. GWT入门学习之下载安装
  3. 一个Java应用,三种字体风格(Java, Windows, Mac),真是蛋疼
  4. ios -几种常见定时器
  5. MPAndroiddChart的使用
  6. Python自动安装第三方类库
  7. mac/unix系统:C++实现一个端口扫描器
  8. MySQL Server 5.0 下载与 安装指南[图文] (安装到非系统路径+设置root账号相应password)
  9. 数据仓库(七):Oracle Warehouse Builder(OWB)创建数据仓库
  10. for语句之打印三角形问题
  11. Javascript Base64编码与解码
  12. Asp.net MVC4 +EF6开发
  13. IIS 发布程序,无法输出EXCEL 问题处理
  14. jdk,tomcat配置
  15. jquery判空 string类型的日期比较大小
  16. 在Asp.Net Core中使用中间件保护非公开文件
  17. Python 传递任意数量的实参
  18. Android动态添加Device Admin权限
  19. Windows使用SSH Secure Shell实现免密码登录CentOS
  20. 利用 Vmware 安装 Linux 虚拟机

热门文章

  1. MFC Edit控件的使用~~
  2. [Deep-Learning-with-Python]基于Keras的房价预测
  3. kvm虚拟化二: 字符界面管理及 无人值守安装
  4. 定制 input[type=&quot;radio&quot;] 和 input[type=&quot;checkbox&quot;] 样式
  5. nova状态同步
  6. SQL调优日志--内存问题排查入门篇
  7. python + selenium webdriver 自动化测试 之 环境异常处理 (持续更新)
  8. RyuBook1.0案例二:Traffic Monitor项目源码分析
  9. Practice1小学四则运算(改进)
  10. 高效获取网页源码COM