軟件準備 : svn-win32-1.6.1.zip (http://subversion.tigris.org/files/documents/15/45600/svn-win32-1.6.1.zip) 和 apache_2.2.11-win32-x86-no_ssl.msi 注意版本要匹配,否則可能會報錯誤1和2(見 下面) 軟 件安裝: 1. 安裝svn 1.1 直接解壓下載的svn
軟件準備 :
svn-win32-1.6.1.zip (http://subversion.tigris.org/files/documents/15/45600/svn-win32-1.6.1.zip ) 和apache_2.2.11-win32-x86-no_ssl.msi 注意版本要匹配,否則可能會報錯誤1 和2 (見 下面)
軟 件安裝:
1. 安裝svn
1.1 直接解壓下載的svn 壓縮包 即可
1.2 (%svn% 為svn 的 主目錄)使用%svn%/bin 下的svnadmin 命令創建工程:
svnadmin create d:/svn/myproject
注釋:d:/svn 為svn 的 根目錄,myproject 是我們的工程
2. 安裝apache :
2.1 按照提示安裝即可
2.2 關于80 端口是否被占用
2.2.1 使 用命令 netstat -ano|findstr ".*:80.*:.*" 即可查看80 端口是否被使用,一般安裝iis 以及迅雷等
軟件有可能把端口占用,如果80 被占用的話,最后一列的數字即為占用80 端口軟件的pid ; 當然您可以把該軟件關閉,也可以修改apache 的端口
2.2.2 (%apache% 為apache 的 主目錄)修改apache 的端口可以修改%apache%/conf/httpd.conf
把里面的Listen 80 修改為:
Listen 81
這樣您的apache 的端口就變成81 了,不會與80 沖 突啦,修改后端口再按照2.1 重新安裝一次即可
2.3 在瀏覽器里輸入http ://localhost:81 正 常顯示說明安裝成功。(81 是端口號)
3. 把svn 與apache 結 合
3.1 拷貝%svn% 下的文件到%apache% 下
3.1.1 把%svn%\bin\ 下 的 mod_dav_svn.so 和mod_authz_svn.so 到%apache%\ modules 目錄下
3.1.2 把%svn%\bin\ 下的 九個dll 文件intl3_svn.dll,libapr-1.dll,libapriconv-1.dll,libaprutil-1.dll,libdb44.dll,libsvn_delta-1.dll,libsvn_fs-1.dll,libsvn_repos-1.dll,libsvn_subr-1.dll 拷 貝到%apache%\bin 目錄下( 建議全部copy 過去,否則容易
報錯誤2 ,見下面)
3.2 修改%apache%/conf/httpd.conf 文 件
3.2.1 把在httpd 中找到以下2 行, 并把前面的注釋符# 刪除:
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
如果不刪除容易報錯誤3 ,見下面
3.2.2 在LoadModule 結尾 處添加以下2 行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
3.2.3 在http.conf 文件的結尾處添加以下配置行:
DAV svn
SVNParentPath D:\svn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile D:\svn\passwd
#AuthzSVNAccessFile D:\svnaccessfile
Require valid-user
注釋:1. SVNParentPath D:\svn 為svn 的主目錄,參加1.2 中設置
2 .AuthUserFile D:\svn\passwd 密 碼存儲文件,(下面要使用)
說明:
意 味著可以通過像這樣的URL(http://MyServer/svn) 來訪問Subversion版本庫
DAV svn
告 訴Apache哪個模塊 負責服務像那樣的URL--在這里就是Subversion模塊
SVNListParentPath on
在Subversion 1.3及更高版本中,這個指示器使得Subversion列出由SVNParentPath指定的目錄下所有的版本庫
SVNParentPath F:\svnROOT
告 訴Subversion在目錄F:\svnROOT下尋找版本庫
AuthType Basic
啟 用基本的驗證,比如用戶名/密碼對
AuthName "Subversion repositories"
當 一個驗證對話框彈出時,告訴用戶這個驗證是用來做什么的
AuthUserFile F:\svnROOT\htpasswd
指 定F:\svnROOT\htpasswd用為密碼文件用來驗證用戶的用戶名及密碼
AuthzSVNAccessFile F:\svnROOT\authz
指 定F:\svnROOT\authz來限定各個用戶或組在版本庫中目錄的訪問權限
Require valid-user
限 定用戶只有輸入正確的用戶名及密碼后才能訪問這個路徑(此項表示,無論是IE還是Tortoise,只有通 過密碼驗證才能訪問)。
下面表示允許匿名訪問,對于讀操作,不需要用戶驗證。
#
#Require valid-user
#
AuthUserFile和AuthzSVNAccessFile 的 工作原理是,先使用Apache用戶機制進行驗證,通過之后將請求提交給mod_authz _svn.so 進行認證,最后使用mod_dav _svn.so提供的功能。
3.3 創建passwd 文件 來管理svn 的訪問權限
3.3.1 使用%apache%\bin\ htpasswd .exe 來創建密碼
第一個用戶的命令: htpasswd -c D:\svn\passwd %username%
第二個用戶的命令: htpasswd D:\svn\passwd %username%
注釋:1.-c 是創建新文,%username% 是 用戶名,輸入命令后還會提示輸入密碼二次。
2.D:\svn\passwd 為3.1.3 中設置的路徑 文件
上面的配置僅僅是一個簡單的示例。你還可以對Apache進行許許多多的配置。
1.如果你想讓所有用戶對版本庫都有讀的權限而只有特定的用戶才有寫的權限,你可以將這行
CODE:
Require valid-user
改為
CODE:
Require valid-user
2.上面的配置使用了passwd文件將你所有的版本庫作為一個單元來限定訪問權限。如果你想獲得更多的控制,如限定某個用戶可以訪問版本庫中的哪個目 錄,可以把下面這行的#去掉:
CODE:
#AuthzSVNAccessFile D:\svnaccessfile
然后用文本編輯器創建一個Subversion授權文件。Apache將確保只有有效的用戶可以訪問你的/svn位置,然后將用戶名傳到 AuthzSVNAccessFile模塊,這樣可以依據Subversion授權文件得到更精細的權限控制。注意,路徑將被指定為[庫:路徑]或者簡單 的[路徑]。如果你不明確指定一個庫,訪問規則將應用到由SVNParentPath指定的目錄下所有的版本庫中。一個授權文件例子可能像這樣:
CODE:
[groups]
admin = john, kate
devteam1 = john, rachel, sally
devteam2 = kate, peter, mark
docs = bob, jane, mike
training = zak
# 為所有庫指定默認訪問規則
# 所有人可以讀,管理員可以寫,危險分子沒有任何權限
[/]
* = r
@admin = rw
dangerman =
# 允許開發人員可以完全訪問他們的項目版本庫
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
@devteam1 = rw
@devteam2 = rw
trevor = rw
# 文檔編寫人員對所有的docs目錄有寫權限
[/trunk/doc]
@docs = rw
# 培訓人員可以完全訪問培訓版本庫
[TrainingRepos:/]
@training = rw
Svn 與apache 結合容易產生的錯誤 :
1. httpd.exe: Syntax error on line 86 of D:/Program Files/Apache Software Fou
n/Apache2.2/conf/httpd.conf: API module structure 'dav_svn_module' in file
ogram Files/Apache Software Foundation/Apache2.2/modules/mod_dav_svn.so is
ed - expected signature 41503232 but saw 41503230 - perhaps this is not an
e module DSO, or was compiled for a different Apache version?
Note the errors or messages above, and press the
解決辦法就是使用2.0 版本的apache
2. httpd.exe: Syntax error on line 86 of D:/Program Files/Apache Software Foundatio
n/Apache2.2/conf/httpd.conf: Cannot load D:/Program Files/Apache Software Founda
tion/Apache2.2/modules/mod_dav_svn.so into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\
xb8\xb6\xa8\xb5\xc4\xb3\xcc\xd0\xf2\xa1\xa3
Note the errors or messages above, and press the
可以看到已經說明了是2.2.9 以上的apache
3. Syntax error on line 487 of D:/Program Files/Apache Software Foundation/Apache2.
2/conf/httpd.conf:
Invalid command 'DAV', perhaps misspelled or defined by a module not included in
the server configuration
Note the errors or messages above, and press the
把LoadModule dav_module modules/mod_dav.so 前 的注釋去掉
轉帖:http://hi.baidu.com/lubezhang/blog/item/bf7aa72ea2c7fa5b4ec226d2.html
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com