2015/09/05

ubuntu下搭建svn


第一部分:svn

1.安装svn

apt-get install subversion

2.搭建svn仓库

mkdir /home/svn

mkdir /home/svn/demop

svnadmin create /home/svn/demop

3.启动svn

svnserve -d -r /home/svn

4.测试检出

svn co svn://192.168.247.131/demop test

第二部分:http

1.安装apache2

apt-get install apache2
apt-get install libapache2-svn
apt-get install apache2-utils

2.检查apache2是否已安装

访问:http://ip

3.编辑:etc/apache2/mods-available/dav_svn.conf

<Location /svn >
DAV svn
SVNParentPath /home/svn
SVNListParentPath On
AuthType Basic
AuthName "welcome to hitu subversion repository"
AuthUserFile /home/svn/passwd
AuthzSVNAccessFile /home/svn/authz.conf
Require valid-user
#SSLRequireSSL #配置访问时,需经过ssl验证,既走https模式,屏蔽http
</Location>
描述
Location /svn 意思是Subversion版本可用的URL是http://域名或IP/svn
DAV SVN 告诉Apache是哪个模块响应哪个URL的请求,在这里是Subversion模块
SVNParentPath /home/svn 告诉Subversion需要查看的版本库在/home/svn之下。如果不希望为每个单独的项目都进行单独的设置,可以把所有项目都存放在统一的资源库目录,使用SVNParentPath指令来指定存放所有项目的路径。否则使用SVNPath
SVNPath 单版本库时使用此项指明版本库的路径,但在多版本库中不要使用此项
AuthType Basic 认证类型为基本认证,就是用户名和密码
AuthName "Subversion repository" 认证名称,将在浏览器界面弹出一个对话框,标题为Subversion repository
AuthUserFile 指定使用的认证密码文件,即访问版本库用户的文件,用apache的htpasswd命令生成
AuthzSVNAccessFile 设定访问版本库权限的文件,可选
Require 要求验证用户,即不能匿名访问。如果没有该语句,则只能第一个用户可以访问新建库此外,SVNIndexXSLT “/svnindex.xsl” 使用它可以在用浏览器时更好看

编辑:etc/apache2/apache2.conf

最后添加:
ServerName 80

4.添加用户密码权限

htpasswd -c /home/svn/passwd 用户名 //第一次设置用户时使用-c表示新建一个用户文件,之后取消-c.回车后输入用户密码

5.添加访问权限

vi /home/svn/authz.conf

#组
[groups]
admin = yangxg
test = de,te

#svn库权限读写分配
[demop:/]
@admin = rw
@test = r

6.设置版本库访问权限

chmod -R o+rw /home/svn

7.重启apache2

/etc/init.d/apached2 restart

8.访问测试

http://ip/svn/demop

注意:第一部分第3步启动svn,现在可以关闭kill掉,无需启动,在apache2里dav_svn.conf已经配置了访问会走DAV svn模块进行

第三部分:生成sslkey

进入目录:/home/sslkey

1,生成RSA密钥的方法:

openssl genrsa -des3 -out privkey.pem 2048

这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码,如果你不想要每次都输入密码,可以改成:

openssl genrsa -out privkey.pem 2048

建议用2048位密钥,少于此可能会不安全或很快将不安全。

2,生成一个证书请求:

openssl req -new -key privkey.pem -out cert.csr

这个命令将会生成一个证书请求,当然,用到了前面生成的密钥privkey.pem文件 这里将生成一个新的文件cert.csr,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA) 申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。

3,自己签名生成数字证书: 如果是自己做测试,那么证书的申请机构和颁发机构都是自己。就可以用下面这个命令来生成证书:

openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095

这个命令将用上面生成的密钥privkey.pem生成一个数字证书cacert.pem

第四部分:搭建https

1.编辑:etc/apache2/mods-available/dav_svn.conf

开启 SSLRequireSSL
SSLRequireSSL #配置访问时,需经过ssl验证,既走https模式,屏蔽http

2.开启apached2 ssl模块

a)开启SSL模块

a2enmod ssl

b)启用SSL站点

a2ensite default-ssl

e)配置SSL证书 vi /etc/apache2/sites-enabled/default-ssl

把SSLCertificateFile,SSLCertificateKeyFile修改为第三部生成的ssl key

SSLCertificateFile    /home/sslkey/cacert.pem #数字证书文件放置路径
SSLCertificateKeyFile /home/sslkey/privkey.key #私钥文件放置路径

3.重启apache2

/etc/init.d/apached2 restart

8.访问测试

http://ip/svn/demop
https://ip/svn/demop

sdfasdfsadf

class aa():
    self=dd
    return