1. 安装apache
pcre apr apr-util安装略
cd /usr/local/
wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.6.tar.bz2
tar zxf httpd-2.4.6.tar.bz2
cd /usr/local/httpd-2.4.6
./configure --prefix=/usr/local/apache2 --enable-dav --enable-so --enalbe-maintainer-mode --enable-rewrite --with-deflate --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre && make && make install && echo oK
2. 安装svn
#最新版本svn需要sqlite的版本最低为3.7.15,yum自带sqlite版本为3.7.12,所以需要手动编译安装最新版本sqlite
wget http://www.sqlite.org/2013/sqlite-autoconf-3071700.tar.gz
tar xf sqlite-autoconf-3071700.tar.gz
cd sqlite-autoconf-3071700
./configure && make && make install && echo OK
wget http://mirrors.cnnic.cn/apache/subversion/subversion-1.8.1.tar.bz2
tar subversion-1.8.1.tar.bz2
cd subversion-1.8.1
./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
make
make install
3. 在apache配置文件中加载svn模块
cp subversion-1.8.1/subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/local/apache/modules/
cp subversion-1.8.1/subversion/mod_dav_svn/.libs/mod_dav_svn.so /usr/local/apache/modules/
vim /usr/local/apache/conf/httpd.conf
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module    modules/mod_dav_svn.so
LoadModule authz_svn_module  modules/mod_authz_svn.so
注:必须要先加载mod_sav_svn再加载mod_authz_svn,否则报错
4.配置 svn+apache
1)创建svn库
   创建 svn专用户  # useradd pocsvn
   创建SVN 版本库目录  #mkdir /home/pocsvn/project
   创建SVN仓库 # svnadmin create /home/pocsvn/project/poc
   将目录 project 目录拥有者修改为 pocsvn 用户:
   #chown -R pocsvn:pocsvn /home/pocsvn/project
   #chmod 755 /home/pocsvn/project
2)配置svn依赖apache
sed -i 's/User daemon/User pocsvn/' /usr/local/apache/conf/httpd.conf
sed -i 's/Group daemon/Group pocsvn/' /usr/local/apache/conf/httpd.conf
sed -i 's/#ServerName.*/ServerName localhost/' /usr/local/apache/conf/httpd.conf
sed -i 's/you@example.com/root@localhost/' /usr/local/apache/conf/httpd.conf
vim /usr/local/apache2/conf/httpd.conf
<Location /svn>
DAV svn
SVNParentPath /home/pocsvn/project    #svn库的根目录,表示根目录下每个子目录都是一个版本库
AuthType Basic
AuthName "welcome to cjybt"      #浏览器登陆时的提示信息。随便写
AuthUserFile /home/pocsvn/project/passwd    #用户的密码信息
AuthzSVNAccessFile /home/pocsvn/project/poc/conf/authz      #指向svn库的conf目录下authz
Require valid-user      #告诉apache在authfile中所有的用户都可以访问。如果没有它,则只能第一个用户可以访问新建库
</Location>
3)生成passwd文件
htpasswd -bc /home/pocsvn/project/passwd  hello  hello123
#在/home/pocsvn/project/下生成passwd文件,用户名为hello,密码为hello123
htpasswd -b /home/pocsvn/project/passwd  hello2  hello123
#在/home/pocsvn/project/passwd文件中添加用户名为hello,密码为hello123
4)编辑用户权限文件 authz
vi /home/pocsvn/project/poc/conf/authz
[groups]          #表示群组设置
admin = hello     #表示admin群组里的成员有hello,如果要配置多个,用逗号分隔
develop = hello2  #表示develop群组里的成员有hello2,如果要配置多个,用逗号分隔
[poc:/]           #表示仓库poc的根目录下的访问权限
hello = rw        #poc仓库hello用户具有读和写权限
hello2 = r        #poc仓库hello2用户具有只读权限
@admin = rw       #表示群admin的成员都具有读写权限
@develop = r      #表示群poc的成员都具有只读权限
[/]               #表示在所有仓库的根目录下
* = r             #表示对所有的用户都具有读权限
注:在编辑authz时,所有行都必须要顶头写,不能有缩进,否则报错。
5)修改权限
chmod 644 /home/pocsvn/project/passwd
chown -R pocsvn:pocsvn  /home/pocsvn/project/passwd
6)启动apache