CentOS安装SVN服务器并配置HTTPS连接-阿里云开发者社区

开发者社区> 余二五> 正文

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

创建版本库

  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,添加如下内容


  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


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

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


用户权限控制文件authz


  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访问


  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文件


  1. SSLCertificateFile /etc/pki/tls/certs/my.crt  

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


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



  1. <Directory />  

  2.    Options FollowSymLinks  

  3.    AllowOverride None  

  4.    SSLRequireSSL                                     //添加此行  

  5. </Directory>  



重启httpd



  1. #service httpd restart  


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


可能遇到的问题

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


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

localhost需要https的解决方法

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


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









本文转自 暗黑魔君 51CTO博客,原文链接:http://blog.51cto.com/clovemfong/1200907,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
CentOS 6.5安装Erlang/OTP 17.0
CentOS 6.5安装Erlang/OTP 17.0 Erlang目前已经是Fedora和Debian/Ubuntu软件仓库中的一部分。 Erlang目前最新的版本是OTP 17.0。
884 0
CentOS6.4 LVS+keepalived高可用负载均衡服务配置
<p style="color:rgb(85,85,85)"><span style="font-size:24px; color:#4f81bd"><strong>CentOS6.4 LVS+keepalived高可用负载均衡服务配置</strong></span></p> <p style="color:rgb(85,85,85)"> </p> <p style="color:rg
1334 0
linux下svn服务器安装配置与启动
1. 采用源文件编译安装。源文件共两个,为:      subversion-1.6.1.tar.gz  (subversion 源文件)      subversion-deps-1.6.1.tar.gz  (subversion依赖文件)      注意文件版本必须一致,否则很容易产生各种奇怪的问题. 2. 上传以上两个文件到服务器上,解压。
1096 0
Linux环境下SVN服务器端的安装与配置
最近尝试了下在Linux(CentOS6.5)环境下安装与配置SVN服务器端,安装过程中碰到了一些问题,参看了网友们分享的一些心得,并通过自己实际的操作,最终安装与配置成功!总的来说网上的说法芸芸,大致都相同,但是有些细节不够详细或者不够到位,所以根据自己亲身经历,记录下安装与配置过程,仅供大家参看以及自己之后再次使用提供方便。
1093 0
nginx服务器安装及配置文件详解
nginx在工作中已经有好几个环境在使用了,每次都是重新去网上扒博客,各种编译配置,今天自己也整理一份安装文档和nginx.conf配置选项的说明,留作以后参考。像负载均衡配置(包括健康检查)、缓存(包括清空缓存)配置实例,请参考http://seanlook.com/2015/05/17/nginx-install-and-config ,ssl加密请参考 http://seanlook.c
2020 0
+关注
13347
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载