1. 環境:
a) 操作系統:RedHat AS5
b) http:apache httpd-2.2.16,假設httpd安裝在/opt/apache2目錄中
c) svn:subversion-1.6.0-rc2,假設svn安裝在/opt/subversion目錄中
2. 安裝apache httpd
#./configure --enable-dav --enable-so --prefix=/opt/apache2/
#./make clean && make && make install
3. 安裝svn
#./configure --prefix=/opt/subversion --with-apxs=/opt/apache2/bin/apxs --with-apr=/opt/apache2 --with-apr-util=/opt/apache2 --with-ssl --enable-maintainer-mode
#./make clean && make && make install
4. 創建svn倉庫
#/opt/subversion/bin/svnadmin create /var/svn/repos
#ls –l /var/svn/repos
可以看到創建了一些SVN的目錄和文件,則表示安裝SVN成功。
5. 導入需要進行版本控制的項目目錄
#/opt/subversion/bin/svn import /tmp/myproject file:///var/svn/repos/myproject -m "initial
import"
Adding /tmp/myproject/branches
Adding /tmp/myproject/tags
Adding /tmp/myproject/trunk
…
Committed revision 1.
其中/tmp/myproject是需要導入的項目目錄,按照約定,項目中一般需要創建branches、tags、trunk目錄
6. SVN權限控制
a) 創建用戶名和密碼文件:
#/opt/apache2/bin/htpasswd –c / var/svn/repos/authfile username
然後提示輸入密碼和確認密碼結束密碼文件的創建,如果需要追加用戶,則不需要-c參數。
b) 創建訪問控制文件:
#vi /var/svn/repos/authz.conf
輸入如下內容:
[storevm:/]
xiangqing.tan = rw
[/]
* = r
#[groups]
#svn1-developers = wooin, bao
#svn2-developers = wooin
#[svn1:/]
#@svn1-developers = rw
註釋:
[storevm:/]
xiangqing.tan = rw
表示設置storevm項目的訪問控制,其中xiangqing.tan用戶對於該項目擁有讀寫權限。
[/]
* = r
表示所有用戶對所有倉庫中的項目擁有讀權限。
#[groups]
#svn1-developers = wooin, bao
#svn2-developers = wooin
創建用戶組,創建了2個用戶組,並指定了組中的成員。
#[svn1:/]
#@svn1-developers = rw
設置用戶組的訪問控制權限。svn1-developers組對svn1項目擁有讀寫權限。
7. Apache http的SVN相關設置
在httpd.conf文件中加入如下內容:
# Needed to do Subversion Apache server.
LoadModule dav_svn_module modules/mod_dav_svn.so
# Only needed if you decide to do "per-directory" access control.
LoadModule authz_svn_module modules/mod_authz_svn.so
#
# Example location directive.
#
<Location /svn>
DAV svn
SVNPath /var/svn/repos/
#
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for password protection.
# # SSLRequireSSL
#
AuthzSVNAccessFile /var/svn/repos/authz.conf
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /var/svn/repos/authfile
Require valid-user
# </LimitExcept>
</Location>
註釋:
<Location /svn>設置了瀏覽器訪問的上下文路徑,例如可以通過http://localhost/svn訪問SVN倉庫。
SVNPath /var/svn/repos/設置了SVN的倉庫路徑
AuthzSVNAccessFile /var/svn/repos/authz.conf設置了訪問控制權限文件的路徑
AuthUserFile /var/svn/repos/authfile設置了密碼文件的路徑
8. 啓動
#/opt/apache2/bin/apachectl –k start
9. 如果安裝都成功了,會展現如下的界面:
由於我們給SVN的訪問設置了用戶名和密碼,所以要求我們輸入用戶名和密碼。輸入成功後會顯示如下的界面
點擊鏈接,我們就能看到我們導入的項目目錄了
至此所有安裝宣告全部成功!
附件:svn的完整源代碼安裝包,包含了所有svn安裝時需要的依賴(apache httpd不包含在內,需要另行安裝)。如有需要請email我。 [email protected]