重新安装了一下最新版本的SVN,把操作过程记录下来。
1、准备材料
[root@test]# pwd
/usr/local
[root@test]# ll
-rw-r–r– 1 root root 6028951 Sep 6 19:31 httpd-2.2.6.tar.gz
-rw-r–r– 1 root root 6337805 Dec 20 17:29 subversion-1.4.6.tar.gz
-rw-r–r– 1 root root 2899269 Dec 20 17:29 subversion-deps-1.4.6.tar.gz
这些东西可以到Apache的网站上和Subversion的网站上去下载。
2、安装apache
[root@test]# pwd
/usr/local
[root@test]# tar zxvf httpd-2.2.6.tar.gz
[root@test]# cd /usr/local/httpd-2.2.6
[root@test]# ./configure –enable-dav –enable-so –prefix=/usr/local/apache2
[root@test]# make
[root@test]# make install
安装Apache比较容易,安装完之后,验证一下也可以,就是启动一下Apache看看是否安装成功。
3、安装SVN
[root@test]# pwd
/usr/local
[root@test]# tar zxvf subversion-1.4.6.tar.gz
[root@test]# tar zxvf subversion-deps-1.4.6.tar.gz
[root@test]# cd /usr/local/subversion-1.4.6
[root@test]# ./configure –with-apxs=/usr/local/apache/bin/apxs
–prefix=/usr/local/subversion –with-apr=/usr/local/apache
–with-apr-util=/usr/local/apache –with-ssl –with-zlib
–without-berkeley-db –enable-maintainer-mode
[root@test]# make
[root@test]# make install
这里面这些配置有些讲究:
- –with-apr 和 –with-apr-util
一定要加上,不然会因为版本的问题导致编译失败,deps里面的apr和apr-util是0.9.17版本和0.9.15版本的,而Apache2需要1.x版本的,所以在这里要指定他们的路径。
- –without-berkeley-db 不使用BDB来存储数据,那么就只能使用FSFS了,具体的区别去Google查一下就可以了,而且使用FSFS备份起来非常容易。
接下来验证一下,是否SVN安装成功了:
[root@test]# pwd
/usr/local/subversion/bin
[root@test]# ./svnserve –version
svnserve, version 1.4.6 (r28521)
compiled Jan 15 2008, 13:41:55
Copyright (C) 2000-2007 CollabNet.
Subversion is open source software, see http://subversion.tigris.or
This product includes software developed by CollabNet (http://www.C
The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.
4、创建SVN库
把SVN的仓库放到/var/svn/repositories目录下,在此创建一个库,名叫test
[root@test]# mkdir /var/svn/repositories
[root@test]# ./svnadmin create /var/svn/repositories/test
[root@test]# chown daemon.daemon -R /var/svn/repositories(递归式地改变指定目录及其下的所有子目录和文件的拥有者)
5、配置Apache以启动SVN服务
修改一下Apache的配置(/usr/local/apache/conf/httpd.conf):
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /var/svn/repositories
AuthzSVNAccessFile /var/svn/authz.conf
AuthType Basic
AuthName "simplelife.cn"
AuthUserFile /var/svn/authfile
Require valid-user
</Location>
注意Location里面,有三个配置的路径:
- SVNParentPath SVN仓库的上一级目录,所有的SVN仓库都在/var/svn/repositories下面
- AuthzSVNAccessFile SVN的访问权限设置,设置哪些用户可以访问哪些SVN库
- AuthUserFile 用户认证,基于Apache来验证用户名和密码
创建一个新用户:
[root@test]# pwd
/usr/local/apache/bin
[root@test]# ./htpasswd /var/svn/authfile javor
New password: ******
Re-type new password: ******
Adding password for user javor
为此用户赋予权限:
[root@test]# pwd
/var/svn/
[root@test]# more authz.conf
[/]
javor=rw
6、启动服务
其他Apache即可以启动SVN服务
[root@test]# pwd
/usr/local/apache/bin
[root@test]# ./apachectl start
浏览器访问:http://www.simplelife.cn/svn/test,注意替换中间的服务器地址为自己的服务器地址。
7、其他
- 要建多个库,在/var/svn/repositories下创建就可以了,通过更改URL后面的库名就可以访问
- 要备份库,直接将/var/svn/repositories下对应的文件夹打包就可以了,这就是使用fsfs的好处