軟體版本:subversion1.2.3 和apache-server 2.0.55
Linux下Subversion+apache伺服器配置
一.安裝伺服器端
1.環境工具說明:
伺服器linux環境;apache,httpd-2.0.58.tar.gz;subversion-1.3.1.tar.gz
2.安裝apache
#tar zxvf httpd-2.0.58.tar.gz
#cd httpd-2.0.58
#./configure --enable-dav --enable-so --enable-maintainer-mode tips:一定要寫—enable-dav,否則安裝時候會漏掉需要的配置包
#make
#make install
此時會産生/usr/local/apache2目錄
tips:此時運作apache,之後安裝svn後可以自動加載子產品。
運作apache,到apache2的bin目錄下
#apachetl start
3.安裝subversion
#tar zxvf subversion-1.1.1.tar.gz
#./configure --with-apxs=/usr/local/apache2/bin/apxs
#make
#make install
此時會自動在/usr/local/apache2/conf/httpd.conf添加
LoadModule dav_svn_module modules/mod_dav_svn.so
如果沒有就手工添加。
4.檢查
在伺服器web上輸入http://localhost看是否出現apache的測試頁面,如果出現apache就是正常工作。
運作svnserver --version确認版本,如果正常則sub運作正常。
二.建立倉庫
Subversion 的檔案庫是個中央倉儲, 用來存放任意數量項目的受版本控管資料,建立方法很簡單
#svnadmin create path/to/repos
舉個例子:#svnadmin create /home/mysvn
三.整合apache和subversion
Subversion伺服器有兩種運作方式,一是可以作為Apache 2.0的一個子產品,以WebDAV/DeltaV協定與外界連通;另外,也可使用Subversion 自帶的小型伺服器程式svnserve。
以http方式運作
在/usr/local/apache2/conf/httpd.conf中加入:
<Location /svn/repository>
DAV svn
SVNPath /home/mysvn
</Location>
在伺服器的浏覽器中輸入網址: http://localhost/svn/repository/
這時候,你會看到reversion0的界面,說明倉庫就已經可以工作了。
tips:此時如果不能看到,請小心檢查以上幾步,如果都正确,請檢查自己的httpd.conf配置檔案,其中檢查apache調用svn的端口是否占用,因為linux自帶的web服務占用的是80端口,而apache預設調用的也是80端口。
四.使用者添加以及權限設定
1.使用者添加:
因為subversion跟apache整合在一起,是以使用者添加管理和權限設定都是apache的任務。
進入/urs/local/apaceh2/bin,添加使用者
# ### 第一次: 以 -c 建立檔案
# htpasswd -c /etc/svn-auth-file harry
New password: *****
Re-type new password: *****
Adding password for user harry
# htpasswd /etc/svn-auth-file sally
New password: *******
Re-type new password: *******
Adding password for user sally
#
2.使用者權限添加
在/usr/local/apache2/conf/httpd.conf的加入:
<Location /svn/repository >
DAV svn
SVNPath /home/mycvs
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>
重新啟動 Apache後,如果有人要通路SVN伺服器,系統會要求他輸入使用者名和密碼。 隻有輸入Sally 或Harry的使用者名和相應的密碼,才可以對檔案庫進行修改和通路。
權限設定在svn-auth-file内
比如倉庫rpo,其下有p1,p2兩個目錄,使用者有a,b
#使用者a,b隻能對rpo目錄下的目錄進行read,沒有權限write
[rpo:/]
a = r
b = r
#使用者a對p1有讀寫的功能,使用者b隻能讀
[doc:/p1]
a = rw
b = r
tips:請注意使用者會繼承上級目錄的權限。小心設定,不要互相沖突。
此時使用者登入隻需要輸入正确的使用者名和密碼即可登入,如果不能通路,看以下說明:
tips:看你的使用者是否有檢視檔案的權限,使用指令#chown –R apache.apache /path/to/file
3.使用者組和使用者組權限設定
使用者組添加如下:
[groups]
Ppc = a, b, c
Symbian = d, e, f
使用者組權限設定要在前面添加@标志,表示對組内所有成員權限一樣
[doc:/]
@symbian = r
好了,到了這裡應該伺服器可以正常運作了。