svn服务器部署流程
1、环境:windowns7 64位(最好固定配置IP)
软件:svn服务器版——TortoiseSVN-1.8.5.25224-win32-svn-1.8.8.msi
Apache2.2版本——httpd-2.2.22-win32-x86-no_ssl.msi(经测试过,2.2版本的比较稳定)
svn客户端——svn客户端win64.msi(客户端svn,直接安下一步…)
2、 apache的安装,直接下一步,这里我是安装到D:\Apache2.2。安装完,修改端口好,进入D:\Apache2.2\conf\httpd.conf文件修改“Listen 10086”,启动apache,浏览器打开http://localhost:10086/。成功打开所以apache安装成功了!!
3、svn服务器版安装,直接下一步。这里我是安装到D:\svn
4、配置环境变量
将apache的D:\Apache2.2\bin,和svn的D:\svn\bin加进Path变量里。
5、配置apache,将svn的bin目录下的mod_authz_svn.so和mod_dav_svn.so文件,复制到apache下D:\Apache2.2\modules,然后修改apache的配置文件D:\Apache2.2\conf\ httpd.conf(加粗部分是修改,红色是新增)
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 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_module modules/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_modulemodules/mod_charset_lite.so
LoadModule dav_modulemodules/mod_dav.so
LoadModule dav_fs_modulemodules/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_modulemodules/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_modulemodules/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 proxy_scgi_modulemodules/mod_proxy_scgi.so
#LoadModule reqtimeout_modulemodules/mod_reqtimeout.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_modulemodules/mod_dav_svn.so
LoadModule authz_svn_modulemodules/mod_authz_svn.so
…..
<Location /svn/>
Dav svn
SVNParentPath "F:/BoHao"
AuthType Basic
AuthName "ICIL SVN"
SVNListParentPath on
AuthUserFile"F:/BoHao/userfile.txt"
AuthzSVNAccessFile"F:/BoHao/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访问
6、创建SVN版本库。在任意一个地方创建版本库:进入用cmd进入F:\Myproject目录,创建版本,这里F:\Myproject文件夹下就多了一个liao文件夹。
7、配置SVN用户帐号文件。在Apache的配置文件里我们设了AuthUserFile 路径: F:/Myproject/userfile.txt,现在在DOS命令行里导航到文件夹:C:/SVN/运行命令:htpasswd -c userfile.txt username创建用户帐号文件,同时创建了一个初始帐号。
注意:-c参数表示创建一个用户帐号文件,下一次你再创建其它的帐号的时候就不需要这个参数了。
8、创建权限控制文本。在配置文件里我们设置了AuthzSVNAccessFile"F:/BoHao/accessfile.txt",现在我们手动创建这个文本文件,同事输入如下内容:
[/]
*=r
[liao:/]
liao=rw
liao2=rw
注意:[这里是项目的文件名:/]
9、svn注册服务
为了让 SVNservice服务随windows系统一起启动,需将其注册为windows服务。命令:为了让 SVNservice服务随windows系统一起启动,需将其注册为windows服务。命令:sc create svnservice binPath= "/" D:/svn/bin/svnserve.exe/"--service -r D:/SVN_REPOS" start= auto
(
其他形式:sc create SVN binpath= "/"C:/Program Files/Subversion/bin/svnserve.exe/"–service -r E:/www/svn" displayname= "SVN Service" depend= Tcpipstart= auto
注意,binpath= depend=start= displayname=等这些函数,等号后面需要有一个空格,binpath为svnserve.exe文件所在目录,将-d改成–service表示为使用服务启动。完成后需要到服务界面中启动,以后即为自动启动…
命令方式:svnserve -d -r D:/svn/repos默认端口是3690,如果不幸这个端口被别别的程序暂用,可以通过选项 --listem --port=绑定端口.
linux:
svn import /etc/svn/tmp/ file:///etc/svn/repos/--message "init"
)
注意,上述命令均在一行中。sc.exe是Windows 2000以后系统自带的一个工具,2000下没有,可以从XP上拷过来。svnservice为服务名称,后面的参数格式有严格要求,等号前面没有空格而后面有。binPath本身带有多个参数,因此用引号括起来,而由于路径里面又有空格,因此又加上了一层引号。 --service和-r均为svnserve.exe的参数,前者要求它作为服务运行,后者指明了仓库的根路径(多仓库为仓库的父目录)。
带安装包的SVN会自动注册服务,这时我们可能需要修改-r参数,命令如下:
sc configsvnservice binPath= "/"C:/ProgramFiles/Subversion/bin/svnserve.exe/" --service -r D:/SVN_REPOS"
b. 访问
注册完后,通过运行sc start svnservice或者服务管理器(service.msc)启动服务。
接下来,我们就可以通过下面的命令来测试系统是否工作正常:
svn infosvn://localhost/Test
如果正确的显示出仓库的相关信息,那么就大功告成了,否则请检查服务的参数是否配置正确,比如,如果未在服务参数中指定正确的-r值,就会得到如下错误:
No repository foundin 'svn://localhost/Test'
如果安装了TortoiseSVN,则可以直接在浏览器中输入svn://localhost/Test,这样会调出TortoiseSVN的Repos-Browser。到此,你就可以通过TortoiseSVN来导入工程进行版本管理了(参见后文)。
10、创建初始版本,选择初始版本,右键→svn→import(导入)→输入项目的url(http://localhost:10086/svn/liao)→OK按钮→导入中…......
完成