linux环境下实现svn服务器支持http协议
2015-12-30 21:12
465 查看
经过两天的努力,svn终于支持http协议来访问了,在此做个总结,收集一下过程中的错误,作为后来人的前车之鉴。
一 前提:
现有的svn已经支持svn协议,并且版本库、账户和权限已设置好。这些步骤就不说了,详情请查看小编另一篇播客()效果如下图:
二 服务器环境:
1 centOS 7
2 可上网
三 操作步骤:
1 安装Apache
yum install httpd
设置开机启动
chkcofing httpd on
启动Apache
service httpd start
查看Apache版本
httpd -version
![](http://img.blog.csdn.net/20151230210121586?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
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安装成功
![](http://img.blog.csdn.net/20151230210143158?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
如果启动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! #保存退出
3 配置http协议认证文件
htpasswd -c /var/svn/svntest/http_passwd username
根据提示输入两次密码即可。
因为http协议和svn协议使用的认证文件编码格式不同,所以不能共用一套认证文件。
注意:/var/svn/svntest是我的数据仓库目录,http_passwd是我创建的认证文件名称。username是我创建的第一 个用户,因为是第一个用户,所以需要加-c,以后创建账户不需要加-c命令。
vi /etc/httpd/conf/httpd.conf #编辑
ServerName www.example.com:80 #去掉前面的注释
:wq! #保存退出
4 设置Apache配置与文件
vi /etc/httpd/conf.d/subversion.conf
![](http://img.blog.csdn.net/20151230210244621?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
说明:D***为svn支持文件,svnpath为svn版本库目录,只有一个版本库时使用svnpath,如果有多个版本时使用 svnparentpath和svnlistparentpath配合使用;AuthaSVNAccessFile为权限文件目录,跟svn协议共同使用一个 权限文件即可;AuthUserFile为用户认证文件,填入第3步配置的认证文件目录;Require为用户是否需要验证。
5 为Apache设置目录权限
chown apache:apache /var/svn/svntest -R
为Apache设置数据仓库的所有者权限
重启Apache服务
service httpd restart
![](http://img.blog.csdn.net/20151230210308123?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
6 测试
Windows下使用svn协议访问svn服务器
![](http://img.blog.csdn.net/20151230210333968?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
Windows下使用http协议在浏览器访问服务器
http://192.168.22.230:80\svn\svntest
地址拼接:http://+ip+端口号+Apache配置文件中Location节点名称+数据仓库
![](http://img.blog.csdn.net/20151230210400790?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
Windows下使用http协议在svn客户端访问服务器
![](http://img.blog.csdn.net/20151230211449955?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
四 总结
支持http协议以后,就可以在公网访问svn服务器,只要有网,我们就可以随时随地访问服务器,实现即时办公
一 前提:
现有的svn已经支持svn协议,并且版本库、账户和权限已设置好。这些步骤就不说了,详情请查看小编另一篇播客()效果如下图:
二 服务器环境:
1 centOS 7
2 可上网
三 操作步骤:
1 安装Apache
yum install httpd
设置开机启动
chkcofing httpd on
启动Apache
service httpd start
查看Apache版本
httpd -version
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安装成功
如果启动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! #保存退出
3 配置http协议认证文件
htpasswd -c /var/svn/svntest/http_passwd username
根据提示输入两次密码即可。
因为http协议和svn协议使用的认证文件编码格式不同,所以不能共用一套认证文件。
注意:/var/svn/svntest是我的数据仓库目录,http_passwd是我创建的认证文件名称。username是我创建的第一 个用户,因为是第一个用户,所以需要加-c,以后创建账户不需要加-c命令。
vi /etc/httpd/conf/httpd.conf #编辑
ServerName www.example.com:80 #去掉前面的注释
:wq! #保存退出
4 设置Apache配置与文件
vi /etc/httpd/conf.d/subversion.conf
<Location /svn> D*** 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>
说明:D***为svn支持文件,svnpath为svn版本库目录,只有一个版本库时使用svnpath,如果有多个版本时使用 svnparentpath和svnlistparentpath配合使用;AuthaSVNAccessFile为权限文件目录,跟svn协议共同使用一个 权限文件即可;AuthUserFile为用户认证文件,填入第3步配置的认证文件目录;Require为用户是否需要验证。
5 为Apache设置目录权限
chown apache:apache /var/svn/svntest -R
为Apache设置数据仓库的所有者权限
重启Apache服务
service httpd restart
6 测试
Windows下使用svn协议访问svn服务器
Windows下使用http协议在浏览器访问服务器
http://192.168.22.230:80\svn\svntest
地址拼接:http://+ip+端口号+Apache配置文件中Location节点名称+数据仓库
Windows下使用http协议在svn客户端访问服务器
四 总结
支持http协议以后,就可以在公网访问svn服务器,只要有网,我们就可以随时随地访问服务器,实现即时办公
相关文章推荐
- 【网络协议】数据链路层
- linux虚拟机与win主机之间ping通以及其他网络设置
- hdu3416 Marriage Match IV(最短路+网络流)
- Asp.Net WebAPI 通过HttpContextBase获取请求参数
- Android 各大网络http请求库的比较及实战
- OS安全系列之一:HTTPS2
- HTTP协议总结
- Ubuntu网络频繁掉线解决方案
- 《UNIX网络编程》UDP网络编程基础
- Qt Tcp传输
- Fiddler Web Debugger 模拟http请求
- Linux 下基于socket的简单网络聊天室
- 全站 HTTPS 来了
- 从简单到复杂实现TCP客户端服务器通信
- python httplib [Errno 104] Connection reset by peer问题
- java内部发送http请求并取得返回结果,修改response的cookie
- DefaultHttpClient is deprecated
- linux网络编程常用头文件
- GET和POST是HTTP的两个常用方法
- 记一次计算机网络工程实验(2) 配置交换机