Linux安装svn服务器和权限配置_亲测成功

Linux安装svn服务器和权限配置_亲测成功

SVN简介

SVN是Subversion的简称,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理, 相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。适合中小公司的开发人员不多的项目使用,相比git管理工具更简单。

官方地址: https://tortoisesvn.net/

在这里插入图片描述

安装svn服务器

首先检查操作系统上面是否安装了subversion,一般centos操作系统都默认安装了此软件

服务器: 192.168.1.50安装svn服务为例

yum list | grep subversion 查看安装包

rpm -qa subversion 查看是否安装

yum install subversion -y 安装

rpm -ql subversion 查看安装位置
rpm -ql subversion | more 查看安装

查看版本
svnserve --version
svn --version

创建svn仓库目录
mkdir -pv /data/svn/svnrepos

设置为svn仓库目录
svnadmin create /data/svn/svnrepos

执行命令后会在该目录生成几个文件
ls /data/svn/svnrepos
authz    是权限控制文件
passwd    是帐号密码文件
svnserve.conf    是SVN服务配置文件

启动svn服务
svnserve -d -r /data/svn/svnrepos

客户端连接:svn://192.168.1.50:3690
输入用户名和密码就能访问了 默认端口 3690

服务器默认使用 3690 端口号 , 要使用非默认端口 , 可以在启动命令后面加一个 --listen-port xxxx 
svnserve -d -r /data/svn/svnrepos --listen-port 3695 指定端口启动

同时还可以为同一个服务器上不同的 SVN 项目设定不同的端口号 , 比如还建有另一个项目那么可以启动
svnserve -d -r /data/svn/svnrepos2 --listen-port 3696

svnserve -d -r /data/svn/svnrepos --config-file /data/svn/svnrepos/conf/svnserve.conf --listen-port 3690
#--config-file后面跟全局配置参数文件

killall svnserve 停止svn

配置用户名和密码还有权限

vim /data/svn/svnrepos/conf/passwd 添加用户名和密码
abc=abc123
lxd=lxd
fh=fh123456
ft=ft123456

vim /data/svn/svnrepos/conf/authz 设置权限
[/]  主目录下所有路径
abc = rw 读写
lxd = rw
fh = rw
ft = rw
* =  其他用户没有权限

vim /data/svn/svnrepos/conf/svnserve.conf 服务配置
anon-access = none 匿名用户不允许访问
auth-access = write 有权限用户可读可写
password-db = passwd 指定用户名口令文件名
authz-db = authz 指定权限配置文件名
realm = liang svn Repository #每个SVN项目的认证命名空间,会在认证提示里显示,建议写项目名称。

使用http协议连接svn

上面使用的是svn://协议,下面使用http协议连接svn

安装Apache
yum install -y httpd mod_dav_svn 安装httpd和svn模块

httpd -version

ls /etc/httpd/modules/   查看是否有mod_dav_svn.so和mod_authz_svn.so模块,如果有,说明mod_dav_svn安装成功!

vim /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
    SVNListParentPath on
    SVNParentPath /data/svn
    AuthType Basic
    Satisfy Any
    AuthName "Subversion repos"
    AuthUserFile /data/svn/svnrepos/conf/http_passwd
    AuthzSVNAccessFile /data/svn/svnrepos/conf/authz
    Require valid-user
</Location>

SVNParentPath:支持多个相同父目录的SVN版本库。
SVNPath:只支持一个主目录的SVN版本库,如果在主目录下面建新项目,则提示无权访问。

设置权限
chown apache:apache /data/svn/svnrepos -R

设置Apache http访问用户名,按提示输入两次相同密码
注意:这里的用户名密码要和svn里配置的一样。passwd和http_passwd文件中,账号密码必须设置相同。 ######################################
htpasswd -cm /data/svn/svnrepos/conf/http_passwd abc
htpasswd -m /data/svn/svnrepos/conf/http_passwd lxd 
htpasswd -m /data/svn/svnrepos/conf/http_passwd ft
htpasswd -m /data/svn/svnrepos/conf/http_passwd fh

htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。
-c:创建一个加密文件;
-m:默认采用MD5算法对密码进行加密;
-D:删除指定的用户。
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
htpasswd -bc /data/svn/svnrepos/conf/http_passwd admin 123456

service httpd start 启动Apache

查看端口
netstat -tpnl

service httpd restart 
service httpd status 
service httpd stop

查看日志
vim /var/log/httpd/error_log

提示没有权限打开文件
Permission denied: Could not open password file: /data/svn/svnrepos/conf/http_passwd
  
对于这个问题有人说关掉SElinux,个人没试过,不过肯定不好,影响主机安全性。
执行如下命令即可:
chcon -R -h -t httpd_sys_content_t /data/svn


