svn+apache+nginx 配置办法

因为我的服务器已经使用nginx, 但现在又需要在这个框架下搭建subversion 服务器. 在网上始终没找到在nginx 下直接配置subversion的办法. 于是曲线救国, 使用svn+apache+nginx 的方式. 大体思路是:

  • nginx获取svn的请求
  • nginx转发请求给apache
  • apache获取这个请求并处理

服务器是centOS6.4, 64bits系统. ubuntu等系统应该主要差别是安装模块的那几步.

教程基于已经完成nginx配置的条件下. 如果是全新的服务器, 连nginx都没配置的, 可以有以下两种选择:

  1. 直接使用apache,不用nginx. (方法和本文有所出入)
  2. 先配置nginx,然后再参照本文. 配置nginx的方式可以参照另一片博文:

CentOS 6.5 下, nginx基础配置教程

以下是具体怎么完成的, 教程尽量涉及细节,但可能还有所遗漏. 有什么问题可以留言哈.


STEP 1:安装apache subversion 
 


验证svn模块(mod_dav_svn)是否正确安装 

系统提示: 


mod_authz_svn.so 
mod_dav_svn.so 


验证安装: 

显示如下表明正确安装 


=================================
svn,版本 1.4.2 (r22196) 
   编译于 Aug 10 2009,18:00:04

Copyright (C) 2000-2006 CollabNet. 
Subversion is open source software, see http://subversion.tigris.org/ 
This product includes software developed by CollabNet (http://www.Collab.Net/).

可使用以下的档案库存取 (RA) 模块:

* ra_dav : 通过WebDAV (DeltaV) 协议访问档案库的模块。 
  – handles 'http' scheme 
  – handles 'https' scheme 
* ra_svn : 使用svn网络协议访问档案库的模块。 
  – handles 'svn' scheme 
* ra_local : 访问本地磁盘的档案库模块。 
  – handles 'file' scheme 
 ================================

STEP 2: 创建SVN库和项目 

STEP 3:添加组及组员权限 

系统提示:

subversion:x:500:apache

STEP 4:修改项目权限 

STEP 5: (VERY important) This step helps nginx forward all port 80 request about svn to 81 for apache.

Under the nginx config dir:


/usr/local/nginx/conf/vhost/


create a subversion.conf (any *.conf file)
Add these to the file. 

#With this setting, the repo can be accessed by code.abc.me/svn 

STEP 6: Using apache for subversion request
Edit:

/etc/httpd/conf.d/subversion.conf 

Add these to the end:

ALSO Edit the file: 

/etc/httpd/conf/httpd.conf

add this line to the file to let httpd listen to 81 port:

Listen 81

STEP 7: set up user permissions:

RUN:

Edit:

/svnRepo/repo_name/conf/svnserve.conf

make sure these lines are uncommented and correct:

Edit:

/svnRepo/repo_name/conf/authz


STEP 8: Start / Restart apache and nginx server

STEP 9: Add project dir to repo
 

#This step could also be: svnadmin load xxx.dump

 
STEP 10: Test in web browser:


http://code.abc.me/svn