新手玩阿里云ECS搭建CentOS5.8搭建svn服务器支持https访问方式

关于svn,之前我也不了解这是个什么东西,去年(大二)的时候,在学校接触过一个项目,当时就用到了这个,也都不是我配置的,都是别人给我整好了,我就写代码呗,写了就提交上去,当时也没有考虑过什么事svn,现在在公司实习了,时间很充裕,就想玩玩svn,也顺便把我准备做的毕业设计都传上去,阿里云给了我机会,新手注册,ECS免费半年,多好的事,虽然没有外网带宽,但是买1M的外网带宽也就20多块钱一个月吧!我还是可以接受的,好了不废话了,阿里云在这里就不废话了,反正感觉很高大上,在这里就简单聊聊svn吧!也是借鉴了很多小伙伴们的博客!

svn,subversion的缩写,版本控制系统,项目中肯定用到它吧应该,尤其是团队开发,小伙伴们改动了某个文件,传到服务器上去,其他的小伙伴更新一下自己本机,这样我们的本机环境始终都可以保证是一致的,给开发带来了很多的便利性。并且他会记录版本,你每提交更新一次,都会产生一个版本出来,如果错了,还可以用相对较久远的版本对其进行恢复,当然了,我现在还不很清楚,恢复的具体操作!今天介绍一下怎么搭建SVN服务器!

首先,我们要明确的是,svn可以在脱离数据库的情况下,存储数据!一般的动态web网站,肯定都没法离开数据库吧,只有N年前的静态html站点才是死的!

更多知识可以看看:http://www.ibm.com/developerworks/cn/java/j-lo-apache-subversion/

阿里云给我提供的是CentOS 5.8 64位系统,并且支持SSH,这样我就可以用putty远程操作它了!

svn支持https访问,所以至少,你需要安装的有三个模块:

  1. svn                     
    yum  install  mod_dav_svn subversion
  2. apache                yum  install httpd httpd_devel
  3. openssl               yum  install mod_ssl openssl

首先安装svn:

使用root账号去登录之后,直接输入命令就行了:yum  install  mod_dav_svn subversion

正常情况下,系统会自动的去下载所需要的数据包,然后活提示你是否立即安装,确认安装就是了

下面开始配置svn,让服务器可以通过svn://的访问方式

1.创建svn服务器根文件夹:

#mkdir  /home/svn

那么以后我的每个项目,如果需要提交到svn服务器上,我都应该放到这个路径下面去了

2.创建一个版本库

现在需要创建一个版本库,名字随便吧,尽量自己看懂哈!

#svnadmin  create  /home/svn/lfdcwtjxt

然后开始配置svn服务器,我还是比较喜欢用vi编辑器来编写基础文件,我不是玩linux的哈,我做java开发的,linux就会一点基础的东西!

在这里,需要注意的是,如果svn下面将来会有很多个项目的时候,我的建议是,专门建立一个统一的用户文件和权限文件,我也是这么做的!并且我都是放在svn根目录下,即: /home/svn/

其实在/home/svn/lfdcwtjxt/conf/路径下已经有了一个名叫passwd的文件了,这个就是一个用户文件,但是我不用他,我单独建立了一个统一管理用户的文件:

新建用户文件:(用vi编辑器就可以)

# vi  /home/svn/svn_passwd

# :wq

对用户文件的内容可以是:(键值对的方式:用户名 = 密码)

[users]

hujie = hujie123

接下来需要配置用户的读写权限,同样的,单独新建一个文件,来管理所有的项目

# vi  /home/svn/svn_authz

# :wq

文件的内容一般有这样几个部分:

[aliases]

[groups]                         svn的用户组

admins = hujie               admins用户组下目前只有hujie一个用户,多个用英文逗号隔开

[lfdcwtjxt:/]                    
lfdcwtjxt版本库的根目录

@admins =  rw              用户组前面需要加上@符号,rw表示读、写权限

* =                                  其他一切用户连读都不让读

好了,这样单独的用户与权限文件也就建立好了,我们需要在lfdcwtjxt版本库里面去配置让其生效,编辑 /home/svn/lfdcwtjxt/conf/svnserve.conf

[general]

anon-access  =  none

auth-access  =  write

password-db  =  /home/svn/svn_passwd                 这就是我建立的统一用户文件

authz-db  =  /home/svn/svn_authz                           我建立的统一的权限文件

3.启动服务

现在启动svn服务,就可以用svn://的方式访问了,建议是直接用下面的方式去启动

#svnserve  -d  -r  /home/svn

然后测试一下:

#svn  co  svn://localhost/lfdcwtjxt

会提示你输入用户名,密码,就和远程用putty连接远程主机很类似,登录进去就可以看到有关路径和文件信息了,

我之前用的  /etc/init.d/svnserve   restart方式启动,就碰到实际上并没有启动成功的现象,控制台是显示启动ok了,但是运行身份不是root,也导致无法用svn://的方式去访问,出现的错误是:

