CentOS6.5安装配置SVN+Apache

RT, 软件采用yum方式安装。

一、软件安装

1. 安装SVN、Apache及其他相关

yum install httpd mod_dav_svn subversion mod_ssl

2. 测试安装是否成功

这里写图片描述
出现截图所示内容表示安装成功,下面开始配置

二、配置SVN

1.创建svn服务器根文件夹

#mkdir /home/svn

那么以后我的每个项目,如果需要提交到svn服务器上,我都应该放到这个路径下面去了
2.创建一个版本库

#svnadmin create /home/svn/kbzc

3.配置配置权限、用户等
新建用户文件:(用vi编辑器就可以)

# vi /home/svn/svn_passwd
[users]  
usera=666666  
userb=666666

接下来需要配置用户的读写权限,同样的,单独新建一个文件,来管理所有的项目

# vi /home/svn/svn_authz
文件的内容一般有这样几个部分:
[aliases]
[groups]       #svn的用户组
admins = usera #admins用户组下目前只有hujie一个用户,多个用英文逗号隔开
[kbzc:/]       #kbzc版本库的根目录
@admins =  rw  #用户组前面需要加上@符号,rw表示读、写权限
* =            #其他一切用户连读都不让读

启用自定义配置:

vi /home/svn/kbzc/conf/svnserve.conf

启用[general]的几行

[general]
anon-access = none                  
auth-access = write
password-db = /home/svn/svn_passwd #这就是我建立的统一用户文件
authz-db = /home/svn/svn_authz #我建立的统一的权限文件

现在启动svn服务,就可以用svn://的方式访问了,建议是直接用下面的方式去启动

#svnserve -d -r /home/svn

然后测试一下:

#svn co svn://localhost/kbzc

会提示你输入用户名,密码,登录进去就可以看到有关路径和文件信息了。
停止SVN服务器:

killall svnserve

三、Apache+SVN整合

1、新增一个httpd的用户(不是svn用户,他们对用户验证是独立的)

#htpasswd -c /home/svn/svn_http_passwd zhangdc

根据提示,输入密码即可
给httpd添加用户,必须是htpasswd命令,第一次添加需要新建文件,带上 -c参数,以后就不需要了

2、编辑Apache的Subversion配置文件

vi /etc/httpd/conf.d/subversion.conf

添加如下信息

<Location  /svn>
DAV  svn
#SVNPath /home/svn/kbzc #如果你只有一个版本库可以用它
SVNParentPath /home/svn/ #多个版本库用它,配合SVNListParentPath
SVNListParentPath on #多个版本库的时候可以用他,配合SVNParentPath
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /home/svn/svn_http_passwd #不可与svn的用户公用一个文件
AuthzSVNAccessFile /home/svn/svn_authz #这个可以与之前的那个权限文件公用
Require valid-user #需要验证用户
</Location>

上述需要注意的是:/home/svn/svn_http_passwd不应该与svn共同使用一个用户文件,原因是httpd与svn用户都是单独的,前者会对用户文件中的密码进行加密,后者则不会加密,我之前用的就是公用的,然后导致用svn://访问,密码始终都是错误的

3、设置资源库文件所属账户

chown -R apache.apache /home/svn

重启Apache:

service httpd restart

现在就可以在浏览器尝试访问了:
http://svn_machine_ip/project
按提示输入用户名密码。
访问不了?页面提示:“
This server could not verify that you are authorized to access the document requested.”
查看下apache日志:
tail -100f /etc/httpd/logs/error_log

[Sat Oct 15 06:54:06 2016] [error] [client 192.168.22.1] (13)Permission denied: Could not open password file: /home/svn/passwd
[Sat Oct 15 06:54:06 2016] [error] [client 192.168.22.1] access to /svn failed, reason: verification of user id 'zdc' not configured
[Sat Oct 15 06:54:13 2016] [error] [client 192.168.22.1] (13)Permission denied: Could not open password file: /home/svn/passwd
[Sat Oct 15 06:54:13 2016] [error] [client 192.168.22.1] access to /svn failed, reason: verification of user id 'zdc' not configured
[Sat Oct 15 06:54:16 2016] [error] [client 192.168.22.1] (13)Permission denied: Could not open password file: /home/svn/passwd
[Sat Oct 15 06:54:16 2016] [error] [client 192.168.22.1] access to /svn failed, reason: verification of user id 'zdc' not configured
[Sat Oct 15 06:58:59 2016] [error] [client 192.168.22.1] (13)Permission denied: Could not open password file: /home/svn/passwd
[Sat Oct 15 06:58:59 2016] [error] [client 192.168.22.1] access to /svn failed, reason: verification of user id 'zdc' not configured
[Sat Oct 15 06:59:05 2016] [error] [client 192.168.22.1] (13)Permission denied: Could not open password file: /home/svn/passwd
[Sat Oct 15 06:59:05 2016] [error] [client 192.168.22.1] access to /svn failed, reason: verification of user id 'zhangdc' not configured
[Sat Oct 15 07:00:49 2016] [error] [client 192.168.22.1] (13)Permission denied: Could not open password file: /home/svn/passwd
[Sat Oct 15 07:00:49 2016] [error] [client 192.168.22.1] access to /svn failed, reason: verification of user id 'zhangdc' not configured

对于这个问题有人说关掉SElinux,个人没试过,不过肯定不好,影响主机安全性。
执行如下命令即可:

chcon -R -h -t httpd_sys_content_t /home/svn

四、配置Https方式访问版本仓库

需要用到OpenSSL工具。

1.生成需要的证书、密钥

上面是以http方式访问的,安全性低,下面设置强制https访问svn:

2.配置Apache的Subversion强制使用Https

生成私钥

cd /etc/httpd/conf
openssl genrsa -out httpd.key 1024

用前面的私钥生成证书

openssl req -new -key httpd.key -out httpd.pem -days 3650 -x509 

修改Apache的SSL配置文件

# vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/httpd/conf/httpd.pem
SSLCertificateKeyFile /etc/httpd/conf/httpd.key

配置subversion强制使用https访问

# vim /etc/httpd/conf/httpd.conf

启用SSLRequireSSL配置(去掉前面的注释符)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值