使用svn协议提交文件没有问题,但使用http提交文件时报错
Can't open file '/data/svn/svnrepos/db/txn-current-lock': Permission denied 

执行下面命令后 可以了
chcon -R -t httpd_sys_content_t /data/svn/svnrepos
chcon -R -t httpd_sys_rw_content_t /data/svn/svnrepos


service httpd restart 
浏览器访问输入用户名和密码:http://192.168.1.50:80/svn/svnrepos/

chkconfig --list httpd 查看开机启动项

chkconfig httpd on  #设置开机启动

vim /etc/httpd/conf/httpd.conf  修改Apache端口,默认是80
Listen 3691

修改端口后重启报错了  http://192.168.1.50:3691/svn/svnrepos/

yum provides semanage 安装工具,可能提示没有插件包,用下面的命令

yum  install policycoreutils-python 安装

semanage port -l|grep http 查看可以用的http端口
semanage port -a -t http_port_t -p tcp 3691 增加一个端口
semanage port -l|grep http

Nginx反向代理配置

最后用nginx做反向代理,使用外网访问
 vim /data/apps/nginx-main/conf/nginx.conf
        location /svn {
                proxy_pass http://127.0.0.1:3691/svn;
        }

/data/apps/nginx-main/sbin/nginx -s reload

外网访问svn:http://222.240.x.x:8088/svn/svnrepos/

参考链接:
https://blog.csdn.net/yanggd1987/article/details/38293843
https://www.cnblogs.com/taomylife/p/8026886.html
https://blog.csdn.net/tojohnonly/article/details/79765583
https://blog.csdn.net/iw1210/article/details/59543544
https://blog.csdn.net/u011781521/article/details/80200583
https://www.osyunwei.com/archives/9145.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/370592.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C# OMRON PLC FINS TCP协议简单测试

FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令&#xff0f;响应系统。运用 FINS指令可实现各种网络间的无缝通信&#xff0c;包括用于信息网络的 Etherne(以太网)&#xff0c;用于控制网络的Controller Link和SYSMAC LINK。…

【C++】C++入门 — 类和对象初步介绍

类和对象 1 类的作用域2 类的实例化3 类对象模型4 this指针介绍&#xff1a;特性&#xff1a; Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;下一篇文章见&#xff01;&#xff01;&#xff01; 1 类的作用域 类定义了一个新的作用域&#xff0c;类的…

stable-diffusion | v1-5-pruned.ckpt和v1-5-pruned-emaonly.ckpt的区别

https://github.com/runwayml/stable-diffusion?tabreadme-ov-file#reference-sampling-script 对于 1.5 模型&#xff0c;其中可能包括四部分&#xff1a;标准模型、文本编码器、VAE模型、EMA模型。 标准模型&#xff1a;生成图片的核心模块&#xff0c;潜空间中的前向扩散和…

创新大赛专访丨南沙人才荣膺2023年度人才寻猎标杆品牌:吸纳海内外高学历人才,助力南沙精准“选苗”

日前&#xff0c;2023第三届全国人力资源创新大赛颁奖典礼暨成果展圆满举行。自2023年10月份启动以来&#xff0c;大赛共吸引了457个案例报名参赛&#xff0c;经组委会专家团队评审严格审核&#xff0c;企业赛道共有103个案例获奖、72家企业、13位个人、7个产业园斩获荣誉。 广…

SpringMVC-组件解析

一、引子 我们在上一篇文章Spring MVC-基本概念中&#xff0c;为读者解释了如何使用SpringMVC框架&#xff0c;将承接客户端请求的工作从原生的Servlet转移到我们熟知的Controller中。那么我们不禁会好奇&#xff0c;SpringMVC框架到底做了什么&#xff0c;是怎么把请求分发给…

【涵子来信】——拆机,感想

大家好&#xff0c;我是涵子。 初中的第一个学期结束了&#xff0c;来临寒假。我在寒假做了一件有趣的事情&#xff1a;拆机&#xff0c;修手机。今天我来分享分享这件事情。 拆机 情况介绍 拆机对象&#xff1a; iPhone 6 Plus 情况&#xff1a; 电池健康度100%&#xff08…

张维迎《博弈与社会》威胁与承诺(4)宪政与民主

有限政府 动态博弈理论对我们理解民主与法治具有重要的意义。 自人类进入文明时代以来&#xff0c;政府就是社会博弈重要的参与人。任何社会要有效运行&#xff0c;都需要赋予政府一些自由裁量权。但如果政府的自由裁量权太大&#xff0c;政府官员为所欲为&#xff0c;不仅老百…

最新酒桌小游戏喝酒骰子小程序源码/带流量主

2023最新酒桌小游戏喝酒小程序源码-带流量主&#xff0c;喝酒神器3.6修改增加了广告位&#xff0c;直接上传源码到开发者端即&#xff0c;可通过后改广告代码&#xff0c;然后关闭广告展示提交&#xff0c;通过后打开即可。 流量主ID替换插屏广告位 adunit-29629a7b54a41a8b视频…

