一、环境
1、操作系统:Windows XP
2、JDK:JDK 1.6.0
二、下载和安装
相关软件已经相应的网址:
软件 |
网址 |
备注 |
apache_2.2.14-win32-x86-openssl-0.9.8k.msi |
HTTP服务器软件 |
|
Setup-Subversion-1.6.6.msi |
SVN服务器 |
|
TortoiseSVN-1.6.12.20536-win32-svn-1.6.15.msi |
SVN客户端 |
三、Apache 2.2.14 安装
1、双击apache_2.2.14-win32-x86-openssl-0.9.8k.msi进行安装,在遇到下面对话框中输入内容:
2、一直按下一步,直到安装完成
3、有可能无法直接启动httpd服务(通常是因为80端口被其它应用程序占用了)。这时,请不要担心,导航到apache的安装路径,这里使用的是一个默认的安装路径:C:/Program Files/Apache Software Foundation/Apache2.2/conf配置文件:httpd.conf。
… ServerRoot "C:/Program Files/Apache Software Foundation/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. # #Listen 12.34.56.78:80 Listen 8888 # # Dynamic Shared Object (DSO) Support # # To be able to use the functionality of a module which was built as a DSO you # have to place corresponding `LoadModule' lines at this 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 … |
4、Apache默认的监听商品是80端口,这里我把它改为8888。然后手动启动httpd服务:我的电脑 -> 控制面板 -> 管理工具 -> 服务。
5、现在你可以在你的浏览器中键入 http://localhost/,如果呈现了如下图片,那么你的Apache就安装成功了。
四、Subversion安装
1、双击SVN安装文件:Setup-Subversion-1.6.6.msi,一步步确认及可安装成功。
2、添加环境变量:右击我的电脑-> 属性 -> 高级 -> 环境变量 -> 系统变量 -> 变量Path C:/Program Files/Subversion/bin和C:/Program Files/Apache Software Foundation/Apache2.2/bin,变量间用英文分号“;”。
3、重启电脑。卸载重新安装一定要删除原来的安装目录。
五、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 module which was built as a DSO you # have to place corresponding `LoadModule' lines at this 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_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_module modules/mod_auth_digest.so #LoadModule authn_alias_module modules/mod_authn_alias.so #LoadModule authn_anon_module modules/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_module modules/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_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_owner_module modules/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_module modules/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_module modules/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_module modules/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_module modules/mod_negotiation.so #LoadModule proxy_module modules/mod_proxy.so #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so #LoadModule proxy_connect_module modules/mod_proxy_connect.so #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so #LoadModule proxy_http_module modules/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_module modules/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_module modules/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 "E:/svn/repository" AuthType Basic AuthName "ICIL SVN" SVNListParentPath on AuthUserFile "E:/svn/userfile.txt" AuthzSVNAccessFile "E:/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命令创建库。按下图操作你会发现在E:/svn/repository多了一个MyProject文件夹。
注意:你首先要导航到SVNParentPath: E:/svn/repository然后运行该命令。
4. 创建SVN用户帐号文件。在Apache的配置文件里我们设了AuthUserFile 路径: C:/svn/userfile.txt,现在在DOS命令行里导航到文件夹:E:/svn/运行命令:htpasswd –c userfile.txt username创建用户帐号文件,同时创建了一个初始帐号。
注意:-c参数表示创建一个用户帐号文件,下一次你再创建其它的帐号的时候就不需要这个参数了。
5. 创建权限控制文件。
在配置文件里我们设了AuthzSVNAccessFile 路径:C:/svn/accessfile.txt,现在我们手动创建这个文本文件,同时输入如下内容:
[/]
*=rw
[test:/]
admin=rw
huahua=rw
6、最后重启apache服务。
然后在浏览器里试着访问一下SVN版本库:http://localhost:8888/svn/Project。如果你看到如下图的内容说明你成功了!
六、客户端TortoiseSVN-1.6安装
1、双击TortoiseSVN-1.6.12.20536-win32-svn-1.6.15.msi,点击下一步直到安装完成为止。
2、如果右击一个文件夹出现如下红框结果,即为安装成功。
七、SVN应用
1、把源代码导入到svn服务器:
A、右击工程,点击如下红框导入部分。
B、“Import”显示为:
C、输入上传的地址http://ip:port/自定义路径,OK,如下
D、输入之前配置的权限文件的帐号和密码,确定之后如下图:
2、把源代码从svn服务器导出到本地:
A、找一空白区域,右击鼠标,出现如下图:
B、点击”Export”,得到:
C、点击”OK”,得到如下图,并输入帐号和密码:
八、通过客户端浏览器查看SVN
导入的源代码是加密的,需要通过svn客户端浏览器才可以看到以及进行其他操作。右击鼠标,得到如下图:
九、总结一下
1、SVN是目前比较流行的开源的版本管理工具,值得尝试配置
2、上面的内容讲述的配置服务端和客户端两个部分。