linux下svn配置http访问「建议收藏」

linux下svn配置http访问「建议收藏」CentOS服务器部署svn+apachehttp+sslhttps访问,本文详细介绍了svn配置apachehttp访问安装及配置过程。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、其他链接

linux服务器搭建svn+apache+ssl部署环境:
1、linux下svn安装与使用参考链接:linux服务器svn安装与版本控制.
2、linu下svn配置https访问服务参考链接: linux 服务器部署svn https访问.
3、linux svn设置开机自启动参考链接: linux svn设置开机自启动.
4、Linux下设置apache httpd服务为自动启动参考链接: Linux下设置apache httpd服务为自动启动.
5、 linux下svn命令使用大全参考链接: linux下svn命令使用大全.

二、安装配置HTTP访问

  在实际的项目开发中,大家经常使用的还是http连接的方式。下面我们为svn配置http访问。svn的http访问时依赖apache的dav_svn模块,然后赋予www-data访问权限,进行版本控制。

2.1 安装Apache HTTP服务

1、查看是否有安装Apache HTTP服务:httpd -v
1
2、未安装Apache HTTP服务的,安装Apache HTTP服务:

yum install httpd

安装后,再执行第一步的命令,查看安装结果。

注:有一些系统已经有Apache httpd了,这步可以忽略。

2.2 安装svn模块

1、查看httpd是否已经安装的svn模块:

ls /etc/httpd/modules/ | grep svn

2
2、未安装SVN模块,安装SVN模块:

yum -y install deltarpm
yum install subversion mod_dav_svn

安装后,再执行第一步的命令,查看安装结果。

注:有一些系统已经有svn模块了,这步可以忽略。

2.3 配置

1、 修改仓库拥有者

## 将 SVN 版本库目录权限全部者改成 apache(httpd 进程默认的启动用户)
chown -R apache:apache /opt/svn/
#查看目录权限
ls -lt

注:这里指的是版本库目录,不是工程目录
1

  因为后续的httpd服务的用户默认为apache,而httpd服务需要读取仓库下的内容,因此这里修改用户属组,操作系统可以无apache用户。执行后/opt/svn/文件夹拥有者变为apache

2、开启读写权限:
(1)查看SElinux状态:getenforce

2
  SELINUX=enforcing:强制模式,代表 SELinux 正常运行,所有的策略已经生效。(SELINUX的默认状态)
  SELINUX=permissive:宽容模式,代表 SELinux 已经启动,但是只会显示警告信息,而并不会实际限制进程访问文件或目录资源。(执行”setenforce 0”后,会到达该状态)。
  SELINUX=disable:关闭,代表 SELinux 被禁用了。(修改指定的系统文件后,会达到此状态)。
如果selinux已经关闭,就不要chcon命令了;
如果开启了SELINUX,则需执行如下命令:

chmod -R o+rw  /opt/svn/mathPhysics
chcon -R -t httpd_sys_content_t  /opt/svn/mathPhysics
chcon -R -t httpd_sys_rw_content_t  /opt/svn/mathPhysics
setsebool httpd_unified=1

2、因为HTTP访问用的是httpd服务储存的密码,而不是SVN的用户密码,所以必须还得创建http访问SVN的用户名密码。

htpasswd -c -m svn目录/conf/httpdPasswd 用户名

命令说明:
  -c 是创建新文件,只有第一次创建账户密码时使用
  -m 是强制使用MD5加密密码(默认)
  httpdPasswd 是创建的文件名
  root 是你要创建的可访问用户的名字

然后连续输入两次密码完成创建http访问用户,这里我的密码预设是“math”
4

注意:
  添加第一个用户时,命令为:htpasswd -c -m svn目录/conf/httpdPasswd 用户名
  添加后面的第n个用户时,命令为:htpasswd -m svn目录/conf/httpdPasswd 用户名
(注:-c 是创建新文件,只有第一次创建账户密码时使用)

3、在httpd下创建svn.conf配置文件:
  执行cd /etc/httpd/conf.d/ls命令,查看subversion.conf 文件是否已存在,不存在的创建文件:

touch /etc/httpd/conf.d/subversion.conf 

4、添加subversion.conf 文件内容:gedit subversion.conf
文件内容示例:具体的path需根据实际情况填写

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
   DAV svn
   SVNListParentPath on
   SVNParentPath /opt/svn
   #SVNPath /opt/svn/
   # Limit write permission to list of valid users.
   AuthType Basic
   AuthName "Authorization Realm"
   #httpd服务储存的密码
   AuthUserFile /opt/svn/mathPhysics/conf/httpdPasswd
   AuthzSVNAccessFile /opt/svn/mathPhysics/conf/authz
   Satisfy all
   Require valid-user
   SVNAutoversioning on
   ModMimeUsePathInfo on
</Location>

文件内容说明:1
5、修改svn的svnserve.conf 配置文件:gedit svnserve.conf
将 password-db 对应的值改成 httpdPasswd
2

2.4 启动服务

2.4.1 启动Apache httpd

systemctl restart httpd.service

【说明】
httpd的默认端口为80,如果被占用自行到修改/etc/httpd/conf/httpd.conf修改并开启防火墙端口。
(1)使用netstat -antlp |grep 端口号 查看端口是否被占用:1(2)httpd的默认端口为80,如果端口被占用,修改 /etc/httpd/conf/httpd.conf中的端口号
执行命令: gedit /etc/httpd/conf/httpd.conf
修改 Listen 对应的端口号
2
(3)添加防火墙放行:详见2.4.3节

