Ubuntu下搭建Apache+SVN服务

最近和朋友合作一个小项目,于是在VPS(Ubuntu 10.04 LTS 64bit)上搭建了一个Apache+SVN服务便于管理代码,记录如下。

1. 安装

  1. sudo apt-get install subversion   
  2. sudo apt-get install libapache2-svn  

2. 创建subversion用户组,并把apache运行用户www-data加入到subversion用户组中

  1. sudo addgroup subversion   
  2. sudo usermod -G subversion -a www-data  

3. 创建SVN仓库(假设文件存放在/data/svn目录下)

  1. sudo mkdir /data/svn     
  2. cd /data/svn     
  3. sudo mkdir myproject     
  4. sudo chown -R root:subversion myproject  # 让目录属于subversion组     
  5. sudo svnadmin create /home/svn/myproject # 创建SVN仓库   
  6. sudo chmod -R g+rws myproject            # 赋予subversion组权限   

4. 配置apache服务,加入下面的配置/etc/apache2/mods-available/dav_svn.conf中

  1. <Location /svn/myproject>   
  2. DAV svn   
  3. SVNPath /data/svn/myproject   
  4. AuthType Basic   
  5. AuthName "myproject subversion repository"  
  6. AuthUserFile /etc/subversion/passwd   
  7. Require valid-user   
  8. </Location>   

5. 创建/etc/subversion/passwd文件

  1. sudo htpasswd -c /etc/subversion/passwd user_name   
  2. sudo htpasswd /etc/subversion/passwd other_user_name  

系统会提示输入密码,-c选项表示创建新的/etc/subversion/passwd文件,没有-c选项表示加入新用户到已有的/etc/subversion/passwd文件

6. 重启apache,通过http://hostname/svn/myproject就可以访问SVN了

  1. sudo /etc/init.d/apache2 restart  

7. 给apache配置SSL,请参考

SSLEngine on
SSLProtocol all -SSLv2 //只允许SSLv3和TLSv1,SSLv2有缺陷禁止掉
SSLCipherSuite RSA:DH:DSS:!EXP:!NULL:!ADH:!EDH:!LOW:!RC4:!MD5:HIGH:MEDIUM //最终的结果就是Key Exchange=RSA/DH,Authentication=RSA/DSS,Cipher Encoding=AES(128/256)/3DES(168),MAC Digest=SHA1
SSLCertificateFile /etc/ssl/certs/nnlm.cer //CA颁发的证书
SSLCertificateKeyFile /etc/ssl/private/nnlm.key //证书的私钥
SSLCertificateChainFile /etc/ssl/certs/chain.cer //证书链,所有的证书链全部写到一个文件里面

相关推荐