1、安装nginx(略)
2、安装apache、apache模块包、subversion
yum -y install httpd subversion mod_dav_svn
3、建立版本库主目录:
mkdir -p /data/svndatachown -R apache.apache/data/svndata
4、编写一个创建svn库的脚本
#!/bin/sh#$0:svncreate.shif [ $# -ne 1 ]; thenecho “Usage: $0 repository_name”exit 1fisudo svnadmin create --fs-type fsfs /data/svndata/${1}sudo chown -R apache:apache /data/svndata/${1}sudo chmod -R g+w /data/svndata/${1}sudo chmod g+s /data/svndata/${1}/db
注:不指定--fs-type默认也是fsfs

5、创建一个测试库并导入数据
创建
/shell/svncreate.sh svn-shopex
导入数据
svn import /data/webroot/cachebbsfile:///data/svndata/svn-shopex
6、apache配置
vim /etc/httpd/conf.d/subversion.conf
DAV svnSVNListParentPath offSVNParentPath "/data/svndata/"AuthType BasicAuthName "Subversion Authentication!"AuthzSVNAccessFile /data/svndata/authzAuthUserFile /data/svndata/passwdRequire valid-userSVNIndexXSLT "/svnindex.xsl"

注:

/data/svndata/authz 所有库用户的权限管理文件,无需单独配置每个库的conf下的文件,无需启动svn进程。

/data/svndata/passwd 用户密码管理文件(由htpasswd生成)

注意事项:
a、修改监听端口
b、确定已加载svn模块:
   [root@centos-6 svndata]# httpd -M | grep svn
    dav_svn_module (shared)
    authz_svn_module (shared)
   Syntax OK
c、SVNIndexXSLT "/svnindex.xsl" 界面美观设置,可选。如果不使用代理,直接放到svndata主目录中,即可;使用nginx代理,只需放到nginx站点目录中。
   下载资源:wget -L -r -np --user guest --password ''
d、不管是使用乌龟客户端还是WEB访问,都会产生大量日志,可以考虑关闭日志。
e、本次使用的是默认站点,如果有其它站点,可以把以上配置单独放到某个站点配置中
7、生成认证文件
htpasswd -n sndapk >>/data/svndata/passwd

   ......

8、nginx配置
配置站点:
server {    listen 80;    server_name test.cn;    location ~ \.(ico|xsl|css)$ {        root /data/webroot/svnhtml;    }    location /svn {        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-Proto https;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_pass http://127.0.0.1:8080/svn/;    }}
下载界面资源文件:
cd /data/webroot/svnhtmlwget -L -r -np --user guest --password '' http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/svnindex/
注意事项:
a、nginx默认限制上传文件不能大于1M,如果大于1M,会产生错误:”413 Request Entity Too Large“,解决:
   在http上下文中添加行并重启服务:client_max_body_size 10m;
9、权限配置
vim /data/svndata/authz
[groups]sa = sndapk,sndapk3,sndapk5devel = sndapk2,sndapk4                                                                                                                                                                         [svna:/]@sa = rw* =                                                                                                                                                                         [svn-shopex:/]@sa = rw* =#[/] #如果单独对库指定了权限会覆盖全局的权限配置#* = r
(完成)

========================================================

以下是源码安装apache、subversion

源码安装apr apr-util/usr/local/apr-1.5.0/usr/local/apr-util-1.5.3apache安装:./configure \--prefix=/usr/local/apache-2.2.26 \--enable-deflate \--enable-headers \--enable-so \--enable-rewrite \--enable-cgi \--enable-file-cache \--enable-cache \--enable-disk-cache \--enable-mem-cache \--enable-dav \--with-apr=/usr/local/apr-1.5.0/bin/apr-1-config \--with-apr-util=/usr/local/apr-util-1.5.3/bin/apu-1-configmake && make installsubversion安装:./configure \--prefix=/usr/local/svn-1.7.14 \--with-apxs=/usr/local/apache-2.2.26/bin/apxs \--with-apr=/usr/local/apr-1.5.0/bin/apr-1-config \--with-apr-util=/usr/local/apr-util-1.5.3/bin/apu-1-config \--with-zlib \--with-openssl \--without-berkeley-db问题:不实别rpm包安装的apr apr-util解决:源码安装apr apr-util,并手动指定configure: error: Subversion requires SQLite解决:sqlite官网下载最新包,然后拷贝sqllite.c到指定subversion源码目录中,安装1.8.5版本的subversion,提示 sqlite太旧,安装1.7.14解决。#配置部分同上