重新安裝了一下最新版本的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的好處