linux环境下实现svn服务器支持http协议

Linux piniu 1025浏览 0评论

我是在 centOS 7 系统下部署的svn服务器,现在要配置svn以支持客户端通过http访问,操作步骤如下:

1.安装Apache

# yum install httpd

# chkcofing httpd on   //设置开机启动

# service httpd start  //启动Apache

如果启动Apache时提示错误:
httpd:httpd: Could not reliably determine the server’s fully qualif domain name, using ::1 for ServerName

解决办法:
vi /etc/httpd/conf/httpd.conf #编辑
ServerName www.example.com:80 #去掉前面的注释
:wq! #保存退出

2.安装Apache支持服务

# yum install mod_dav_svn mod_auth_mysql

查看是否安装成功
cd /etc/httpd/modules/
如果有mod_dav_svn.so 和 mod_authz_svn.so模块,如果有,则说明mod_dav_svn安装成功

3.配置http协议认证文件

# htpasswd -c /var/svn/svntest/http_passwd username

根据提示输入两次密码即可。
因为http协议和svn协议使用的认证文件编码格式不同,所以不能共用一套认证文件。

注意:/var/svn/svntest是我的数据仓库目录,http_passwd是我创建的认证文件名称。username是我创建的第一个用户,因为是第一个用户,所以需要加-c,以后创建账户不需要加-c命令。

4.设置Apache配置与文件

# vi /etc/httpd/conf.d/subversion.conf
# 调整为如下设置
<Location /svn> 
DAV svn 
#SVNPath /home/svn 
SVNParentPath /var/svn 
# # Limit write permission to list of valid users. 
# <LimitExcept GET PROPFIND OPTIONS REPORT> 
# # Require SSL connection for password protection. 
# # SSLRequireSSL 
# 
AuthType Basic 
AuthName "Authorization SVN" 
AuthzSVNAccessFile /var/svn/svntest/conf/authz 
AuthUserFile /var/svn/svntest/conf/svn_http_passwd 
Require valid-user 
# </LimitExcept> 
</Location>

说明:DAV为svn支持文件,
svnpath为svn版本库目录,只有一个版本库时使用svnpath,
如果有多个版本时使用svnparentpath和svnlistparentpath配合使用;
AuthaSVNAccessFile为权限文件目录,跟svn协议共同使用一个权限文件即可;
AuthUserFile为用户认证文件,填入第3步配置的认证文件目录;Require为用户是否需要验证。

5.为Apache设置目录权限

chown apache:apache /var/svn/svntest -R

6.测试

Windows下使用http协议在浏览器访问服务器
http://192.168.0.100/svn/svntest

地址拼接:http://+ip+端口号+Apache配置文件中Location节点名称+数据仓库


发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • * 昵称:
  • * 邮箱: