CentOS SVN安裝與配置 (RHEL5.4平台測試通過)
Yum install httpd httpd-devel subversion subversion-devel mod_dav_svn
mod_auth_mysql
第一步:安裝apache subversion
yum install httpd
yum install httpd-devel //用于開發Apache子產品
yum install subversion
yum install mod_dav_svn //Subversion與Apache之間的接口(通過它,Apache就可以通路版本庫,可以讓用戶端也使用HTTP的擴充協定 WebDAV/DeltaV進行通路)
yum install mod_auth_mysql //這一項用于使用者身份驗證,在網上有資料說貌似這個mod_auth_mysql沒得配置通路權限的隻有使用者設定,建議不裝,用htpasswd就可以,在這裡我沒有裝,我還是打算用htpasswd,可能下回會試試。
驗證svn子產品(mod_dav_svn)是否正确安裝
ls /etc/httpd/modules | grep svn
系統提示:
mod_authz_svn.so
mod_dav_svn.so
驗證安裝:
svn --version
第二步:建立SVN庫和項目
mkdir /home/svn //建立SVN庫
svnadmin create /home/svn/projcet //建立項目
第三步:添加組及組員權限
groupadd subversion //建立一個叫subversion的組為擁有倉庫所在的目錄
usermod -G subversion -a apache //将自己和Apache 使用者加入組成員中
檢視:more /etc/group | grep subversion
系統提示:subversion:x:500:apache
第四步:修改項目權限
chgrp -R subversion /home/svn/project
chmod -R 777 /home/svn/project
這裡最好根據自己的安全需求配置相應的權限,我這是試驗環境是以直接給了777
第五步:配置httpd
編輯httpd.conf
vim /etc/httpd/conf/httpd.conf
檢視有沒有LoadModule dav_svn_module modules/mod_dav_svn.so這一行,如果沒有就添加上為了使用戶端能夠通過Apache來通路SVN檔案庫,Apache需要加載 mod_dav_svn子產品。如果Apache是按照與預設目 錄安裝的,mod_dav_svn 子產品應該會安裝在 Apache 安裝位置 (預設路徑是 /etc/httpd/) 的 modules 子目錄内。同時在Apache的配置檔案httpd.conf(預設路徑為etc/httpd/conf/)中已經使用 LoadModule指令加載了該子產品(如果沒有,手動添加)注意這個指令必須出現在其它的 Subversion 相關指令之前。還要加載mod_authz_svn.so子產品
例如:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
一般來說apache2都己正常加載了這兩個子產品
啟動httpd
/etc/init.d/httpd start
打開浏覽器檢視是否能看到apache的頁面(注意如果開了防火牆記得開放80端口)
第六步:配置SVN
編輯subversion.conf
vim /etc/httpd/conf.d/subversion.conf
按以下代碼更改(栗紅為修改的代碼):
<Location /svn>
DAV svn
SVNParentPath /home/svn
#
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for password protection.
# # SSLRequireSSL
AuthType Basic
AuthName "Authorization Realm"
AuthzSVNAccessFile /home/svn/project/conf/authz
AuthUserFile /home/svn/passwd
Require valid-user
# </LimitExcept>
</Location>
針對不同使用者給予不同權限:
# vim /home/svn/project/conf/authz 添加如下内容:
[groups]
g_vip = admin,vip01,vip02
g_manager = user01,user02,user03
g_developer = user04,user05,user06
g_Tester = user07,user08,user09
g_docs = user10
[/]
* = r
@g_manager = rw
@g_vip = rw
dangerman =
[/require_document]
@g_docs = rw
* =
[/develope]
@g_developer = rw
[/test1]
@g_Tester = rw
第七步:建立使用者
# htpasswd -c /home/svn/passwd test //第一次添加使用者使用參數“-c”以後再添加就不用了
New password: //輸入新密碼
Re-type new password: //确認密碼
Adding password for user test
重新開機apache
通過web頁面通路,彈出使用者登入驗證,通路成功 (注意開放防火牆的3690端口)
Trouble_shooting:
通路報錯如下:
通路位址不正确,正确的位址為:
<a href="http://192.168.1.241/svn/stuff" target="_blank">http://192.168.1.241/svn/stuff</a>
本文轉自vcdog 51CTO部落格,原文連結:http://blog.51cto.com/255361/837695,如需轉載請自行聯系原作者