CentOS安装SVN服务器并配置HTTPS连接

简介:

在CentOS6.3 64位机器上配置SVN服务器,并设置只允许HTTPS连接,可以配置多个repos源,每个源都拥有自己的组和成员,用于权限控制。

安装相关软件

  • Apache

    yum install httpd httpd-devel 


  • Subversion

yum install mod_dav_svn subversion
  • SSL

yum  install mod_ssl  openssl

创建版本库

[plain] view plain copy
  1. #mkdir /var/svn  

  2. #cd /var/svn  

  3. #svnadmin create myapp  

  4. #chown -R apache.apache myapp  

  5. #chcon -R -t httpd_sys_content_t myapp           //selinux相关  


相似的,我添加了另一个版本库myapp2


修改配置文件/etc/httpd/conf.d/subversion.conf,添加如下内容


[plain] view plain copy
  1.  

  2.   DAV svn  

  3.   SVNParentPath /var/svn  

  4.   AuthType Basic  

  5.   AuthName "Authorization Realm"  

  6.   AuthUserFile /var/svn/passwd                   //用户文件  

  7.   AuthzSVNAccessFile /var/svn/authz              //用户权限控制文件  

  8.   Require valid-user  

  9.  


此处需要注意添加/var/svn/passwd文件的相关权限,否则可能出想权限错误。相关日志文件为/var/log/httpd/error_log 遇到问题要查看错误日志。


用户文件passwd的内容只能通过htpasswd命令添加

如添加用户leon


[plain] view plain copy
  1. #htpasswd -c /var/svn/passwd leon                 //-c 表示新建一个文件,以后就不需要加了  

相似的我添加了其他用户hailong,gao,wang


用户权限控制文件authz


[plain] view plain copy
  1. [groups]  

  2. myapp = leon,hailong                              //myapp项目有两个成员leon和hailong  

  3. myapp2 = wang, gao  

  4. [myapp:/]  

  5. @myapp = rw                                       //myapp组拥有myapp项目的读写权限,其他人无权限  

  6. [myapp2:/]  

  7. @myapp2 = rw  


这样就做到权限控制。


可能遇到的问题
1.权限问题
通过查看错误日志,添加相关权限。重点注意SeLinux引起的权限问题,可以暂时关闭SeLinux,方法:setenforce 0,SeLinux的管理方法参考CSDN网站http://blog.csdn.net/haiong0707/article/details/8137633

2.防火墙问题
关闭防火墙或者打开相关端口


通过上面的配置,SVN服务器通过HTTP访问基本就没有问题了,接着配置HTTPS访问


[plain] view plain copy
  1. #cd  /etc/pki/tls/private  

  2. #openssl  genrsa  -out  my.key  1024    

  3. #openssl  req  -new  -key  my.key  -out  my.csr  

  4. #cd  /etc/pki/tls/certs  

  5. #openssl  x509  -req  -days  365  -in  /etc/pki/tls/private/my.csr  -signkey  /etc/pki/tls/private/my.key  -out  my.crt  


以上步骤必须在相关文件夹下产生所需的文件,保证输入命令正确,保证产生文件所在文件夹正确,否则后面将可能发生错误


修改/etc/httpd/conf.d/ssl.conf文件


[plain] view plain copy
  1. SSLCertificateFile /etc/pki/tls/certs/my.crt  

  2. SSLCertificateKeyFile /etc/pki/tls/private/my.key  


修改/etc/httpd/conf/httpd.conf文件



[plain] view plain copy
  1.  

  2.    Options FollowSymLinks  

  3.    AllowOverride None  

  4.    SSLRequireSSL                                     //添加此行  

  5.  



重启httpd



[plain] view plain copy
  1. #service httpd restart  


如此SVN就只可以通过HTTPS访问了,并且能够对多个项目分配人员和权限。


可能遇到的问题

1.SVN开启HTTPS加密后,所有的WEB访问都变成HTTPS,例如,localhost将无法访问,需要访问https://localhost,这个应该是可以在https.conf文件中配置区分的,暂时不做处理,故建议此服务器不再当作WEB服务器。


----------------------------------------------------------------------------------------------------------------

localhost需要https的解决方法

不在httpd.conf添加 SSLRequireSSL ,添加到subversion.conf


