Vincent.Chan‘s Blog

          常用鏈接

          統計

          積分與排名

          網站

          最新評論

          實戰SVN For Apache2(一)

          SVN最常見的配置模式便是與Apache集成,這樣SVN可以采用WebDev協議方式提供服務。主要的好處有:通過Apache以HTTP方式 穿透防火墻,便于在互聯網環境使用;提供目錄的版本控制;純2進制的文件對比方式等。下面將介紹如何將SVN集成在Apache上。

          1. 準備工作:

            1. 下載軟件:
              1. SVN服務器端程序。到官方網站 的下載二進制安裝文件,來到二進制包下載部分? ,找到 Windows NT, 2000, XP and 2003部分,然后選擇"this directory",這樣我們可以看到許多下載的內容,目前可以下載svn-1.2.3-setup.exe

              2. TortoiseSVN,客戶端程序。TortoiseSVN是擴展Windows Shell的一套工具,可以看作Windows資源管理器的插件,安裝之后Windows就可以識別Subversion的工作目錄。
                官方網站是TortoiseSVN,下載方式和前面的svn服務器類似,在Download頁面的我們選擇Official version for Win2k/XP or higher的版本,然后在sourceforge的下載頁面選擇目前的最高穩定版本的安裝文件TortoiseSVN-1.2.5.4719-svn-1.2.3.msi。(注意:TortoiseSVN有一個特殊對VS.Net運行時一個BUG修正的版本,在下載頁面有選擇:Special version for Win2k/XP or higher: (We provide NO support for this!) uses _svn folders instead of .svn to work around the VS.NET bug with web projects. If you don't use web projects then please use the official version. )

              3. TortoiseSVN的中文語言包,注意這個需要下和客戶端程序版本相同的。可以在Download頁面內的Language Packs選擇下載。

              4. Apache服務器程序。可以到Apache官方網站下載最新版本的Apache,并且SVN必須運行在Apache2以上版本,在下載頁面選擇Windows的安裝包文件apache_2.0.55-win32-x86-no_ssl.msi

              5. AnkhSVN,可選安裝VS.Net的SVN插件。有0.5和0.6版本選擇,0.6版支持VS2005 Beta2,下載頁面

            2. 停止IIS,因為Apache默認安裝為80端口,需要關閉IIS避免端口沖突。可以在安裝好之后再調整端口。


          2. 開始安裝:

            1. 先安裝Apache服務器。在到填寫ServerInfo的時候,若機器已經啟用了AD,安裝程序會自動填寫,否則自己手動填寫。安裝完成之后到 安裝目錄下找到conf目錄下的httpd.config文件,搜索Listen,并將Listen后面的80改為8080(或者你希望的端口),然后重 新啟動Apache服務器,這時可以用http://localhost:8080 來測試是否安裝正確。

            2. 再安裝SVN服務器,沒有什么好說的,一路回車就可以了。(安裝SVN時,請確保Apache服務器正在運行狀態,安裝過程中可能會將Apache關閉,重新啟動屬于正常現象)

          3. 配置Apache服務器與SVN集成:


            1. 首先將Subversion安裝目錄bin\下面的兩個文件:mod_authz_svn.somod_dav_svn.so復制到Apache安裝目錄modules\目錄下。
            2. 有些文章說需要再修改httpd.conf,并做如下修改:
              找到Apache安裝目錄下的conf目錄,用文本編輯器打開httpd.conf,找到一下兩行:

              #LoadModule dav_module modules/mod_dav.so
              #LoadModule dav_fs_module modules/mod_dav_fs.so

              將每行前面的注釋符“#”去掉。再在所有LoadModule語句的最后添加一下幾行:

              #SVN
              LoadModule dav_svn_module modules/mod_dav_svn.so
              LoadModule authz_svn_module modules/mod_authz_svn.so

              但是我安裝完之后發現這個文件已經被做了那些修改,大概是新版的SVN安裝程序做了一些優化吧。其實在成功安裝SVN之后,Apache服務器已經和SVN初步集成。如圖:

              Apache.jpg

              注意下面的狀態欄已經是Apache/2.0.55 SVN1.2.3 DAV/2

            3. 建立一個SVN存放文件的目錄,我在F盤下創建一個文件夾:F:/SubversionFiles
            4. 接下來我們必須告訴Apache我們的資源庫所在的路徑,可以通過Location指令來完成這個設置。因為不希望為每個單獨的項目都 進行單獨的設置,所以我們把所有項目都存放在統一的資源庫目錄,那么可以使用SVNParentPath指令來指定存放所有項目的路徑。在 httpd.conf文件最后添加下面配置:

              #SVN

              <Location /svn>
              ??? DAV svn
              ??? SVNParentPath "F:/SubversionFiles"
              </Location>

            這樣我們就可以通過http://myhost:8080/svn/<項目名> 來訪問存放于資源庫F:/SubversionFiles中的指定項目。當然有可能你并不希望某個項目提供這樣一種訪問方式,這時候你可以使用SVNPath為每個項目進行單獨的設置,SVNPath的使用方法如下:

            ??? DAV svn
            ??? SVNPath "F:/SubversionFiles/project1"

            同樣把這段配置放在httpd.conf最后,重啟Apache HTTP服務即可通過http://myhost:8080/svn/project1 來訪問project1項目的資源庫。

            1. 下面作一個測試:

              1. 到F:\SubversionFiles下建立一個子目錄Test,然后到Aapche下的Bin目錄下執行svnadmin create F:\SubversionFiles\Test

              2. 打開瀏覽器輸入網址:http://localhost:8080/svn/Test?,應該可以正確訪問,但當前該項目下還沒有加入任何內容,所以顯示為空的

              3. 有一點需要提示的是,現在的訪問是完全匿名的,任何人都可以對SVN進行操作。所以我們接下來利用Apache的權限管理功能來對SVN進行用戶驗證集成

            2. 加入用戶身份驗證:

              在確定對訪問用戶的權限控制之前,你必須規劃好是對整個資源庫中的所有項目還是單獨的某一個項目進行統一的身份驗證, 也就是我們前面講到的是使用SVNParentPath還是SVNPath的問題。

              最 簡單的身份驗證方式是使用Basic HTTP Authentication機制,該方式通過用戶名和口令對訪問用戶進行身份驗證。我們可以直接通過Apache提供的支持進行設置。Apache提供 一個htpasswd工具來管理用戶名和口令。接下來我們利用這個工具來添加兩個用戶。

              在命令行窗口中轉到Apache所在的目錄,執行下列命令

              說明:創建用戶Xrinehart
              輸入:htpasswd –c F:\SubversionFiles\svn_auth_passwd Xrinehart
              說明:使用-c參數來創建一個passwd文件
              輸出:
              New password: *****
              Re-type new password: *****
              Adding password for user Xrinehart

              再創建用戶的時候就不用-c參數,而是用-m參數,因為文件svn_auth_passwd經創建。

              打開svn_auth_passwd文件,密碼使用MD5加密過了,而且同樣的密碼加密出來的內容卻不相同

              接下來我們必須告訴Apache服務器如何使用這個passwd文件,打開httpd.conf找到剛才我們添加的Location配置的位置,修改如下:

              #
              # SVN
              #

              ? DAV svn
              ? SVNParentPath "F:/SubversionFiles"

              # how to authenticate a user
              ?AuthType Basic
              ?AuthName "Subversion repository"
              ?AuthUserFile "F:/SubversionFiles/svn_auth_passwd"
              ?
              ? # only authenticated users may access the repository
              Require valid-user


              重新啟動Apache HTTP服務器,使用瀏覽器打開 http://localhost:8080/svn/Test 你將會看到要求登錄的對話框,輸入你剛設置的用戶名和口令即可。

              這樣Apache和SVN的集成就基本告成了

              相關文章:實戰SVN For Apache2(二)

          posted on 2006-03-24 12:33 Vincent.Chen 閱讀(131) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 九寨沟县| 惠水县| 乳源| 永兴县| 伽师县| 囊谦县| 连州市| 和田市| 沅陵县| 齐齐哈尔市| 富蕴县| 西充县| 洱源县| 新河县| 公主岭市| 玉溪市| 荔波县| 台前县| 琼海市| 博罗县| 尉氏县| 齐齐哈尔市| 昌图县| 池州市| 额济纳旗| 乌拉特中旗| 中阳县| 盐池县| 彭山县| 乐亭县| 广汉市| 柳林县| 宜宾市| 宽城| 桦甸市| 仁化县| 兴国县| 万山特区| 沧源| 开封县| 枣庄市|