前提:SVN已经安装配置ok,能够正常访问
目前本人svn用小乌龟客户端svn协议访问地址为:svn://ip:3691/opt/svn/repository,端口后面的是svn仓库的路径
那么若是从svn协议走向http协议的访问呢,请跟我走。
1.检查是否安装
httpd:rpm -qa|grep http
若是有显示httpd的相关信息,则已安装,以下本人安装的信息,此时可略过第2步骤,不然进行第2步骤操做。
也能够选择卸载重装:
yum remove httpd
2.安装服务
yum install httpd
3.修改apache端口
vi /etc/httpd/conf/httpd.conf,大概在文件的136行的位置,也能够搜索一下Listen关键字快速查找。
因为http服务有默认端口好比80,8001,建议读者修改端口,由于颇有可能被其余服务占用,好比gitlab,在此我保留了默认端口8001。
4.修改/etc/httpd/conf.d下的subversion.conf文件,在末尾处添加以下代码
<Location /svn>
#此处/svn是代理的路径,这样配置后就不须要像svn协议同样,访问仓库路径,直接http://ip:port/svn就能够访问到SavePath存储的仓库了!
DAV svn
SVNPath /opt/svn/repository
#指向仓库路径,此处有坑,看清楚是SVNPath 并非SVNParentPath,笔者因为是copy的配置文件代码修改,就落坑了注意
AuthType Basic
AuthName "SVN Repository"
AuthUserFile /opt/svn/repository/conf/webpasswd
#请看5步骤讲解
AuthzSVNAccessFile /opt/svn/repository/conf/authz
#对应权限控制文件绝对路径
Require valid-user
</Location>
5.AuthUserFile 配置释义(本来对应svn账号密码passwd文件)
因为svn默认是明文密码,而http并不支持明密码 因此这里须要单独生成passwd文件 此处命名为webpasswd,
当用svn协议访问的时候是以passwd文件为主,当用http协议访问的时候是以webpasswd为主。具体操做以下:
进入到仓库的conf配置目录,在此笔者
cd /opt/svn/repository/conf
htpasswd -mc webpasswd admin
#执行这句话输入两次密码(此密码会被加密),admin为用户名,conf下就会多出一个webpasswd 文件;
-c:建立一个加密文件;
-m:默认采用MD5算法对密码进行加密;
-d:采用CRYPT算法对密码进行加密;
-p:不对密码进行进行加密,即明文密码;
-s:采用SHA算法对密码进行加密;
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
-D:删除指定的用户
vi webpasswd #将会看到admin用户和加密密码,下面是笔者的webpasswd文件内容
须要注意:第二次添加新用户,只须要htpasswd webpasswd 用户名就能够了,不须要再用 -mc,不然会覆盖原来的webpasswd文件,
致使原先建立的用户密码丢失
6.到此,apache配置完成,启动http,以下两种方式,笔者更倾向于第一种
service httpd restart
或者
/etc/init.d/httpd restart
若是在启动的时候遇到以下问题的
1> ServerName致使
httpd: Could not reliably determine the server's fully qualified domain name
2> 或者无权限启动监听端口
针对1>的解决方案,修改httpd.conf文件,找到serverName,修改以下
针对2>apache没法监听端口解决方案
若是你能使用semanage命令,则不须要安装下一步
yum -y install policycoreutils-python
查看http的端口:
semanage port -l|grep http
添加端口:
semanage port -a -t http_port_t -p tcp 8001
再启动,将会看到启动成功
7.浏览器或者客户端均可以用http协议访问(注:若是访问不了,请看看防火墙是否添加了该端口号)