visualSVN server綠化策略 擺脫兩個apache的尷尬

來源:互聯網
上載者:User

更新!鑒於很多朋友需要該綠色版的打包,我已將其上傳到納米盤共用給大家了,你可以點擊以下連結去下載

[納米盤]綠色版VisualSVN Server.7z

7z格式的壓縮檔使用winrar就可以直接解壓了。
SVN就不多說了,非常好用的版本控制!安裝也非常簡單。我的開發環境是WINDOWS,方案是VisualSVN
Server和TortoiseSVN,這個安裝起來簡直超方便!不過有一點非常嚴重的問題就是官方的VisualSVN Server的安裝包裡面內建apache伺服器,安裝的時候不能與本機原有apache(或IIS)連接埠衝突,這樣我的最初的情況就變成機器裡有兩個apache,4個httpd.exe進程,一下增加了幾十M的記憶體開銷,要知道偶的機子本來就很慢,我的想法就是把他們整合到一起,因為visualSVN
server的MMC管理主控台太親切了,離不開了,雖然SVN已經有更為強大的命令列操作!減少httpd.exe進程為兩個,連接埠只監聽8080就好了。

看網上的做法是先安裝visualsvn,再將apache重新設定,我覺得這個內建的精簡版的apache是絕對不全的,所以我將SVN裝到我原有的APM環境中,再安裝visualSVN SERVER來管理它!目的很單純,減少記憶體開銷和連接埠佔用。

SVN的安裝不多說了,官方就有很詳細的安裝教程!這裡我用的是最新的 svn-win32-1.4.6.zip
後面就是綠化visualSVN SERVER
將visualSVN SERVER官方的安裝包裡頭的檔案全部提取,經過分析,我們得到下面的甚為寶貴的註冊表檔案和後面bin目錄中的檔案(注意我已經將部分檔案更新為svn 1.4.6版)!

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\VisualSVN]

[HKEY_CURRENT_USER\Software\VisualSVN\VisualSVN Server]
“MenuShortcut”=”1″
“Adm_Tools_MenuShortcut”=”1″

[HKEY_LOCAL_MACHINE\SOFTWARE\VisualSVN]

[HKEY_LOCAL_MACHINE\SOFTWARE\VisualSVN\VisualSVN Server]
“RepositoriesRoot”=”F:\\Repositories\\”
“ServerName”=”localhost”
“ServerPort”=”8080″
“SSLServerPort”=”8443″
“UseSSL”=”0″
“InstallDir”=”D:\\myserver\\VisualSVN Server\\”

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\{08B017E8-47AD-4D1B-A928-94FFD77E9950}]
About={2FC11162-83EE-47ED-87DA-490D7402230C}

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\{08B017E8-47AD-4D1B-A928-94FFD77E9950}]
NameString=VisualSVN Server Manager

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\{08B017E8-47AD-4D1B-A928-94FFD77E9950}\Extension]
@=Namespace

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\NodeTypes\{476E6449-AAFF-11D0-B944-00C04FD8D5B0}\Extensions\Namespace]
{08B017E8-47AD-4D1B-A928-94FFD77E9950}=VisualSVN Server

裡面的設定都是一目瞭然的,重點就是HKEY_LOCAL_MACHINE\SOFTWARE\VisualSVN\VisualSVN Server鍵下面,其他的都不需要修改!,然後註冊dll檔案 regsvr32 /s Manager.dll,bin的目錄沒有了,檔案的部署變成這樣的:

D:\myserver\VisualSVN Server 的目錄

2007-12-23  00:25    <DIR>          .
2007-12-23  00:25    <DIR>          ..
2007-12-20  16:29           131,149 libapr-1.dll
2007-12-20  16:29            36,952 libapriconv-1.dll
2007-12-20  16:29           172,118 libaprutil-1.dll
2007-12-20  16:29         1,073,152 libeay32.dll
2007-11-30  00:26           274,432 libhttpd.dll
2006-12-02  06:03             1,869 Microsoft.VC80.CRT.manifest
2006-12-02  14:22           479,232 msvcm80.dll
2006-12-02  06:03           548,864 msvcp80.dll
2006-12-02  06:03           626,688 msvcr80.dll
2007-12-20  16:29           204,800 ssleay32.dll
2007-10-09  22:48            28,871 VisualSVN Server.msc
2007-11-30  00:19            60,416 zlib1.dll
2007-12-23  00:45             2,064 visualSVN.reg
2007-12-23  00:38               578 setup.bat
2007-12-20  16:29            69,716 intl3_svn.dll
2007-12-20  16:29           802,816 libdb44.dll
2007-12-20  16:29         1,019,980 svn.exe
2007-12-20  16:29           528,470 svnadmin.exe
2007-12-20  16:29           499,808 svndumpfilter.exe
2007-12-20  16:29           520,276 svnlook.exe
2007-12-20  16:29           561,238 svnserve.exe
2007-12-20  16:29           712,788 svnsync.exe
2007-12-20  16:29           368,730 svnversion.exe
2007-12-23  00:33                23 uninstall.bat
2007-12-23  01:07               311 vsvnvars.bat
2007-11-30  01:06           491,520 Manager.dll
              26 個檔案      9,216,861 位元組
               2 個目錄  9,841,033,216 可用位元組


路徑和上面的註冊表檔案是對應的,經過這些操作以後,就可以順利的使用visualSVN SERVER了,不過這個控制台裡面的apache伺服器控制功能表不能正常使用了,解決的方法是將apache註冊為服務的時候名稱取為VisualSVNServer就可以了,語句範例:

D:\myserver\Apache2\bin\httpd.exe -k install -n VisualSVNServer

這樣再重新開啟visualSVN SERVER的控制台,就可以控制apache的開始、停止以及重啟了。

順便提及:當使用TortoiseSVN串連伺服器長時間假死,並且apache的錯誤記錄檔裡有類似:

[Sat Dec 22 15:49:30 2007] [error] [client 127.0.0.1] XML parser error (at end). status=20014

這樣的錯誤記錄,問題是出在卡巴斯基 6.0,將TortoiseSVN的bin目錄下的TortoiseProc.exe檔案添加到卡巴的信任程式裡邊,即可解決,偶就碰到這個很鬱悶的問題,搞了半天才搞定。

最後附上我的apache2.2.6的httpd.conf檔案(其實就是svn安裝到apache中的方案,已超出本文的討論範圍,呵呵~):

ThreadsPerChild 250
MaxRequestsPerChild 0

ServerRoot “D:/myserver/Apache2″

Listen 8080

LoadModule actions_module modules/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 authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so

LoadModule cgi_module modules/mod_cgi.so
################為SVN而開啟以下四項#
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
####################################
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule userdir_module modules/mod_userdir.so
#########載入PHP
LoadModule php5_module ../php5/php5apache2_2.dll
LoadFile ../php5/php5ts.dll
LoadFile ../php5/libmysql.dll

ServerAdmin godson@google.com
ServerName :8080
DocumentRoot “D:/myserver/wwwroot”

Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Satisfy all


Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

DirectoryIndex index.htm index.php index.html


Order allow,deny
Deny from all

LogLevel warn

AllowOverride None
Options None
Order allow,deny
Allow from all

DefaultType text/plain


TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl


SSLRandomSeed startup builtin
SSLRandomSeed connect builtin

###為SVN而添加#############

DAV svn

SVNListParentPath on
SVNParentPath F:\Repositories
SVNIndexXSLT “/svnindex.xsl”
AuthType Basic
AuthName “Subversion repositories”
AuthUserFile F:\Repositories\htpasswd
#AuthzSVNAccessFile svnaccessfile
Require valid-user

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.