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 plaincopy
  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 plaincopy
  1. <Location /repos>  

  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. </Location>  


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


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

如添加用户leon


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

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


用户权限控制文件authz


[plain]view plaincopy
  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 plaincopy
  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 plaincopy
  1. SSLCertificateFile /etc/pki/tls/certs/my.crt  

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


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



[plain]view plaincopy
  1. <Directory />  

  2.    Options FollowSymLinks  

  3.    AllowOverride None  

  4.    SSLRequireSSL                                     //添加此行  

  5. </Directory>  



重启httpd



[plain]view plaincopy
  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 plaincopy
  1. <Location /repos>  

  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. </Location>  

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

转载自:http://blog.csdn.net/haiong0707/article/details/8259235


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之后,还是会回到之前的版本。

来源: <Linux 下svn恢复到某一版本 - Kingc's Time的日志 - 网易博客>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓APP_ 控件(6)—— Notification通知

摘自&#xff1a;安卓APP_ 控件&#xff08;6&#xff09;—— Notification通知 作者&#xff1a;丶PURSUING 发布时间&#xff1a; 2021-04-02 00:30:14 网址&#xff1a;https://blog.csdn.net/weixin_44742824/article/details/115382674 Notification通知的使用 一、创建一…

安卓APP_ 控件(7)——Toolbar栏目样式

摘自&#xff1a;安卓APP_ 控件&#xff08;7&#xff09;——Toolbar栏目样式 作者&#xff1a;丶PURSUING 发布时间&#xff1a; 2021-04-02 15:42:07 网址&#xff1a;https://blog.csdn.net/weixin_44742824/article/details/115395997 Toolbar栏目样式 什么是Toolbar?设置…

电大计算机本科离散数学考试题,国开(中央电大)本科《离散数学(本)》网上形考(任务一至三)试题及答案...

《国开(中央电大)本科《离散数学(本)》网上形考(任务一至三)试题及答案》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《国开(中央电大)本科《离散数学(本)》网上形考(任务一至三)试题及答案(10页珍藏版)》请在装配图网上搜索。1、国开(中央电大)本科离散数学(本)网上…

luogu4267 TamingtheHerd (dp)

设f[i][j]为让前i天发生j次暴动需要改变的最少的值 则f[i][j]min{f[k][j-1](x[k1]!0)(x[k2]!1)...(x[i]!(i-k-1))} $O(n^3)$直接做就好了 1 #include<bits/stdc.h>2 #define pa pair<int,int>3 #define ll long long4 using namespace std;5 const int maxn105;6 7…

Gartner:2013年SIEM市场分析(MQ)

2013年5月7日&#xff0c;Gartner一年一度的SIEM magic quadrant报告出炉了。如下图&#xff1a;对比一下去年的MQ矩阵&#xff1a;简言之&#xff0c;上榜厂商减少到16个&#xff0c;Q1Labs在三强竞争中稍占上风&#xff0c;Arcsight有所退步&#xff0c;Splunk终于跻身第一阵…

python sqlite数据库_用Python进行SQLite数据库操作

简单的介绍SQLite数据库是一款非常小巧的嵌入式开源数据库软件&#xff0c;也就是说没有独立的维护进程&#xff0c;所有的维护都来自于程序本身。它是遵守ACID的关联式数据库管理系统&#xff0c;它的设计目标是嵌入式的&#xff0c;而且目前已经在很多嵌入式产品中使用了它&a…

dijstra算法

无向图、赋权有向图 的最短路径转载于:https://www.cnblogs.com/xiaoxuesheng993/p/9632555.html

北林计算机考研真题答案,真题解析|『北林』2020年考研初试真题

原标题&#xff1a;真题解析&#xff5c;『北林』2020年考研初试真题真题解析&#xff5c;『北林』2020年考研初试真题前言从今年的考试题型来看未做改变&#xff0c;(选择、名词解释、简答、论述)但分数分布略有更改。从考试内容来看&#xff0c;基本持平于去年的难易程度&…

安卓APP_ 控件(8)—— AlertDialog

摘自&#xff1a;安卓APP_ 控件&#xff08;8&#xff09;—— AlertDialog 作者&#xff1a;丶PURSUING 发布时间&#xff1a; 2021-04-02 18:13:20 网址&#xff1a;https://blog.csdn.net/weixin_44742824/article/details/115400659 显示对话框&#xff0c;效果如下图&…