No repository found in ‘svn://localhost/lfdcwtjxt‘

这个错误,首先要保证上述的权限文件配置对了,也就是[lfdcwtjxt:/]这个地方

然后就是服务确实启动了,我用第一种方法启动就正常,第二种就出现这个错误了

但是现在还是不能够通过浏览器用http://的访问方式去访问,需要安装httpd

4.安装apache支持

#yum  install httpd httpd_devel

同样,一般都是下载,然后提示是否立即安装,安装即可,

5.这时候也是需要配置的:

第一步是新曾一个httpd的用户(不是svn用户,他们对用户验证是独立的)

#htpasswd   -c   /home/svn/svn_http_passwd   hujie

根据提示,输入密码即可

给httpd添加用户,必须是htpasswd命令,第一次添加需要新建文件,带上 -c参数,以后就不需要了

第二部需要修改一下这个文件/etc/httpd/conf/httpd.conf添加如下信息

<Location  /svn>

DAV  svn

#SVNPath   /home/svn/lfdcwtjxt
            //如果你只有一个版本库可以用它

SVNParentPath  
/home/svn/                 //多个版本库用它,配合SVNListParentPath

SVNListParentPath  
on                         //多个版本库的时候可以用他,配合SVNParentPath

AuthType 
Basic

AuthName   "Authorization Realm"

AuthUserFile  
/home/svn/svn_http_passwd      //不可与svn的用户公用一个文件

AuthzSVNAccessFile         
/home/svn/svn_authz     //这个可以与之前的那个权限文件公用

Require   valid-user                                  //需要验证用户

</Location>

上述需要注意的是:/home/svn/svn_http_passwd不应该与svn共同使用一个用户文件,原因是httpd与svn用户都是单独的,前者会对用户文件中的密码进行加密,后者则不会加密,我之前用的就是公用的,然后导致用svn://访问,密码始终都是错误的

<Location  /svn>,那么访问的时候,访问方式就变成了..../svn/lfdcwtjxt

6.启动httpd服务

service  httpd  restart

然后用浏览器就可以访问了,比如:http://192.168.0,1/svn/lfdcwtjxt

输入用户名和密码即可

现在还不能支持https://的访问方式呢,eclipse里面好像是必须为https://

下面继续吧!

7.安装openssl

# yum  install mod_ssl openssl

还是一样,先自动下载,然后提示是不是安装,安装即可

下面的这些操作,表示我不很明白,我是按照小伙伴们的指示,这么做的:

#cd  /etc/pki/tls/private

#openssl  genrsa  -out  my.key  1024

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

#cd  /etc/pki/tls/certs

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

到这一步的时候,会让你输入很多东西

下面openssl会要求为证书输入一些相关信息:

Country Name (2 letter code) [XX]:CH

State or Province Name (full name) []:BEIJING

Locality Name (eg, city) [Default City]:BEIJING

Organization Name (eg, company) [Default Company Ltd]:173LU.COM

Organizational Unit Name (eg, section) []:CS

Common Name (eg, your name or your server‘s hostname) []:hujie

Email Address []:[email protected]

然后还是要你输入信息,不过这时候enter可以结束输入了,没必要的就不输入了哈!

这时,在目录/usr/local/apache2/conf/下生成了两个文件:server.key,server.crt

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

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

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

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

<Directory />

Options FollowSymLinks

AllowOverride None

SSLRequireSSL                                     //添加此行

</Directory>

如果是修改的/etc/httpd/conf/httpd.conf文件的话,localhost可能就没法访问了,也可以不在这修改,可以修改/etc/httpd/conf/httpd.conf

<Location  /svn>

DAV  svn

#SVNPath   /home/svn/lfdcwtjxt

SVNParentPath   /home/svn/

SVNListParentPath  
on

AuthType  Basic

AuthName   "Authorization Realm"

AuthUserFile  
/home/svn/svn_http_passwd

AuthzSVNAccessFile         
/home/svn/svn_authz

Require   valid-user

SSLRequireSSL           //在这里添加加密访问配置

</Location>

这样就可以了

10.重启httpd

service  httpd  restart

好了,现在可以去eclipse,把工程share了,前提是eclipse有svn插件哈!然后提交到svn服务器上去了

到了这,我还是遇到问题了,eclipse下提交的时候出现的:

Can‘t open file ‘/home/svnroot/repository/test/db/txn-current-lock‘: Permission denied

我这里出现这个原因是:之前创建使用root创建的,用hujie登录,目录权限不太一样,所以修改了一下权限就可以了:

cd /home

sudo chmod 777 -R svn

我在网上还看到别的小伙伴们用的解决方案:

http://aben328.iteye.com/blog/1070850

http://www.cnblogs.com/macula7/archive/2011/06/08/2075150.html

http://blog.csdn.net/spring21st/article/details/22556555

明天是周日,完了,我要睡一上午了!!!!!

