Centos6.5 +svn+http

上一篇 / 下一篇  2017-03-03 11:01:35 / 个人分类:jenkins

最近在研究jenkins,因在研究阶段,所有不敢用公司的svn,所以只好自己动手操作了,对于打包工具来说,我是小白中的小白,现在小白就给你讲解一下亲身经过的svn安装过程。

创建Centos6.5虚拟机并连外网,并配置yum网络源

SVN

一、安装svn

 yum install subversion    

二、基本的SVN服务器配置

1.新建一个目录用于存储SVN所有文件   mkdir /home/svn

2.新建一个版本仓库    svnadmin create /home/svn/project

   新建第二个版本仓库  svnadmin create /home/svn/project1

在每个版本仓库里生成四个目录,conf,db,hooks与locks,其中conf里面的文件含义:

        authz文件是权限控制文件

        passwd是账号密码文件

        svnserve.conf 是SVN服务配置文件

db,hooks,locks后期补充说明

3.在某仓库目录里将conf目录拷贝至/home/svn目录,应该是方便后期每个用户都可以访问不同的仓库。

每个仓库下的conf目录里只保留svnserve.conf,authz与passwd删除。

3.添加用户

要添加SVN用户非常简单,只需在/home/svn/conf/passowrd文件中[users]下用户名及密码

username=password 格式的内容即可,我添加了


添加用户

4.修改用户访问策略 /home/svn/conf/authz

                          [project:/] 

                           rln=rw

                           sjz=rw

5.修改/home/svn/conf/svnserve.conf文件,让用户和策略配置升效.

svnserve.conf内容如下:

[general]       

anon-access = none

auth-access = write  #授权用户可写

password-db = /home/svn/conf/passwd    #(这个可以是绝对地址 也可以是相对文件地址,原因是 可以多个代码仓库共享同一个密码设定)

authz-db = /home/svn/conf/authz  

注:[general]里的内容行开头不能有空格,否则报错,我就吃亏这儿了

6.修改/home/svn/仓库/conf/svnserve.conf文件,以project为例.

svnserve.conf内容如下:

[general]

anon-access = none

auth-access = write  #授权用户可写

password-db = /home/svn/conf/passwd    #(这个可以是绝对地址 也可以是相对文件地址,原因是 可以多个代码仓库共享同一个密码设定)

authz-db = /home/svn/conf/authz

第6步不知道是否保留,反正我配置了

7.启动服务/停止服务

svnserve -d -r /home/svn        #启动服务

ps -ef|grep svnserve   #查找svnserve进程号使用kill -9 杀掉,即可停止服务

8.测试svn服务


现在就配置好了,那咱们提交一个文件测试一下吧

提交也不是哪个位置都可以,需要进入之前创建的临时目录/home/svn/project/conf/project/server,在此目录随便创建一个文件,执行svn add 与svn commit即可,最后会提示提交后的版本为n(n代表版本号)


提交某版本

若想使用http访问,则需要进行以下配置

三,配置SVN服务器的HTTP支持

1,转换SVN服务器的密码

由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。.将/home/svn/conf/passwd备份,在命令行中执行以下

vim passwd #清空文件

htpasswd -c passwd rln     #会让输入访用户的密码

htpasswd  passwd szj     #第二次以后不必添加-c,同样输入密码

现在目录下会多一个passwd文件,则必须在该文件顶部添加[users]。

注:添加完用户后,都要添加[users],若下次新增用户了,则需要删除顶部的[users],再htpasswd 文件名 用户名格式添加用户,然后再添加[users]。

2,修改httpd.conf,添加关于SVN服务器的内容,在此步之前需要安装 mod_dav_svn,否则在启动httpd服务时报DAV错误,yum install mod_dav_svn.

mod_dav_svn,它是Subversion与Apache之间的接口(通过它,Apache就可以访问版本库,可以让客户端也使用HTTP的扩展协议 WebDAV/DeltaV进行访问)

编辑/etc/httpd/conf.d/subversion.conf,在最后添加如下信息:

<Location /project>

DAV svn

SVNPath /home/svn/project/

AuthType Basic

AuthName "svn for project"

AuthUserFile /home/svn/conf/webpasswd

AuthzSVNAccessFile /home/svn/conf/authz

Satisfy all

Require valid-user

</Location>

在/etc/httd/conf/httpd.conf文件中更改

 Listen 9999      #默认是80

 ServerNmae localhost:9999

3,启动HTTPD服务器

# service httpd restart

Stopping httpd:                                            [FAILED]

Starting httpd:                                            [  OK  ]

四、此过程遇到的问题及解决方案

1、通过svn从从客户端提交代码时出现

svn: Can't open file '/home/svn/project/db/txn-current-lock': Permission denied

最直接的办法是给它权限即用  sudo chmod 777 /home/svn/project 即可解决问题

2、svnserve -d -r /home/svn在启动hhtpd时出现:svnserve: 不能绑定服务器套接字: 地址已在使用

说明该进程正在使用可以用命令 ps -aux 查看进程

用命令kill -9 +进程标识号来强行终止进程即可解决

3.启动服务时报以下错误

正在启动 httpd:httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.152.128 for ServerName

请更改

# vi httpd.conf

      #ServerName www.example.com:80

       ServerName localhost:80       #端口号需要设置你更改的值,默认是80

4.浏览器用户登录后,报无权限

在/etc/http/conf/httpd.conf 文件中 Section 2: 'Main' server configuration部分中的 Alias部分添加以下

Alias /svn/ "/home/svn/"    #必须有最后的/

<Director "/home/svn">

Options Indexes MultiViews FollowSymLinks

AllowOverride all

Order allow,deny

Allow from all

</Directory>

重启服务即可

5.权限介绍记录


摘自网络

五、用浏览器访问http://192.168.X.X/project测试


TAG: http svn SVN

 

评分:0

我来说两句

Open Toolbar