CentOS 7 搭建支持 HTTP 协议的 SVN 服务器
时间:2015-06-21 17:40 来源:linux.it.net.cn 作者:IT
前提条件:
请先关闭防火墙或者selinux,当然你也可以进行相应的配置,让某些端口通过
我比较暴力,采用关闭处理
systemctl disable firewalld
systemctl stop firewalld
disable是让其不下次开机启动,stop是结束它。
对于selinux
改/etc/selinux/config文件的”SELINUX=enforcing”为”SELINUX=disabled”
然后执行”setenforce 0″不用重启地关闭selinux
一、安装相应的软件
#svn服务器
yum install subversion
#apache服务器,让我们的svn 服务器支持http协议访问,而不仅是svn://协议
yum install httpd
#apache操作svn模块
yum install mod_dav_svn
二、相应的配置
1、创建仓库
默认安装的svn服务器的根仓库(root repository)为/var/svn,所以我们在这个目录创建我们的仓库
svnadmin create repo1
将创建/var/svn/repo1 目录,在repo1目录下有相应的配置文件
2、仓库配置
/var/svn/repo1/conf下的三个配置文件的作用为
svnserve.conf :存放svn服务器的认证授权策略:比如匿名可读,认证的用户可写,以及指定相应的用户信息存储位置(passwd)和认证规则文件的位置(authz)
passwd:用户信息存储文件,以username=password键值对的方式存储
authz:认证规则
注意 键值对的等号(=)前后的空格
对于svnserve.conf,取消以下行的注释即可
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
对于passwd,添加一个用户
root = 123456
对于authz,添加如下信息:
[repo1:/]
root = rw
* = r
表示root具有读写权限,’*’任何人都能读,如果没有这个配置,那么查看log会报异常。
3、测试
启动服务器:
systemctl start svnserve.service
使用tortoiseSVN, svn://ip/repo1 ,如果能正常访问,那么配置OK,
三、Http访问方式的配置
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
在该文件的结尾处添加如下配置
<Location /svn>
DAV svn
SVNParentPath /var/svn
# 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 /svn>”中的”/svn”表示我们的svn的访问URL为”http://ip/svn”,
“DAV svn”表示使用”mod_dav_svn”模块,dav是一种http 1.1扩展协议,mod_dav_svn只是该协议的一种应用。
“SVNParentPath /var/svn”表示服务”http://ip/svn”请求时,使用”/var/svn”路径下相应的内容。
AuthName 表示输入用户名和密码时的提示信息
AuthType 认证类型,这里我们使用基本的认证类型
AuthUserFile 表示认证文件的位置,我们待会创建它。
LimitExcept节点指示只对写请求需要用户认证。
3、创建svn-auth.htpasswd 文件
htpasswd -c -m /etc/httpd/svn-auth.htpasswd root
按提示输入两次密码,我们就创建了一个’root’,
4、让apache用户对”/var/svn/repo1″目录拥有写权限。
httpd以apache用户启动的,所以我们要让其拥有对”/var/svn/repo1″的写权限。由于我的环境的”/var/svn/repo1″的拥有者是”root:root”,所以我将apache加入到root组中,让回让root组也拥有权限来解决的。
#将用户apache加入root组
usermod -a -G root apache
#让group对/var/svn/repo1目录也有写权限
chmod -R g+w /var/svn/repo1
#查看apache用户属于的组
groups apache
5、测试
systemctl start httpd.service
现在就可以通过”http://ip/repo1″来访问我们的svn 服务器了
提示:
httpd 的错误日志文件为/var/log/httpd/error_log,如果出现问题,随时查看该文件获得提示。
参考文献:
http://svnbook.red-bean.com/en/1.7/svn.serverconfig.httpd.html
(责任编辑:IT)
前提条件:请先关闭防火墙或者selinux,当然你也可以进行相应的配置,让某些端口通过 我比较暴力,采用关闭处理 systemctl disable firewalld systemctl stop firewalld disable是让其不下次开机启动,stop是结束它。 对于selinux 改/etc/selinux/config文件的”SELINUX=enforcing”为”SELINUX=disabled” 然后执行”setenforce 0″不用重启地关闭selinux 一、安装相应的软件#svn服务器 yum install subversion #apache服务器,让我们的svn 服务器支持http协议访问,而不仅是svn://协议 yum install httpd #apache操作svn模块 yum install mod_dav_svn 二、相应的配置1、创建仓库 默认安装的svn服务器的根仓库(root repository)为/var/svn,所以我们在这个目录创建我们的仓库 svnadmin create repo1 将创建/var/svn/repo1 目录,在repo1目录下有相应的配置文件 2、仓库配置 /var/svn/repo1/conf下的三个配置文件的作用为 svnserve.conf :存放svn服务器的认证授权策略:比如匿名可读,认证的用户可写,以及指定相应的用户信息存储位置(passwd)和认证规则文件的位置(authz) passwd:用户信息存储文件,以username=password键值对的方式存储 authz:认证规则 注意 键值对的等号(=)前后的空格 对于svnserve.conf,取消以下行的注释即可 anon-access = read auth-access = write password-db = passwd authz-db = authz 对于passwd,添加一个用户 root = 123456 对于authz,添加如下信息: [repo1:/] root = rw * = r 表示root具有读写权限,’*’任何人都能读,如果没有这个配置,那么查看log会报异常。 3、测试 启动服务器: systemctl start svnserve.service 使用tortoiseSVN, svn://ip/repo1 ,如果能正常访问,那么配置OK, 三、Http访问方式的配置httpd的默认的配置文件为/etc/httpd/conf/httpd.conf 1、先备份一下,防止改错: cp httpd.conf httpd.conf.bak
2、修改
找到文件的’LoadModule’ LoadModule dav_module modules/mod_dav.so LoadModule dav_svn_module modules/mod_dav_svn.so 在该文件的结尾处添加如下配置 <Location /svn> DAV svn SVNParentPath /var/svn # 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 /svn>”中的”/svn”表示我们的svn的访问URL为”http://ip/svn”, “DAV svn”表示使用”mod_dav_svn”模块,dav是一种http 1.1扩展协议,mod_dav_svn只是该协议的一种应用。 “SVNParentPath /var/svn”表示服务”http://ip/svn”请求时,使用”/var/svn”路径下相应的内容。 AuthName 表示输入用户名和密码时的提示信息 AuthType 认证类型,这里我们使用基本的认证类型 AuthUserFile 表示认证文件的位置,我们待会创建它。 LimitExcept节点指示只对写请求需要用户认证。 3、创建svn-auth.htpasswd 文件 htpasswd -c -m /etc/httpd/svn-auth.htpasswd root 按提示输入两次密码,我们就创建了一个’root’, 4、让apache用户对”/var/svn/repo1″目录拥有写权限。 httpd以apache用户启动的,所以我们要让其拥有对”/var/svn/repo1″的写权限。由于我的环境的”/var/svn/repo1″的拥有者是”root:root”,所以我将apache加入到root组中,让回让root组也拥有权限来解决的。 #将用户apache加入root组 usermod -a -G root apache #让group对/var/svn/repo1目录也有写权限 chmod -R g+w /var/svn/repo1 #查看apache用户属于的组 groups apache 5、测试 systemctl start httpd.service 现在就可以通过”http://ip/repo1″来访问我们的svn 服务器了 提示: httpd 的错误日志文件为/var/log/httpd/error_log,如果出现问题,随时查看该文件获得提示。 参考文献:http://svnbook.red-bean.com/en/1.7/svn.serverconfig.httpd.html (责任编辑:IT) |