)Linux(RedHat AS4)下架設subversion(svn)伺服器

來源:互聯網
上載者:User

本文有部分內容是對我之前寫的Redhat5下安裝Apache2與Subversion1.6.15的補充。

1.介紹通過原始碼編譯的方式來安裝Subversion

我們需要兩個檔案,http和subversion。httpd是web伺服器,用來通過web訪問 subversion。我本人用的是httpd-2.2.6和subversion-1.4.5,它們的是:
a.下載httpd-2.2.6.tar.gz
http://httpd.apache.org/
b.下載subversion-1.4.6.tar.gz
http://subversion.tigris.org/
2.建立一個使用者:svnroot
最好不要讓root使用者參與到svn的許可權管理和日常的運行和維護工作中來,但是有一些安裝和配置操作還是需要root使用者來完成的,因為有些操作只有 root才能做。許可權問題很重要。(如果許可權不對,會讓你鬱悶很久的,哈哈。)
3.編譯安裝httpd (root使用者操作):
# tar xvzf httpd-2.2.6.tar.gz
# cd httpd-2.2.6
# ./configure --enable-dav --enable-so
--enable-mods-shared=all
--prefix=/usr/local/apache2
# make
# make install
編輯設定檔httpd.conf
# vi /usr/local/apache2/conf/httpd.conf
修改內容:
ServerName www.example.com:80 為
ServerName localhost:80或者Apache伺服器的IP
安裝完成並修改後,啟動apache進程:/usr/local/apache2/bin/apachectl start(或者在/usr/local/apache2/bin/下,用./httpd –k start),然後開啟瀏覽器
http://localhost/
,如果有測試頁"It works!"出現,則證明已經安裝成功。
4.下面安裝Subversion
# tar xvzf subversion-1.4.5.tar.gz
# cd subversion-1.4.5
# ./configure --with-apxs=/usr/local/apache2/bin/apxs
--prefix=/usr/local/subversion --with-apr=/usr/local/apache2
--with-apr-util=/usr/local/apache2 --with-ssl --with-zlib
--enable-maintainer-mode
# make
# make install
//建立庫檔案所在的目錄 (要svnroot使用者進行下面的操作)
# mkdir /home/svnroot/repository
//進入subversion的bin目錄
# cd /usr/local/subversion/bin
//建立"test"倉庫
# ./svnadmin create /home/svnroot/repository/test
//進入到資料倉儲"test"目錄
# cd /home/svnroot/repository/test
//看看是不是多了些檔案,如果是則說明Subversion安裝成功了
# ls –l
//不讓其他人有該目錄的許可權
# chmod 700 /home/svnroot/repository
//**注意,直接這麼chmod會導致svn用戶端無法訪問,需要修改apache配置文
件httpd.conf檔案:
User daemon //將daemon改為svnroot,讓apache進程以svnroot的身份運行
Group daemon
//把上述內容改成:
User svnroot
Group svnroot

//修改svn倉庫的所有者
# chown -R svnroot: svnroot /home/svnroot/repository
//修改該目錄許可權只能svnroot擁有
# chmod 700 /home/svnroot/repository

5. 修改Apache設定檔
# cd /usr/local/apadche2/bin
# ./apachect1 stop //停止Apache進程
vi /usr/local/apache2/conf/httpd.conf
//在最下面添加 ,如果你的裡面沒有這兩個模組的話
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

DAV svn
SVNParentPath /home/svnroot/repository/ //svn父目錄
AuthzSVNAccessFile /home/svnroot/repository/authz.conf //許可權設定檔
AuthType Basic //連線類型設定
AuthName "clo.com.cn" //串連框提示
AuthUserFile /home/svnroot/repository/authfile //使用者設定檔
Require valid-user //採用何種認證
//其中authfile是通過"htpasswd [–c] /home/svnroot/repository/authfile username password"來建立的 , username指的是使用者svnroot,密碼也是他的。
//"Require valid-user"告訴apache在authfile中所有的使用者都可以訪問。如果沒有它,則只能第一個使用者可以訪問建立庫
//啟動apache服務
# /usr/local/apache2/bin/apachectl start
//開啟瀏覽器訪問
http://localhost/svn/test/
,如果有東西顯示就說明成功。
6. 許可權管理(即authz.conf的配置)
1)增加使用者
# htpasswd [-c] /home/svnroot/repository/authfile user1
//第一次設定使用者時使用-c表示建立一個使用者檔案。斷行符號後輸入使用者密碼,完成對使用者的增加,此時是要用root的許可權來添加的,添加完後在 authfile中看到使用者和加密的密碼。
# htpasswd /home/svnroot/repository/authfile 使用者名稱(加入新的使用者)
//如:"htpasswd /home/svnroot/repository/authfile user2"
2)許可權分配(可以根據自己的情況來處理,也可看網上的)
# vi /home/svnroot/repository/authz.conf
[groups] //這個表示群組設定
Tester = test,svnroot,nbj,user1,user2 //這個表示某群組裡的成員
#anonymous = guest
[test:/] //這表示,倉庫test的根目錄下的存取權限
@Tester = rw //test倉庫Tseter組中使用者具有讀和寫入權限
* = r //test倉庫中所有使用者具有讀的許可權
[document:/] //這表示,倉庫document的根目錄下的存取權限
@Tester = rw //test倉庫Tseter組中使用者具有讀和寫入權限
#@anonymous = r
* = r //test倉庫中所有使用者具有讀的許可權
//注意:在編輯authz.conf檔案時,所有行都必須要頂頭寫,不能有縮行出現,否則會報錯:"Access denied: 'user1' "。
7. 重啟apache進程
將第6步設定完成後,重啟Apache,
# /usr/local/apache2/bin/apachectl restart
就可以通過 
http://localhost/svn/test
或http://localhost/svn/document
這個URL來訪問倉庫了,當然,受許可權的限制,必須是合法使用者才
能訪問且具有相應的許可權。
8. 備忘:
1).在svn使用過程中牽扯到幾種許可權:檔案系統的許可權,linux系統許可權,svn使用者的許可權,apache進程的許可權。檔案系統的許可權,linux
系統許可權:這裡相同的意思,就是平時大家使用linux時檔案夾和檔案的存取權限。在
svn建立倉庫,檔案夾,設定檔的時候用svnroot使用者,並將倉庫使用權限設定為700,不允許其他使用者直接通過
檔案系統查看,只能由svnroot進行管理。apache進程的許可權:因為所有跟倉庫傳輸的操作都是通過apache進程進行的,所以即使你給svn用
戶設定了 很大的許可權,但是apache進程沒有訪問倉庫或者相關檔案的許可權也沒有用,apache進程的使用權限設定在
/usr/local/apache/conf/httpd.conf 檔案中配置,找到檔案中的這兩行:
User daemon # 將daemon改為svnroot,讓apache進程以svnroot的身份運行
Group daemon
svn使用者的許可權:就是在authz.conf檔案中設定的許可權資訊,是svn用來管理倉庫存取權限的。
2).設定啟動系統後,自啟動Apache服務
編輯etc/rc.d/rc.local
# vi /etc/rc.d/rc.local
在最後加上一句: /usr/local/apache2/bin/apachectl start
9. 用戶端TortoiseSVN的安裝
我使用的用戶端是TortoiseSVN-1.5.0.12222-alpha1-win32-svn-1.5.0-alpha2和 LanguagePack_1.5.0.12222-alpha1-win32-zh_CN,其使用方法可以見文檔:
http://www.subversion.org.cn/tsvndoc/

直接安裝,重啟電腦,就OK了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.