- Apache 2.2.22
- Subversion 1.7.3
- TortoiseSVN 1.7.5
- Subclipse 1.8(套用Eclipse才需安裝)
步驟
- 安裝完所有工具
- 將.\Subversion1.7\bin中的mod_authz_svn.so和mod_dav_svn.so複製到.\Apache2.2\modules
- 將.\Subversion1.7\bin中的intl3_svn.dll libdb*.dll (*為數字)複製到.\Apache2.2\bin
- 更改.\Apache2.2\conf\httpd.conf文件,去除下面二個指令的注解
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so - 更改.\Apache2.2\conf\httpd.conf文件,加入下面二個指令
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so - 在 .\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> - 在cmd下使用svn指令
.\Suversion1.7\bin\svnadmin create --fs-type fsfs D:\SVN\Repository\test - 建立帳號密碼
.\Apache2.2\bin\htpasswd -c D:\SVN\Repository\passwd vince - 建立權限文件 D:/SVN/Repository/authz,將以下內容複製上去
[groups] 创建两个组
admin_group=vince
user_group1=vince
[/] 跟目录的权限
* = r 所有人都可读
@admin_group = rw admin_group组有读写权限
boli = boli没有任何权限
[test:/] test资源库的权限
@admin_group = rw - 連結http://localhost/svn/test,出現版本畫面即成功
問題
- 步驟run完後,無法重新啟動Apache
- 重新啟動電腦解決
- 500 Internal Server Error
- 原因:找不到passwd文件,更改相同路徑後解決
- 其它電腦無法連結到SVN server
- 原因:被windows防火牆擋住,關掉後解決
沒有留言:
張貼留言