iBatis 到 MyBatis区别

简介&#xff1a; 本文主要讲述了 iBatis 2.x 和 MyBatis 3.0.x 的区别&#xff0c;以及从 iBatis 向 MyBatis 移植时需要注意的地方。通过对本文的学习&#xff0c;读者基本能够了解 MyBatis 有哪些方面的改进&#xff0c;并能够顺利使用 MyBatis 进行开发。本文更适合有 iBat…

python开源库生成式对抗网络_Python:使用Tensorflow开发一维生成对抗网络

生成式对抗网络是一种用于训练生成器模型的深度学习体系结构。GAN由两个模型组成&#xff0c;一个称为生成器(Generator)&#xff0c;另一个称为判别器(Discriminator)。顾名思义&#xff0c;生成器生成新样本&#xff0c;判别器负责对生成的样本进行真伪分类。GAN实际如何运作…

Java执行存储过程

1、JDBC调用存储过程: CallableStatement /** *p是要调用的存储过程的名字&#xff0c;存储过程的4个参数&#xff0c;用4个&#xff1f;号占位符代替 *其余地方写法固定 */ CallableStatement cstmt conn.prepareCall("{call p(?,?,?,?)}"); /** *告诉JDBC&…

2014 计算机网络 考研真题,2014计算机网络考研试题过关必练

2009全国硕士研究生入学考试过关必练_网络试题一&#xff0e; 通过选择题过关必练1. 常用的数据传输速率单位有Kbps、Mbps、Gbps与Tbps&#xff0c;1Mbps等于A. 1103bps B. 1106bps C. 1109bps D. 11012bps2. 常用的数据传输速率单位有Kbps、Mbps、Gbps&#xff0c;如果局域网的…

安卓APP_ 控件(9)—— PopupWindow弹窗

摘自&#xff1a;安卓APP_ 控件&#xff08;9&#xff09;—— PopupWindow弹窗 作者&#xff1a;丶PURSUING 发布时间&#xff1a; 2021-04-05 14:41:35 网址&#xff1a;https://blog.csdn.net/weixin_44742824/article/details/115405555 实现效果如下&#xff1a; 点击触发…

mysql5.6主从参数详解

mysql5.6的主从相当的不错&#xff0c;增加了不少参数&#xff0c;提升了主从同步的安全和效率&#xff0c;以下是mysql5.6主从参数详解。######################################### server_id 2 #binlog log-bin /data1/mysql/binlog/binlog binlog_format ROW binlog-row…

3D 立体 backface-visibility

<!DOCTYPE html> <html><head><!--backface-visibility属性用来设置&#xff0c;是否显示元素的背面&#xff0c;默认是显示的backface-visibility:keyword;keyword有两个值&#xff0c;hidden和visible&#xff0c;默认是是visible所以是在每个元素里面设…

计算机网址登录教程,melogincn电脑登录教程

请问melogincn使用电脑登录设置的教程&#xff1f;在电脑上怎么登陆水星(美科星)无线路由器的后台&#xff0c;通过melogincn&#xff0c;试了下发现不知道如何打开&#xff0c;求分享用melogincn用电脑登录设置的教程。使用环境描述&#xff1a;melogincn实际上应该是melogin.…

从外网给新建的Exchange 2007/2010分发通讯组发邮件失败

前几天部署Exchange2010时建立了几个通讯组邮箱&#xff0c;测试下来发现只有exchange内部组员进行邮件交流没有问题&#xff0c;外网发送到组邮箱时会收到#550 5.7.1 RESOLVER.RST.AuthRequired; authentication required ##的错误&#xff0c;当时没有找出问题原因&#xff0…

Qt 中事件与处理

一、事件与处理 程序在运算过程中发生的一些事情&#xff1a;鼠标单击、键盘的按下... 这些的事件的监控与处理在Qt中不是以信号的方式处理的。 当这些事件发生时会调用QObject类中的功能函数&#xff08;虚函数&#xff09;&#xff0c;所有的控件类都继承了这个类。 常用的鼠…

安卓APP_ 布局(1)—— LinearLayout

摘自&#xff1a;安卓APP_ 布局&#xff08;1&#xff09;—— LinearLayout 作者&#xff1a;丶PURSUING 发布时间&#xff1a; 2021-04-05 16:46:22 网址&#xff1a;https://blog.csdn.net/weixin_44742824/article/details/115442240 LinearLatout 一、orientation&#xf…