基于源码的安装一开始搞得我还是有点复杂的,不过问题也都是解决了,下面来贴一下源码安装apache+svn的步骤:
一、安装apache
1、下载apache源码包,这里的是httpd-2.2.23.tar.gz
2、下载apache依赖包,apr-1.2.12 apr-util-1.2.12
3、安装依赖包:
   安装apr 
  # tar -zxvf apr-1.2.12.tar.gz
  # cd apr-1.2.12
  # ./confiugre --prefix=/usr/local/apr
  # make&&make install
  安装apr-util
  # tar -zxvf apr-util-1.2.12.tar.gz
  # cd apr-util-1.2.12
  # ./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util
  # make&&make install
4、安装apache
   # tar -zxvf httpd-2.2.23.tar.gz
   # cd httpd-2.2.23
   ./configure --prefix=/usr/local/apache2
   --with-apr=/usr/local/apr/bin/apr-1-config
   --with-apr-util=/usr/local/apr/bin/apu-1-config
   --enable-modules=so
   --enable-dav
   --enable-maintainer-mode
   --enable-rewrite
   # make&&make install
启动apache
   # /usr/local/apache2/bin/apachect1 -k start
浏览器查看,显示it works,apache安装成功。
二、安装svn
   下载源码包 subversion-1.4.5.tar.gz subversion-deps-1.4.5.tar.gz
  # tar –zvxf subversion-1.4.5.tar.gz
  # tar –zvxf subversion-deps-1.4.5.tar.gz /*这两个自动解压成一个subversion-1.4.5
  # cd subversion-1.4.5
  # rm –rf apr
  # rm -rf apr-util
  # ./configure
        --prefix=/usr/local/svn
        --with-apxs=/usr/local/apache/bin/apxs
        --with-apr=/usr/local/apr/bin/apr-1-config
        --with-apr-util=/usr/local/apr-util/bin/apu-1-config
        --with-ssl
        --with-zlib
        --enable-maintainer-mode
  # make
  # make install    
查看安装是否成功:
   # /usr/local/svn/bin/svnserve --version会显示版本号   
查看apache配置文件会有如下两个模块加载  
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
总结以上呢全是把各种软件包先安装好,安装这些基础没问题之后,下面开始配置svn服务器。
三、配置svn服务器
   1、新建一个目录作为版本库
   # mkdir -R /svn/svnserve/
   # /usr/local/svn/bin/svnadmin create /svn/svnserve/project
  2、初始化版本仓库
   # mkdir project project/server project/client project/test (建立临时目录)
   # svn import project/ file:///home/svn/project -m “初始化SVN目录”
   # rm -rf project (删除临时建立的目录)
  3、添加用户(注:这里的添加用户是为测试svn服务器本身,结合apache后面介绍)
  svn用户添加非常简单,在/svn/svnserve/project/conf/passwd这个文件里面加入就行,格式如下:
  [users]
  # harry = harryssecret
  # sally = sallyssecret
  zml = zml
  admin = admin(你想用几个用户就加几个)
  4、修改用户的访问权限
  在/svn/svnserve/project/conf/authz文件里修改如下:
  [groups]
  # harry_and_sally = harry,sally

  # [/foo/bar]
  # harry = rw
  # * =

  # [repository:/baz/fuz]
  # @harry_and_sally = rw
  # * = r
  zml = zml
  [/]
  @zml=rw
  *=
  5、修改svnserve.conf文件,,
  [general]
  anon-access = none
  auth-access = write
  password-db = /svn/svnserve/project/conf/passwd
  authz-db = /svn/svnserve/project/conf/authz
  6、现在启动svn服务器
  # /usr/local/svn/bin/svnserve -d -r /svn/svnserve/
  7、测试一下
  # svn co svn://172.16.1.218/project
   Authentication realm: <svn://192.168.60.10:3690>    92731041-2dae-4c23-97fd-9e1ed7f0d18d
   Password for ‘root’:
   Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
   Username: zml
   Password for ‘zml’:
A    project/test
A    project/server
A    project/client
Checked out revision 1.  ( 测试提取成功 )

  # cd project/server
  # vim main.c
  # svn add main.c
  # svn commit main.c -m “测试一下”
Adding         main.c
Transmitting file data .
Committed revision 2.  ( 测试提交成功 )
以上呢就证明了svn服务器是成功的,那么现在要把它与apache结合到一块
四、配置svn的apache的支持
    那么对于http的支持这里有两种方法,一种是用svn的passwd文件,一种是http生成用户文件
先介绍用svn的passwd文件,
    1、转换SVN服务器的密码
由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。网上找了个脚本
脚本内容如下:
# cd /svn/svnserve/project/conf/
# vim PtoWP.pl

#!/usr/bin/perl
# write by huabo, 2009-11-20

use warnings;
use strict;

#open the svn passwd file
open (FILE, "passwd") or die ("Cannot open the passwd file!!!n");

#clear the apache passwd file
open (OUT_FILE, ">webpasswd") or die ("Cannot open the webpasswd file!!!n");
close (OUT_FILE);

#begin
foreach (<FILE>) {
if($_ =~ m/^[^#].*=/) {
$_ =~ s/=//;
`htpasswd -b webpasswd $_`;
}
}

# chmod +x PtoWP.pl
# ./PtoWP.pl
Adding password for user pm
现在目录下会多一个webpasswd文件
   2、修改httpd.conf,添加关于SVN服务器的内容
编辑/usr/local/apache2/conf/httpd.conf,在最后添加如下信息:

   <Location /project>
   DAV svn
   SVNPath /svn/svnserve/project/
   AuthType Basic
   AuthName "svn for project"
   AuthUserFile /svn/svnserve/project/conf/webpasswd
   AuthzSVNAccessFile /svn/svnserve/project/conf/authz
   Satisfy all
   Require valid-user
</Location>
   现在这样就已经完成了,可以用浏览器访问http://172.16.1.218/project/
   如果有权限问题;
   修改svn目录的属主为apache帐号:chown -R apache.apache /svn/svnserve/project/

那还有一种方法是用apache自带的htpasswd生成用户文件如下:
   1、添加用户:
      # /usr/local/apache/bin/htpasswd –c /svn/passwd zml
       第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
       第二次添加用户不需要带 –c 参数
   2、更改httpd.conf文件
       #vi /usr/local/apache/conf/httpd.conf
        在文件末尾添加
        DAV svn
        SVNParentPath /svn/svnserve/project (此处配置你的版本库根目录) --注意这里不要svnpath
        AuthType Basic (连接类型设置 基本验证)
        AuthName "Hello welcome to here" (此处字符串内容修改为提示对话框标题)
        AuthUserFile /svn/passwd (此处修改为访问版本库用户的文件,
        用apache 的htpasswd命令生成)
        AuthzSVNAccessFile /svn/svnserve/project/conf/auth.conf (此处修改为访问版本库权限的文件)
        Require valid-user ("Require valid-user"告诉apache在authfile中所有的用户都可以访问。
        如果没有它,则只能第一个用户可以访问新建库)
        保存文件退出!
        重新启动apache
       # /usr/local/apache/bin/apachectl –k restart
       重启svn
       就可以通过 http://172.16.1.218/project 这个URL来访问仓库了