在搭建之前先准备好如下包,建议去apache官网去下载:http://httpd.apache.org/
apr-1.4.6.tar.gz
apr-util-1.4.1.tar.gz
httpd-2.2.16.tar.gz
openssl-1.0.0a.tar.gz
subversion-1.6.1.tar.gz
subversion-deps-1.6.1.tar.gz
neon-0.30.1.tar.gz
expat-2.1.1.tar.bz2
以上所有的压缩包下载下来之后,建议统一放在一个目录,例如我是放在:/home/svn_apachetool
搭建的流程是:先安装httpd,然后再安装subversion,然后再进行配置,具体按照如下步骤进行
一、安装apr-1.4.6.tar.gz
#tar -zvxf apr-1.4.6.tar.gz
#cd apr-1.4.6
#./configure --prefix=/usr/local/apr
#make && make install
二、安装apr-util-1.4.1.tar.gz
#tar -zvxf apr-util-1.4.1.tar.gz
#cd apr-util-1.4.1
#./configure --with-apr=/usr/local/apr/
#make && make install
三、安装httpd-2.2.16.tar.gz
#tar -zvxf httpd-2.2.16.tar.gz
#cd httpd-2.2.16
#./configure --prefix=/usr/local/apache --enable-dav --enable-so --enable-headers --enable-expires --enable-mods-shared=all --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config
#make && make install
安装好后启动apache服务:
# /usr/local/apache/bin/apachectl –k start
用浏览器查看http://localhost/,如果显示it works,说明apache已经配置成功了。
四、安装subversion-1.6.1
1. 首先安装openssl-1.0.0a.tar.gz
#tar -zxvf openssl-1.0.0a.tar.gz
#cd opennssl-1.0.01a
#./config --prefix=/usr/local/ssl
#./config -t
#make depend
#make && make install
2. 解压subversion-1.6.1.tar.gz和ssubversion-deps-1.6.1.tar.gz到同一个目录下。
#tar zxvf subversion-1.6.1.tar.gz
#tar zxvf subversion-deps-1.6.1.tar.gz
3. 替换subversion中的neon,并安装。
#tar -zxvf neon-0.30.1.tar.gz
#mv neon-0.30.1.tar.gz neon
#cd subversion-1.6.1
#rm -rf neon
#cp -r .../neon ./
#cd neon
#./configure
#make && make install
4. 删除subversion1.6.1中的apr和apr-util目录
#cd subversion-1.6.1
#rm -rf apr
#rm -rf apr-util
5. 编译和安装subversion1.6.1中的zlib
#cd ./subversion-1.6.1/zlib
#./configure
#make && make install
6. 安装expat-2.1.1.tar.bz2
#tar zxvf expat-2.1.1.tar.bz2
#cd expat-2.0.1
#./configure
#make && make install
7. 配置和编译subversion1.6.1
#./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/bin/apu-1-config --with-openssl=/usr/local/ssl --with-zlib=/home/svn_apachetool/subversion-1.6.1/zlib/ --enable-maintianer-mode
#make && make install
8.建立和导入版本库
[root@localhost /]# cd /usr/local/subversion/bin/
[root@localhost bin]# mkdir /repo
[root@localhost bin]# ./svnadmin create --fs-type fsfs /repo/te
[root@localhost bin]# ls /repo/te/
//如果ls /repo/te/ 出现了下面的内容,就说明subversion安装成功了.
conf dav db format hooks locks README.txt
导入版本库
[root@localhost bin]# ./svn import /root/test/ file:///repo/te/ -m "initial import"
提交后的修订版为 1。
9.修改目录权限
[root@localhost bin]# cd /repo/te/
[root@localhost te]# chmod -R 777 *
10.修改Apache的配置文件
1).打开vim /usr/local/apache/conf/httpd.conf文件
2).修改httpd.conf文件,在文件的最后添加下面几行
<Location /svn>
DAV svn
SVNParentPath /repo
</Location>
3).保存退出
上面指定的是,SVN不需要权限,即任何匿名用户都可以访问、修改、提交
在实际使用当中,需要有权限控制才行,因此,配置文件需要如下详细配置:
进入cd /usr/local/apache/bin 目录,建立用户组和用户文件 当然也可以是在其它文件夹
建立用户组文件:
# touch authz
在authz文件中写入如下内容,下面代码说明用户组admin有lyd,zzq两个用户,admin组对[/]表示根目录具有读写权限 r代表读 w代表写:
[groups]
admin = lyd,zzq
[/]
@admin = rw
创建用户,这里的用户需要在上面的用户组里面,才能有相应的权限:
htpasswd -cm pwd.txt lyd 第一次创建,加上 -cm 参数,需要创建用户文件pwd.txt,当然你也可以用别名字或后缀名
htpasswd pwd.txt zzq 第二次创建,因为第一次已经创建了用户文件,所以只需要在用户文件中直接添加用户即可
修改apache/conf/httpd.conf文件,在最后添加下面代码,指定SVN的版本库位置及刚才创建的,权限需要使用的文件
<Location /svn>
DAV svn
SVNParentPath /repo/
AuthzSVNAccessFile /usr/local/apache/bin/authz
AuthType Basic
AuthName "Subversion.TOM"
AuthUserFile /usr/local/apache/bin/pwd.txt
Require valid-user
</Location>
11.重启apache服务.
[root@localhost bin]# cd /usr/local/apache/bin/
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start
或者直接 restart
起动SVN
/usr/local/subversion/bin/svnserve -d -r /repo
12.测试
在window下,检出项目,如下:
点击ok,输入用户名和密码,如果可以检出成功,到此搭建完毕