安装http 服务

yum install -y httpd

检查http是否安装

httpd -version

安装httpd支持SVN的模块 mod_dav_svn

yum install mod_dav_svn -y

安装成功后,会有mod_dav_svn.so和mod_authz_svn.so两个文件。find / -name mod_dav_svn.so

/usr/lib64/httpd/modules/mod_dav_svn.so

find / -name mod_authz_svn.so

/usr/lib64/httpd/modules/mod_authz_svn.so

安装httpd 验证模块 mod_auth_basic

yum install mod_auth_basic -y

安装httpd支持openLDAP 的模块

yum install mod_auth_ldap -y

安装SVM服务第一步:通过yum命令安装svnserve,命令如下:

yum -y install subversion

第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)

mkdir /svnrepos

第三步:创建svn版本库

在第二步建立的路径基础上,创建版本库

svnadmin create /svnrepos/dev (dev为你预期的版本库名称,可自定义)

第四步:配置修改

进入已经创建好的版本库目录下,也就是前文说创建的xxxx

进入confcd /svnrepos/dev/conf

conf db format hooks locks README.txt

conf目录下,一共存放三份重要的配置文件,如下:ls

authz passwd svnserve.conf

authz:负责账号权限的管理,控制账号是否读写权限

passwd:负责账号和密码的用户名单管理

svnserve.conf:svn服务器配置文件

http+svn 的配置

如果不使用ldap认证,而使用密码文件认证则配置文件可以改为:

DAV svn

SVNPath /svnrepos/dev

AuthType Basic

AuthName "SVN Authorization Realm"

#使用htpasswd产生的密码文件

AuthUserFile /svnrepos/dev/conf/passwd

#目录分组权限

AuthzSVNAccessFile /svnrepos/dev/conf/authz

#允许匿名读取

Satisfy Any

Require valid-user

ldap+svn 的配置

DAV svn

#svn 路径,如果有多个子项目使用 SVNParentPath

SVNPath /svnrepos/dev

SVNListParentPath On

#svn目录分组权限

AuthzSVNAccessFile /svnrepos/dev/conf/authz

AuthBasicProvider ldap

AuthType Basic

AuthName "Subversion repository"

#搭建的openldap url地址

AuthLDAPURL "ldap://192.168.85.129:389/dc=dev,dc=com?uid?sub?(objectClass=*)"

# 配置 openldap的cn、dc

AuthLDAPBindDN "cn=admin,dc=dev,dc=com"

# 配置openldap的管理员密码

AuthLDAPBindPassword "abc123"

Require valid-user

其他1、svn服务器有2种运行方式:独立服务器 和 借助apache。2种方式各有利弊。这里是以apache整合的;

独立服务的方式为svnserve -d -r /data1/svnroot 方式启动进程,监听端口为3690 。

2、svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。默认使用的存储方式也是FSFS方式。vim /etc/httpd/conf/svnauthz.conf

[groups]

admin=robin,svnadmin,ybk

[/]

@admin = rw

[test:/]

ybk= rw

zzy = rw注:

1、上面的test对应的是svnadmin下create的目录。

2、@admin对应的是管理员组,可以再建其他组,如:java_team 、oam、market等。robin、svnadmin、ybk、zzy这些都是用户名 。如果要和ldap进行整合的话,确保这些用户在ldap中存在。

3、使用if-svnadmin 这类web程序做svn的用户权限管理时,需要确保svnauthz.conf文件对apache用户可写,不然在if-svnadmin修改时不生效。

4、确保/data1/svnroot目录apache用户可读写或直接属主改过apache,不然在使用TortoiseSVN等程序上传或删除时会提示权限拒绝。

权限配置总结用户组格式:

[groups]

用户组名 = 用户1,用户2

其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

版本库目录格式:

[版本库:/项目目录]

@用户组名 = 权限

用户名 = 权限

其中,方框号内部分可以有多种写法:

/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/home/svnroot/repository。这样,/就是表示对全部版本库设置权限。

test:/,表示对版本库test设置权限

权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。

SVN其相关组件及用途如下:svn

命令行客户端程序。svnversion

此工具用来显示工作拷贝的状态(用术语来说,就是当前项目的修订版本)。svnlook

直接查看Subversion版本库的工具。svnadmin

建立、调整和修复Subversion版本库的工具。svndumpfilter

过滤Subversion版本库转储数据流的工具。mod_dav_svn

ApacheHTTP服务器的一个插件,使版本库可以通过网络访问。svnserve

一个单独运行的服务器程序,可以作为守护进程或由SSH调用。这是另一种使版本库可以通过网络访问的方式。svnsync

一个通过网络增量镜像版本库的程序

apache和svnserver两种方式的访问方法http://192.168.1.222/repos,采用了Apache作为服务器的话就可以以这种形式访问,权限由Apache设置。

svn://192.168.1.222/repos,采用了svnserve作为服务器的话那么就可以采用这种形式访问,它是一种基于TCP/IP的访问方式。权限由仓库的配置文件设置。