SVN服务器的搭建
1、安装SVN服务器
# yum install mod_dav_svn subversion
2、查看SVN服务器是否安装成功
# ls /etc/httpd/modules/ | grep svn
mod_authz_svn.so
mod_dav_svn.so
# svn --version(查看SVN版本信息)
svn, version 1.7.14 (r1542130)
...
3、创建SVN资源库目录
# mkdir -p /svn_repos
4、创建SVN资源库项目
# mkdir -p /svn_repos/project_1
# svnadmin create /svn_repos/project_1
在/svn_repos/project_1目录下会生成以下配置文件
[root@localhost project_1]# ls
conf db format hooks locks README.txt
conf
|-authz文件是权限控制文件
|-passwd是帐号密码文件
|-svnserve.conf SVN服务配置文件
5、修改配置文件
# vim /svn_repos/project_1/conf/svnserve.conf 进行如下配置
[general]
# 非鉴权用户没有权限
anon-access = none
# 鉴权用户有写权限
auth-access = write
# 指定用户名口令文件名
password-db = passwd
# 指定权限配置文件名
authz-db = authz
# vim /svn_repos/project_1/conf/passwd 进行如下配置
passwd:
[users]
# 配置了一个用户 用户名为admin密码为admin
admin=admin
# vim /svn_repos/project_1/conf/authz 进行如下配置
authz:
[groups]
[/]
# 为admin用户配置读写权限
admin = rw
6、启动SVNServer服务
# svnserver -d -r /svn_repos
使用svn co svn://localhost/projetc_1,测试是否正常
7、创建http服务访问svn服务器
安装httpd
# yum install httpd httpd-devel
# service httpd start
# chkconfig httpd on
# vi /etc/httpd/conf/httpd.conf
找到 ServerName 并修改成 ServerName localhost:80
禁用firewalld和selinux,否则会出现http访问错误
<D:error>
<C:error/>
<m:human-readable errcode="13">Could not open the requested SVN filesystem</m:human-readable>
</D:error>
修改httpd配置文件
httpd的默认的配置文件为/etc/httpd/conf/httpd.conf
1.先备份一下,防止改错
cp httpd.conf httpd.conf.bak
2.修改
找到文件的'LoadModule'
在该附近加载mod_dav和mod_dav_svn模块的配置:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
3.在 /etc/httpd/conf.d下创建project1_svn.conf配置文件加入以下内容
<Location /project_1>
DAV svn
SVNParentPath /svn_repos/project_1
# Authentication: Basic
AuthName "Subversion repository"
AuthType Basic
AuthUserFile /etc/httpd/svn-auth.htpasswd
# Authorization: Authenticated users only
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
<Location /projetc_1>中的"/project_1"表示我们的svn的访问URL为"http://ip/project_1"
DAV svn表示使用"mod_dav_svn"模块 dav是一种http 1.1扩展协议 mod_dav_svn只是该协议的一种应用
SVNParentPath /svn_repos/project_1表示服务"http://ip/project_1"请求时 使用"/svn_repos/project_1"路径下相应的内容
<以下内容可以不加>
AuthName 表示输入用户名和密码时的提示信息
AuthType 认证类型 这里我们使用基本的认证类型
AuthUserFile 表示认证文件的位置 我们待会创建它
LimitExcept 节点指示只对写请求需要用户认证
4.创建svn-auth.htpasswd 文件
htpasswd -c -m /etc/httpd/svn-auth.htpasswd root
按提示输入两次密码,我们就创建了一个'root'
重启Apache访问Http服务
# service httpd restart
现在就可以通过”http://ip/project_1“ 来访问我们的svn服务器project_1项目库了
如果想创建多个项目,可以根据上面步骤新建一个