[plain] view plain copy
  1.  

  2.   DAV svn  

  3.   SVNParentPath /var/svn  

  4.   AuthType Basic  

  5.   AuthName "Authorization Realm"  

  6.   AuthUserFile /var/svn/passwd                   //用户文件  

  7.   AuthzSVNAccessFile /var/svn/authz              //用户权限控制文件  

  8.   Require valid-user  

  9.   SSLRequireSSL                                  //需要https加密访问  

  10.  

这样,只有/repos目录需要https加密访问,不影响httpd做web服务器

转载自:Linux 下svn恢复到某一版本

经常由于坑爹的需求,功能要切回到之前的某一个版本。有两种方法可以实现:
方法1: 用svn merge
1) 先 svn up,保证更新到最新的版本,如20;
2) 然后用 svn log ,查看历史修改,找出要恢复的版本,如10 。如果想要更详细的了解情况,可以使用svn diff -r 10:20 [文件或目录];
3) 回滚到版本号10:svn merge -r 20:10 [文件或目录],注意版本号之间的顺序,这个叫反向合并;
4) 查看当前工作版本中的文件,如test.cpp和版本号10中文件的差别:svn diff -r 10 test.cpp, 有差别则手动改之;
5) 若无差别,则提交:svn ci -m“back to r 10,xxxxx” [文件或目录]。这时svn库中会生成新的版本,如21。
方法2: 用svn up
前2步如方法1,然后直接 svn up -r 10。当前的工作版本就是版本10了。但是注意,这时svn库中会并不会生成新的版本,下次在本地svn up之后,还是会回到之前的版本。









本文转自 暗黑魔君 51CTO博客,原文链接:http://blog.51cto.com/clovemfong/1200907,如需转载请自行联系原作者
目录
打赏
0
0
0
0
235
分享
相关文章
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
FastAPI-MCP是一款能将FastAPI应用端点自动转换为符合模型上下文协议(MCP)的开源工具,支持零配置自动发现接口并保留完整文档和模式定义。
340 71
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
阿里云服务器配置与云盘容量选择参考:实例规格、云盘等相关配置选择解析
对于初次接触云服务器的用户来说,面对众多配置选项和云盘容量选择,可能会不知道如何选择。有些用户甚至不清楚云服务器应该购买多大容量的云盘,也不知道哪一款配置的云服务器更适合自己的业务。本文将详细探讨这两个问题,并结合阿里云服务器的特点,为您提供一份云服务器配置与云盘容量选择指南,以供了解和选择参考。
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
208 26
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
78 24
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
66 13
CentOS 7.8下使用kubeadm安装Kubernetes 1.26
这就是所有的前线报告,冒险家们,你们已经做好准备,开始在CentOS 7.8上通过Kubeadm安装Kubernetes 1.26的挑战了吗?走上这段旅程,让你的代码飞翔吧。
68 16
阿里云服务器2核8G、4核16G、8核32G配置热门实例价格、性能与场景全攻略
2核8G/4核16G/8核32G配置的阿里云服务器在阿里云活动中目前有经济型e、通用算力型u1、通用型c7、通用型g8i和通用型g8y五种实例可选,虽然配置相同,但是这些实例规格之间的价格差别是很大的。面对不同配置和类型的云服务器实例,有的新手用户往往因为不知道他们之间的区别,所以不知道如何选择。本文将针对常见的2核8G、4核16G、8核32G配置,深入剖析阿里云服务器中的经济型e、通用算力型u1、通用型g7及通用型g8y实例,以供大家参考和选择。
在Ubuntu 18.04服务器上配置双网口以接入互联网
总结一下,配置双网口在Ubuntu 18.04服务器就像一场冒险游戏,你小心翼翼地从查看网络布局开始,铺设新线路,最后得到了通往互联网的双重通道。祝你在网络世界的冒险旅程中更上一层楼!
59 11
阿里云服务器配置怎么选择?根据用户类型及使用场景配置推荐
如何选择阿里云服务器配置?2025年全解析!个人用户可选68元/年的轻量应用服务器(2核2G、200M带宽),企业用户推荐199元/年的ECS通用算力型u1实例(2核4G、5M带宽)。针对不同需求,还有内存型、计算型、高主频型及GPU服务器等多规格实例。带宽选择需根据访问量,小流量应用3M即可,高流量建议10M起步。存储方面,系统盘40GB够用,数据盘按需选择ESSD或SSD云盘,确保I/O性能满足业务需求。阿小云为你整理最新攻略,助你高效选型!