飞道的博客

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

392人阅读  评论(0)

服务端: 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协议,在网站上展现。

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

63 ~]# mkdir /var/repos

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

63 ~]# svnadmin create /var/repos/xuegod.cn
63 ~]# svnadmin create /var/repos/svn2
63 ~]# ls /var/repos/xuegod.cn
conf  db  format  hooks  locks  README.txt
63 conf]#ls /var/repos/xuegod.cn/conf
authz  passwd  svnserve.conf

#注:用户权限配置我们使用apache的,这里暂时不用svn自带
启动:SVN服务器

63 conf]# svnserve -d -r /var/repos/
  -d表示以daemon方式(后台运行)运行
  -r  /var/repos指定svn根目录是/var/repos
63 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两个动态库有没有安装成功。
查看:

63 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服务器

63 ~]# 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时,会使用这个文件中的用户信息验证用户和密码。

63 ~]# mkdir /home/svn
63 ~]# 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 参数:

63 ~]# htpasswd  /home/svn/passwd  cd   #后期再创建时,就不需要加-c参数,否则,会把之前添加到/home/svn/passwd中信息,全部覆盖。
New password: 123456
Re-type new password:123456 
Adding password for user tree

查看用户名和密码:

63 ~]# cat /home/svn/passwd 
cd:sjplr6rMtpN3E
tube:gZEcmDnMwFsMc
注:tube和cd两个用户的明文密码都一样,但是加完密码以后是不一样。

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

第四步,建立本地项目版本库,权限控制文件。
达到以下目标: 
用户     		仓库                  权限
tube    		xuegod.cn,svn2     rw
cd  		     xuegod.cn            rw

63 ~]# vim /home/svn/auth   #写入以下内容
[/]         
tube = rw    
[xuegod.cn:/]
cd = rw

解释:
[/] # 这个表示在所有仓库的根目录下
tube = rw # 表示tube用户对所有仓库根目录下的软件版本库有rm权限
[xuegod.cn:/] #这表示,仓库xuegod.cn的根目录下的访问权限
cd= rw # cd用户对xuegod.cn仓库具有读和写权限

给目录权限

63 conf.d]# chmod  777  /var/repos/ -R

63 ~]# 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下测试客户端:

64 ~]# 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。

64 ~]# cd www.xuegod.cn/
[root@xuegod64 www.xuegod.cn]# ls
index.html  TortoiseSVN - About_files  TortoiseSVN - About.htm

转载:https://blog.csdn.net/qq_40907977/article/details/116330967
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场