2012年3月5日 星期一

架設SVN

工具
步驟
  1. 安裝完所有工具
  2. 將.\Subversion1.7\bin中的mod_authz_svn.so和mod_dav_svn.so複製到.\Apache2.2\modules
  3. 將.\Subversion1.7\bin中的intl3_svn.dll libdb*.dll (*為數字)複製到.\Apache2.2\bin
  4. 更改.\Apache2.2\conf\httpd.conf文件,去除下面二個指令的注解
    #LoadModule dav_fs_module modules/mod_dav_fs.so
    #LoadModule dav_module modules/mod_dav.so
  5. 更改.\Apache2.2\conf\httpd.conf文件,加入下面二個指令
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
  6. 在 .\Apache2.2\conf\httpd.conf文件中,加入以下代碼
    <Location /svn>
    DAV svn

    SVNListParentPath on
    SVNParentPath "D:/SVN/Repository"
    #SVNIndexXSLT "/svnindex.xsl"

    AuthName "SVN"
    AuthType Basic
    #AuthBasicProvider file
    AuthUserFile "D:/SVN/Repository/passwd"
    AuthzSVNAccessFile "D:/SVN/Repository/authz"

    require valid-user
    </Location>
    =========================================
    解釋
    <Location /svn>
    DAV svn 
    通知Apache與上述Location相對應的模組,svn表示Subversion模組
    SVNListParentPath on 顯示所有SVNParentPath版本庫
    SVNParentPath "D:/SVN/Repository" 通知Subversion查看的版本庫位於 D:/SVN/Repository
    #SVNIndexXSLT "/svnindex.xsl" 優化在瀏覽器的介面
    AuthName "SVN" 信息認證對話框的說明
    AuthType Basic 使用基本認證,目前是帳號密碼
    AuthUserFile "D:/SVN/Repository/passwd" 指定證證密碼文件
    AuthzSVNAccessFile "D:/SVN/Repository/authz" 指定Subversion版本庫的訪問控制文件的路徑
    require valid-user 設定輸入正碼的帳號密碼才可進入URL
    </Location>
  7. 在cmd下使用svn指令
    .\Suversion1.7\bin\svnadmin create --fs-type fsfs D:\SVN\Repository\test
  8. 建立帳號密碼
    .\Apache2.2\bin\htpasswd -c  D:\SVN\Repository\passwd vince
  9. 建立權限文件 D:/SVN/Repository/authz,將以下內容複製上去
    [groups]                                          创建两个组
    admin_group=vince
    user_group1=vince
    [/]                                                    跟目录的权限
    * = r                                                所有人都可读
    @admin_group = rw                       admin_group组有读写权限
    boli =                                               boli没有任何权限
    [test:/]                                              test资源库的权限
    @admin_group = rw
  10. 連結http://localhost/svn/test,出現版本畫面即成功
問題
  • 步驟run完後,無法重新啟動Apache
    • 重新啟動電腦解決
  • 500 Internal Server Error
    • 原因:找不到passwd文件,更改相同路徑後解決
  • 其它電腦無法連結到SVN server
    • 原因:被windows防火牆擋住,關掉後解決

        沒有留言:

        張貼留言