2.4.2 重启Apache httpd服务

systemctl restart httpd

1

如果出现以下异常:
1
可以执行命令:systemctl status httpd,来具体查看失败原因,然后去具体修定:
2
然后再重启 httpd服务:systemctl httpd restart

2.4.3 添加防火墙放行策略

firewall-cmd --permanent --add-service=http
firewall-cmd --reload
firewall-cmd --zone=public --add-port=端口号/tcp --permanent

2.4.3 http访问svn(ip+svn)

用svn客户端或者浏览器访问(ip+svn) : http://ip:端口/svn/svn目录
4
1
浏览器中提示输入用户名和密码,后显示上图则设置成功。
如果此时提示密码错误,则
(1)配置users:为httpdPasswd文件添加[users]配置,如下所示:
1
(2)重启http和svn:

systemctl restart httpd.service
firewall-cmd --zone=public --add-port=443/tcp --permanent
netstat -ntpl|grep 443
pkill svnserve
svnserve -d -r /opt/svn/mathPhysics/
ps -ef|grep svnserve

(3)配置users,添加登录用户:
重复执行下面命令,添加登录的用户

htpasswd -m /opt/svn/mathPhysics/conf/httpdPasswd 用户名

5

四、异常处理

  如果以上操作后,访问仍然有异常,可以查看apach的error日志,根据日志记录情况进行处理。要找到自定义的日志文件位置,
1、请用文本编辑器打开 gedit /etc/httpd/conf/httpd.conf,然后查找 ServerRoot,该参数显示了 Apache Web 服务器目录树的顶层,日志文件和配置都位于该目录树中。例如:

ServerRoot "/etc/httpd"

然后,查找 ErrorLog 开头的行,该行指出了 Apache Web 服务器将错误日志写到了哪里去。注意,指定的位置是 ServerRoot 值的相对位置。例如:

ErrorLog "logs/error_log"

结合上面的两个指令,可以获得完整的错误日志路径,默认情况下该路径就是: /etc/httpd/logs/error_log
在全新安装的Apache中,这是一个到 /var/log/httpd/errorlog 的符号链接。

在实际情况中, ErrorLog 可能指向你 Linux 系统中的任意位置。

2、查看日志文件,定位问题:gedit 日志文件,如gedit /etc/httpd/logs/error_log

五、安装配置https访问

  通过http访问svn版本库虽然方便,但是http协议均采用明文传输,随便在网络上抓包用户名和密码就可能被泄露了,所以考虑采用https传输,安全性比较高,也就是apache+svn+ssl。希望svn支持https,主要的工作是配置 SSL协议(Secure Sockets Layer 安全套接层)。
  具体操作过程,详见链接: CentOS服务器部署svn https访问.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194538.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 一个普通Android程序员的2018总结2019计划

    一个普通Android程序员的2018总结2019计划承接去年总结:一个普通Android程序员的20182018:总结这一年继续分三个方面吧:职场篇:这一年发生了很多事,上家公司团队经营问题,最终结果是团队解散,期间发生一系列事情,参照一个普通一个Android程序员的心酸历程(2018.5.1)。然后修整两个月,找到了现在这家公司,公司目前规模不大,但各方面管理和上家公司天壤之别,至少目前我工作过的公司里面,算是最好的了,工资不是很高,…

    2022年6月14日
    39
  • linux宝塔卸载,宝塔面板卸载与安装[通俗易懂]

    linux宝塔卸载,宝塔面板卸载与安装[通俗易懂]一键卸载宝塔Linux面板及运行环境命令1-使用xshell链接服务进入服务器命令:wgethttp://download.bt.cn/install/bt-uninstall.sh2-执行脚本命令:shbt-uninstall.sh3-根据提示4-完成更多功能及文档2,安装宝塔面板执行以下代码进行安装宝塔6.9免费版。宝塔6.9版本已经很稳定了,推荐大家直接安装6.9版本(注意:…

    2025年9月20日
    8
  • STM32F103使用标准库移植RT-Thread标准版的Finsh

    STM32F103使用标准库移植RT-Thread标准版的Finshrtt标准版中stm32的bsp使用的是HAL库,现在想换成标准库。相比于rttnano的移植来说,和标准版的移植还是有不小的差别的,至少我个人这么认为。nano在移植过程中只需要按照#error提示修改好board.c即可。当然如果需要使用finsh的话,你还需要补充完成finsh_board.c和串口的一些信号,具体参见官方文档。整个流程还是相当清晰的,工作量也不大。移植标准版的另一个原因是我想使用ATClient。刚开始我尝试直接向nano版本中进行添加,但似乎…

    2022年5月15日
    45
  • linux抓包命令详解_linux抓包命令指定ip和端口

    linux抓包命令详解_linux抓包命令指定ip和端口linux抓包命令tcpflow-cieth0dstport6060tcpdump-ieth0dstport6060案例:参考文档:https://blog.csdn.net/weixin_34124651/article/details/88267519

    2022年10月10日
    3
  • navicat生成激活码错误-激活码分享

    (navicat生成激活码错误)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS3…

    2022年3月26日
    68
  • 艺术的问题

    艺术的问题

    2021年12月31日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号