Erlo

linuxCentOS6.8搭建Apache,用http访问svn

2019-06-13 16:00:19 发布   575 浏览  
页面报错/反馈
收藏 点赞

前提: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无法监听端口解决方案

参考链接:https://www.cnblogs.com/taomylife/p/8026886.html

如果你能使用semanage命令,则不需要安装下一步

yum -y install policycoreutils-python

查看http的端口:semanage port -l|grep http

添加端口:semanage port -a -t http_port_t -p tcp 8001

再启动,将会看到启动成功

 

7.浏览器或者客户端都可以用http协议访问(注:如果访问不了,请看看防火墙是否添加了该端口号)

http://ip:8001/svn/

 

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认