http協議的svn伺服器搭建(apache+subversion)

來源:互聯網
上載者:User

環境:Ubuntu10.10 Virtualbox4.02 CentOS5.5
2011/2/14 16:44
之前在Ubuntu Server上安裝過了SVN,這次試著在CentOS上裝裝看,不是都說CentOS是伺服器裡最穩定的版本嗎
之前在裝虛擬機器時沒有安裝任何 伺服器,全部的服務都從頭開始
第一步:安裝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,版本 1.4.2(r22196)
   編譯於 Aug 10 2009,18:00:04

Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet(http://www.Collab.Net/).

可使用以下的檔案庫存取 (RA) 模組:

* ra_dav : 通過WebDAV (DeltaV) 協議訪問檔案庫的模組。
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : 使用svn網路通訊協定訪問檔案庫的模組。
  - handles 'svn' scheme
* ra_local : 訪問本地磁碟的檔案庫模組。
  - handles 'file' scheme
============================================
第 二步:建立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
查看有沒有LoadModuledav_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_modulemodules/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
按以下代碼更改(栗紅為修改的代碼):
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
 
<Location /svn>
DAV svn
SVNParentPath /home/svn
#
#   # Limit write permission to list of valid users.
#   <LimitExcept GET PROPFIND OPTIONS REPORT>
#      # Require SSL connection for passwordprotection.
#      # SSLRequireSSL
#
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /home/svn/passwd
Require valid-user
#   </LimitExcept>
</Location>
第 七步:建立使用者
# htpasswd -c /home/svn/passwdtest         //第一次添加使用者使用參數“-c”以後再添加就不用了
系統提示:
Newpassword:                       //輸入新密碼
Re-type newpassword:         //確認密碼 
Adding password for user test
重啟apache                                    
通過web頁面訪問,彈出使用者登入驗證,訪問成功 (注意開放防火牆的3690連接埠)
2011/2/15 15:22
=========試 驗過程中出現的問題記錄==============
配置完httpd.con後重啟apach過程中提示出錯
/etc/init.d/httpd restart
系統提示:
啟動 httpd:
[Mon Jan 31 18:45:03 2011] [warn]module dav_svn_module is already loaded, skipping
[Mon Jan 31 18:45:03 2011] [warn] module authz_svn_module is already loaded,skipping
[Mon Jan 31 18:45:03 2011] [warn] module dav_svn_module is already loaded,skipping
[Mon Jan 31 18:45:03 2011] [warn] module authz_svn_module is already loaded,skipping
了看樣子不太 對,提示是模組己載入過,現在己是重複了,仔細查了一下,在/etc/httpd /conf.d/subversion.con內的確己包含了dav_svn_module和authz_svn_module這兩個模組,我是重複加入 了刪除……,但我在httpd.conf裡確實沒有看到這兩個模組載入的語句,但提示說是己載入過,只好也刪除,重啟正常,回到目錄裡去查看,在etc/httpd/conf.d/module/下的確是存在這兩個模組,但httpd.conf裡也確實是沒看到己載入的 語句,哪麼到底在哪兒載入了呢?2011-02-21

開啟web輸入http://192.168.0.5/svn/projcet提示:
The requested URL /svn/project wasnot found on this server.
找不到服務,但apache的頁面可以開啟,應該是在/etc/httpd /conf.d/subversion.conf設定出錯了,回頭再查了一下發現錯是出在“<Location /svn/projcet>”在這句裡不應是指到項目,而是指到檔案倉庫就行了,應該是“<Location /svn>”

開啟web輸入http://192.168.0.5/svn/projcet彈出了驗證視窗,輸入後沒進入提示:
Forbidden
You don't have permission to access /svn/project on this server.
應該是使用者訪問檔案倉庫的許可權問題,還是解決一下許可權的問題吧
主要 原因是:/home/svn/project目錄對於svn使用者(如:svnroot)沒有許可權,可能是因為用svnadmin create時是以root啟動並執行,所以,mod_dav_svn就沒有相應許可權等
修改了svn的許可權:
chown -R test /home/svn/project
chgrp -R subversion /home/svn/project
chmod -R 777 /home/svn/project
再開啟web,輸入網址後直接進入了項目目錄,很鬱悶,直接就進入了,驗證跑哪兒去 了?2011-02-23 13:38
重啟httpd後再進入,驗證視窗彈出來了,也正確進入了。2011-02-2313:43

開啟web瀏覽器,輸入使用者名稱和密碼,但總是要求驗證,三次過後提示:
This server could not verify thatyou are authorized to access the document requested. Either you supplied thewrong credentials (e.g., bad password), or your browser doesn't understand howto supply the credentials required.
許可權?密碼錯誤?不可能是密碼錯誤,再試試吧,建立使用者後,再試的結果一樣,肯定是許可權的問題了今天煩了先告一段落吧   

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.