2024年【G2电站锅炉司炉】模拟试题及G2电站锅炉司炉考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【G2电站锅炉司炉】模拟试题及G2电站锅炉司炉考试试题&#xff0c;包含G2电站锅炉司炉模拟试题答案和解析及G2电站锅炉司炉考试试题练习。安全生产模拟考试一点通结合国家G2电站锅炉司炉考试最新大纲及G2电站锅…

MySQL 教程 2.3

MySQL DELETE 语句 你可以使用 DELETE FROM 命令来删除 MySQL 数据表中的记录。 你可以在 mysql> 命令提示符或 PHP 脚本中执行该命令。 语法 以下是 DELETE 语句从 MySQL 数据表中删除数据的通用语法&#xff1a; DELETE FROM table_name WHERE condition; 参数说明&…

JAVA单例模式详解

单例模式 创建型模式提供创建对象的机制,能够提升已有代码的灵活性和复用性 常用的有&#xff1a;单例模式、工厂模式&#xff08;工厂方法和抽象工厂&#xff09;、建造者模式。 不常用的有&#xff1a;原型模式。 1 单例模式介绍 1.1 定义 单例模式&#xff08;Singlet…

基于YOLOv7算法的高精度实时课堂场景下人脸检测系统(PyTorch+Pyside6+YOLOv7)

摘要&#xff1a;基于YOLOv7算法的高精度实时课堂场景下人脸检测系统可用于日常生活中检测与定位人脸&#xff0c;此系统可完成对输入图片、视频、文件夹以及摄像头方式的目标检测与识别&#xff0c;同时本系统还支持检测结果可视化与导出。本系统采用YOLOv7目标检测算法来训练…

【代码随想录-哈希表】有效的字母异位词

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

二叉树和堆(3)——二叉树链式结构的实现和递归思想(1)

目录 二叉树的前序、中序和后序遍历 前序遍历 图片解析 代码表示 递归分析 中序遍历 图片解析 代码表示 后序遍历 图片解析 代码表示 学习二叉树的基本操作前&#xff0c;需要创建一棵二叉树&#xff0c;然后才能学习相关的操作。因此&#xff0c;本篇我们就先介绍一…

我在代码随想录|写代码Day25 |回溯算法|93.复原IP地址 , 78.子集 , 90.子集II

学习目标&#xff1a; 博主介绍: 27dCnc 专题 : 数据结构帮助小白快速入门 &#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d; ☆*: .&#xff61;. o(≧▽≦)…

200行C++代码写一个网络调试助手(TCP服务端TCP客户端)

前言 今天分享一个200行C代码写成的QT网络调试助手。 可以先看看效果 。 因为我不喜欢用QT Designer&#xff0c;因此我用的组件都是使用代码布局的&#xff0c;所以需要设计一下布局。 界面是参考的之前写的串口助手&#xff0c;就是把里面的逻辑改了改&#xff0c;因此外观…

HACKTHEBOX通关笔记——Cronos(退役)

开启环境&#xff0c;调试网络确保互联互通 拿到IP之后还是先来做一下端口扫描&#xff0c;nmap --rate-min5000 -p- -v ip&#xff0c;也可以加个-Pn做下禁ping扫描&#xff0c;当然这个速率很快&#xff0c;实际攻防时候加了pn参数也是容易被发现的&#xff0c;所以对抗时候…

TypeScript实战系列之强力爆破泛型的困扰

目录 介绍开始如何理解泛型语法泛型约束泛型默认值练习后续 介绍 泛型在typescript 中使用频率相当高&#xff0c;也给了初学者相当大的阻碍。希望这一篇文章&#xff0c;能帮助你们爆破它。 开始 下面通过模拟实现一个简易版本的axios来引入泛型的使用 // axios.ts type M…

【面试】冲刺春招!每天三十道面试题——Java基础篇(一)

目录 一 JDK 和 JRE 的区分 二 简述编码的作用以及记事本的实现原理 三 基本类型有哪些&#xff1f;分别占据多少空间&#xff1f; 四 java中布尔类型的空间大小是怎么定下来的&#xff1f;为什么不是1bit&#xff0c; 把考虑因素说一下 五 int类型和float类型哪一个精度更…

算法学习——华为机考题库5(HJ31 - HJ35)

算法学习——华为机考题库5&#xff08;HJ31 - HJ35&#xff09; HJ31 单词倒排 描述 对字符串中的所有单词进行倒排。 说明&#xff1a; 1、构成单词的字符只有26个大写或小写英文字母&#xff1b; 2、非构成单词的字符均视为单词间隔符&#xff1b; 3、要求倒排后的单…