前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux上配置SVN使用http访问

Linux上配置SVN使用http访问

作者头像
JaneYork
发布2023-10-11 14:32:21
4800
发布2023-10-11 14:32:21
举报
文章被收录于专栏:PUSDN平行宇宙软件开发者网

前提是已经搭建好svn服务器并且可以通过svn://ip/proname进行访问。

1查看Apache服务是否安装。

代码语言:javascript
复制
查看是否有httpd:
cd /etc/rc.d/init.d/
查看httpd版本:
httpd -v
使用rpm -qa | grep httpd查看是否已经安装了httpd
使用ps -ef | grep httpd查看httpd的进程
[root@instance-teosl6ad init.d]# httpd -v
-bash: httpd: command not found
[root@instance-teosl6ad init.d]# service httpd status
httpd: unrecognized service

2. 安装Apache服务。

代码语言:javascript
复制
yum install httpd 
设置开机启动
chkcofing httpd on  (centos7以上系统用:systemctl enable httpd.service)
启动Apache
service httpd start (centos7以上系统用:systemctl start httpd.service)
结束:service httpd stop
查看Apache版本
httpd -version  或  httpd -v

启动报错:

代码语言:javascript
复制
更改配置文件按:
vi /etc/httpd/conf/httpd.conf 
找到ServerName,添加
ServerName localhost:80

注意可能端口占用:

代码语言:javascript
复制
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
                                                           [FAILED]
[root@instance-teosl6ad init.d]# 

 3.安装svn模块。

代码语言:javascript
复制
查看httpd是否已经安装的svn模块:
ls /etc/httpd/modules/ | grep svn
安装svn模块:
yum install mod_dav_svn
然后查看/etc/httpd/modules/ 目录下是否有对应svn模块
cd /etc/httpd/modules/
ls /etc/httpd/modules/ | grep svn

4.创建账号密码认证。

代码语言:javascript
复制
htpasswd -cbm /data/svn/repo/conf/http_passwd test01 test01
htpasswd -bm /data/svn/repo/conf/http_passwd test02 test02
htpasswd -bm /data/svn/repo/conf/http_passwd test03 test03

​-c:创建一个加密文件;
-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;
-m:默认采用MD5算法对密码进行加密;
-d:采用CRYPT算法对密码进行加密;
-p:不对密码进行进行加密,即明文密码;
-s:采用SHA算法对密码进行加密;
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
​-D:删除指定的用户。

 5.设置svn关联的配置文件。

代码语言:javascript
复制
vi /etc/httpd/conf.d/subversion.conf
内容如下:
LoadModule dav_svn_module modules/mod_dav_svn.so ###(这行文件已有)
LoadModule authz_svn_module modules/mod_authz_svn.so ###(这行文件已有)
<Location /svn>
    DAV svn
    SVNParentPath /data/svn #当有多个仓库时需要用SVNParentPath这项配置。
    # SVNPath /data/svn/repo
    AuthType Basic
    AuthName "Authorization SVN"
    AuthzSVNAccessFile /data/svn/repo/conf/authz
    AuthUserFile /data/svn/repo/conf/http_passwd
    Require valid-user
</Location>


<Location /svn>中的"/svn"表示我们的svn的访问URL为"http://ip/svn"  
DAV svn表示使用"mod_dav_svn"模块 dav是一种http 1.1扩展协议 mod_dav_svn只是该协议的一种应用  
SVNParentPath /var/svn表示服务"http://ip/svn"请求时 使用"/data/svn"路径下相应的内容  
AuthName 表示输入用户名和密码时的提示信息  
AuthType 认证类型 这里我们使用基本的认证类型  
AuthUserFile 表示认证文件的位置 我们待会创建它  
LimitExcept 节点指示只对写请求需要用户认证  

<Location /svn>中的"/svn"表示我们的svn的访问URL为"http://ip/svn"   DAV svn表示使用"mod_dav_svn"模块 dav是一种http 1.1扩展协议 mod_dav_svn只是该协议的一种应用   SVNParentPath /var/svn表示服务"http://ip/svn"请求时 使用"/data/svn"路径下相应的内容  

6.赋予权限,启动。

代码语言:javascript
复制
chown -R apache:apache /data/svn/repo/

-R 会将我们新建仓库文件夹及其子目录下的所有文件递归的更改用户组
apache:apache表示我们要将文件夹及其子目录下的所有文件修改组拥有着为apache,用户为apache
url 修改的文件夹路径

启动:

代码语言:javascript
复制
centOS6:
service httpd restart

centOS7+:
systemctl start httpd   # 启动
systemctl status httpd  # 查看状态
systemctl stop httpd    # 停止
systemctl enable httpd  # 开机自启动

Apache错误日志监控:

tail -f /var/log/httpd/error_log

7.测试。

http://106.13.45.179:7777/svn/repo/

原:svn://106.13.45.179:3690/repo

用户名:test01  密码:test01

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档