时间: 2024-12-24 11:36:14

新手玩阿里云ECS搭建CentOS5.8搭建svn服务器支持https访问方式的相关文章

新手玩阿里云ECS搭建tomcat7.0+JDK1.6服务器(J2EE小项目练习)

阿里云给我提供的是CentOS 5.8 64位系统! 废话不多说,直接上操作吧!(依赖的jdk是得首先安装的) 用yum查看了一下,我的这台机器yum服务器里面没有tomcat7.0版本的,只有个5.0版本的,不过jdk6.0还是有的! yum查询有没有我要的软件包:比如jdk,可以如下查询 yum -y list java* 既然有这个安装包,那就可以用yum进行安装了 yum install java-1.6.0-openjdk.x86_64 会首先下载,然后再安装,这其中你可能需要输入一些

阿里云ECS+Nginx+nginx_rtmp_module+FFMPEG服务器搭建过程

Nginx下安装nginx-rtmp-module+ffmpeg搭建流媒体服务器. 参考http://blog.csdn.net/redstarofsleep/article/details/45092147 阿里云环境 1. 使用SecueCRT.FlashFXP连接购买的阿里云ECS. 2. 一般购买后盘是初始化好的.第一次操作忽略这步.挂载新的盘时,可参考初始化盘https://jingyan.baidu.com/article/37bce2be0eeea01002f3a208.html

阿里云ECS搭建Java+mysql+tomcat环境的简要步骤

使用阿里云ECS挺长一段时间了.这两天碰巧朋友小白让我一步一步教他在ECS上搭建Java+mysql+tomcat环境,所以把在这里把步骤在这简单整理了一下,以便需要的人查阅. 我购买的阿里云服务器系统是Centos 6.5. 在购买好阿里云ECS后. 1.下载XShell 2.下载XFtp 3.使用XShell链接到阿里云ECS 4.以下命令在XShell中使用,也就是通过XShell控制阿里云服务器里的操作系统 [1]常用命令 pwd       查看当前目录 df -h      查看当前

阿里云ECS服务器的搭建

之前写了一个Android小项目,然后里面各种与后台数据库的交互,然后差不多完成了吧!感觉应该买一个服务器,而不是每次都是需要启动MyEclipse,启动Tomcat服务器才能够启动服务,获取到数据.那么这次就讲一下阿里云ECS服务器搭建的流程吧! 1. 去阿里云的官网购买服务器,菜单栏的"产品"-->"弹性计算"-->"云服务器ECS" 2. 进去里面购买,分为包年包月 与 按量付费 两种模式,其实价格对于学生党来说还是不算便宜的.

阿里云ECS+CentOS 7.0+Docker+Redmine环境搭建

前言 搭建Redmine环境可以选择使用分别安装Ruby+Rails+Redmine+MySQL的方式, 但是过程中需要解决各种扰人的依赖问题.Docker为我们提供的Plan B,方便,快捷. 安装环境 当然可以选择Ruby+Rails+Redmine+MySQL的安装方式,请参考: http://www.jyguagua.com/?p=2026 阿里云ECS安装 因为是实际生产需要,所以,直接购买阿里云的ECS. 安装和使用方法参考: https://bbs.aliyun.com/read/

阿里云ECS搭建SVN配置外网

阿里云ECS搭建SVN后,配置外网启动不了,检查云服务器没发现问题,后来发现是阿里云拦截,需要在阿里云控制台ECS安全组新增如下配置:

阿里云ECS搭建Kubernetes集群踩坑记

阿里云ECS搭建Kubernetes集群踩坑记 [TOC] 1. 现有环境.资源 资源 数量 规格 EIP 1 5M带宽 ECS 3 2 vCPU 16 GB内存 100G硬盘 ECS 3 2 vCPU 16 GB内存 150G硬盘 SLB 2 私网slb.s1.small 2. 规划 坑: 上网问题,因为只有一个EIP,所有其它节点只能通过代理上网; 负载均衡问题,因为阿里不支持LVS,负载均衡TCP方式后端又不支持访问负载均衡,HTTP和HTTPS方式,只支持后端协议为HTTP; 为了避免上

阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建

准备: 两台配置CentOS 7.3的阿里云ECS服务器: hadoop-2.7.3.tar.gz安装包: jdk-8u77-linux-x64.tar.gz安装包: hostname及IP的配置: 更改主机名: 由于系统为CentOS 7,可以直接使用‘hostnamectl set-hostname 主机名’来修改,修改完毕后重新shell登录或者重启服务器即可. 1 hostnamectl set-hostname master 2 exit 3 ssh [email protected]

阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建

本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里云ECS服务器:master, slave1, slave2 操作系统:CentOS 7.3 Hadoop:hadoop-2.7.3.tar.gz Java: jdk-8u77-linux-x64.tar.gz ZooKeeper: zookeeper-3.4.14.tar.gz 1.2 各节点角色