介紹
這篇文檔介紹如何安裝Apache,SVN以及如何結合它們,如何配置多庫,如何建立使用者帳號等等。該文檔由 SVN俱樂部 提供,由arain編寫。
聯絡我們
QQ 群: 21765703
SVN俱樂部官網: http://www.svnclub.com
所用到的軟體及其版本號碼和下載網站
溫馨提示:您可以直接到SVN俱樂部 網站下載,也可以用以下載方式:
1. Apache: 2.2.14
下載網站:
http://archive.apache.org/dist/httpd/binaries/win32/apache_2.2.14-win32-x86-openssl-0.9.8k.msi
2, Subversion: 1.6.6
下載網站:
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&expandFolder=91&folderID=74
Setup-Subversion-1.6.6.msi
安裝Apache
1. 雙擊apache安裝檔案:apache_2.2.14-win32-x86-openssl-0.9.8k.msi進行安裝,直到遇到如下對話方塊,填入相關資訊按“下一步”。
2. 完成安裝並不是一件很難的事情。但是有一種可能是你無法直接啟動httpd服務(通常是因為80連接埠被其它應用程式佔用了)。這時,請不要擔心,導航到apache的安裝路徑,這裡我用一個預設的安裝路徑:
C:\Program Files\Apache SoftwareFoundation\Apache2.2\conf
然後像如下這樣編輯設定檔:httpd.conf。
…
ServerRoot "C:/Program Files/Apache SoftwareFoundation/Apache2.2"
#
#Listen: Allows you to bind Apache to specific IP addresses and/or
#ports, instead of the default. See also the <VirtualHost>
#directive.
#
#Change this to Listen on specific IP addresses as shown below to
#prevent Apache from glomming onto all bound IP addresses.
#
#Listen12.34.56.78:80
Listen 8888
#
#Dynamic Shared Object (DSO) Support
#
# Tobe able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines atthis location so the
#directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd-l') do not need
…
Apache預設的監聽商品是80連接埠,這裡我把它改為8888。然後手動啟動httpd服務(我的電腦-管理-服務和應用程式-服務-Apache2.2)。
這時,試著在原生瀏覽器裡訪問:http://localhost:8888/,如果出現如下的介面說明你成功了!你做了一件多麼偉大的事情!
安裝Subversion
1. 雙擊SVN安裝檔案:Setup-Subversion-1.6.6.msi,你幾乎不用做什麼操作就可以完成所有安裝
2. 把SVN的bin檔案夾路徑添加到環境變數中,讓Aapche能找到所有相關的檔案和在電腦的任何地方都可以運用SVN命令,我這裡的bin檔案夾路徑是:。如果你不會怎麼添加環境變數,請按下面步驟進行:
a. 單擊:我的電腦à屬性à進階à環境變數à系統變數à路徑(雙擊進行編輯)à變數值
b. 在path變數值裡添加:C:\Program Files\Subversion\bin。注意前後都要加上英文分號。(我放在最後,沒有後面的英文分號)
c. 把Apache的bin路徑也要加環境變數裡去。我這裡的的bin路徑是:C:\Program Files\Apache SoftwareFoundation\Apache2.2\bin。
d. 重啟電腦,如果不重啟可能會遇到一些奇怪的問題。
結合Apache與SVN
1. 從SVN的bin目錄複寫兩個SVN模組(mod_authz_svn.so, mod_dav_svn.so)到Apache的modules目錄。
SVN bin 目錄:
C:\Program Files\Subversion\bin
Apache modules 目錄:
C:\Program Files\Apache Software Foundation\Apache2.2\modules
2. 修改Apache的設定檔:httpd.conf(C:\Program Files\Apache Software Foundation\Apache2.2\conf)。注意加粗字型部分,最後的Location部分添加到最後。
…
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a modulewhich was built as a DSO you
# have to place corresponding `LoadModule' lines atthis location so the
# directives contained in it are actually available_before_ they are used.
# Statically compiled modules (those listed by `httpd-l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule actions_modulemodules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_modulemodules/mod_auth_digest.so
#LoadModule authn_alias_modulemodules/mod_authn_alias.so
#LoadModule authn_anon_modulemodules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_modulemodules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authnz_ldap_modulemodules/mod_authnz_ldap.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_modulemodules/mod_authz_default.so
LoadModule authz_groupfile_modulemodules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_owner_modulemodules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule charset_lite_module modules/mod_charset_lite.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
#LoadModule disk_cache_modulemodules/mod_disk_cache.so
#LoadModule dumpio_module modules/mod_dumpio.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule file_cache_modulemodules/mod_file_cache.so
#LoadModule filter_module modules/mod_filter.so
#LoadModule headers_module modules/mod_headers.so
#LoadModule ident_module modules/mod_ident.so
#LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule logio_module modules/mod_logio.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_forensic_modulemodules/mod_log_forensic.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule negotiation_modulemodules/mod_negotiation.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_modulemodules/mod_proxy_balancer.so
#LoadModule proxy_connect_modulemodules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_modulemodules/mod_proxy_http.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule status_module modules/mod_status.so
#LoadModule substitute_modulemodules/mod_substitute.so
#LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule version_module modules/mod_version.so
#LoadModule vhost_alias_modulemodules/mod_vhost_alias.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
…
<Location/svn/>
Dav svn
SVNParentPath "C:/svn/repository"
AuthType Basic
AuthName "ICIL SVN"
SVNListParentPath on
AuthUserFile "C:/svn/userfile.txt"
AuthzSVNAccessFile "C:/svn/accessfile.txt"
Require valid-user
</Location>
RedirectMatch ^(/svn)$ $1/
注釋:
SVNParentPath--SVN的庫根目錄(手動建立)路徑,可以在這下面建立多個版本庫;
AuthUserFile--------使用者帳號資訊檔(用htpasswd命令建立檔案userfile.txt);
AuthzSVNAccessFile--許可權控制檔案(手動建立)
RedirectMatch ^(/svn)$ $1/-----------重新導向路徑(/svn定向到/svn/),這樣訪問庫列表可以通過http://ip:port/svn訪問
3. 建立SVN版本庫。用svnadmin命令建立庫。按操作你會發現在C:/svn/repository多了一個MyProject檔案夾
注意:你首先要導航到SVNParentPath:C:/svn/repository然後運行該命令。
4. 建立SVN使用者帳號檔案。在Apache的設定檔裡我們設了AuthUserFile 路徑:C:/svn/userfile.txt,現在在DOS命令列裡導航到檔案夾:C:/SVN/運行命令:htpasswd –c userfile.txt username建立使用者帳號檔案,同時建立了一個初始帳號。
注意:-c參數表示建立一個使用者帳號檔案,下一次你再建立其它的帳號的時候就不需要這個參數了。
5. 建立許可權控制檔案。在設定檔裡我們設了AuthzSVNAccessFile 路徑:C:/svn/accessfile.txt,現在我們手動建立這個文字檔,同時輸入如下內容:
[/]
*=r
[test:/]
arain=rw
jacky=rw
最後重啟一下apache服務,如果不知道如何重啟請參看安裝Apache的部分。
然後在瀏覽器裡試著訪問一下SVN版本庫:http://localhost:8888/svn/MyProject。如果你看到如的內容說明你成功了!恭喜你,呵呵!