CentOS 簡單安裝配置svn伺服器
之前的svn倉庫都是頭頭們配置好,我就直接使用的,基本上就checkout,update,commit,偶爾show log找回以前的版本一下,今天我就自己簡單配置一個svn伺服器用一下,我準備已apache+svn的方式來進行安裝,我的linux是CentOS 5.4版本的,預設並沒有安裝subversion的程式,所以先安裝subversion的程式,在系統鏡像光碟片裡面都有提供rpm安裝包
#rpm -ivh subversion-1.4.2-4.el5_3.1.i386.rpm 或者 yum install subversion
安裝好了即可。因為apache+svn的話要安裝兩個模組,
vi /etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
第一個是用於管理svn,第二個是許可權控制的。此處安裝apache的時候預設並沒有安裝這兩個模組,不過這兩個模組的安裝包也已經在光碟片裡面了
#rpm -ivh mod_dav_svn-1.4.2-4.el5_3.1.i386.rpm 或者 yum install mod_dav_svn
安裝完此rpm包之後,那兩個模組就已經安裝好了,下面我們就要對dav_svn模組進行一定的配置了,我們web伺服器的目錄是 /var/www/html ,所以我們就按設定檔推薦的,在/var/www/ 下建立 repos 目錄作為svn倉儲的主目錄。
#mkdir /var/www/repos
下面就要對 /etc/httpd/conf.d/subversion.conf進行配置了,當然,不同系統目錄也是不同的。將其中的Location部分修改如下,注意其中注釋部分不要去掉,如果去掉了則是要通過SSL方式來訪問的,這個部分我下次
再進行配置。
vi /etc/httpd/conf.d/subversion.conf
<Location /repos>
DAV svn
SVNParentPath /var/www/repos
# 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"
AuthUserFile /var/www/repos/passwd
Require valid-user
#</LimitExcept>
</Location>
選項的釋義比較簡單,不懂的可以查看手冊等。上述配置中我將使用者驗證檔案設定了在repos下的passwd檔案,那麼我們現在就去建立這個檔案。
#cd /var/www/repos
#htpasswd -c passwd test //此處 -c表示建立passwd檔案,後面test是使用者名稱,表示添加test使用者
//檔案建立後,下次添加使用者無需 -c選項
此時系統會要求提示密碼,輸入密碼即可。此時passwd中就儲存了test使用者的資訊,我們還要對此檔案進行修改,要在其中加入許可權控制。樣本如下:
vi passwd
test:Id/c3Q6Mz
[groups]
Admin=test,test1
Develop=test2
[/]
test=rw
test1=rw
@Develop=r
其中groups表示組名=使用者名稱,[/]表示倉庫的根目錄下的使用者權限,此處test和test1具有讀寫權限,而@Develop表示該群組成員的許可權,此處是讀許可權。因為svn倉庫的系統管理權限要交給apache,所以這裡我們將此檔案夾的屬主交給apache
#chown -R apache.apache /var/www/repos
若有的使用者的http.conf中User和Group都是daemon使用者的,需要都改成apache,然後我們重啟apache伺服器
#service httpd restart
現在我們來建立我們的第一個倉庫,
#cd /var/www/repos
#svnadmin create myrepos
此時myrepos倉儲就建立好了,我們可以通過http://localhost/repos/myrepos訪問試試,會提示輸入使用者名稱密碼,用我們建立的test使用者即可,然後我們在本地就可以通過svn用戶端進行各種操作了,如果提示沒有commit許可權的話,記得看看倉儲的屬主是否apache使用者,ok,這次配置就到這裡了,下次來配置ssl的訪問。