VisualSVN 服务器配置指南
作者:陈国栋
2009/2/21
SVN 服务器的安装配置一直是一个比较麻烦的问题,经过一周的资料搜集、探索实践,终于
找到一种非常简单的“VisualSVN Server+目录共享+Trac+客户端密码修改”的办法。这种方法
主要使用的是 VisualSVN Server(我用的最新版本 V1.6.3),然后在别的电脑上安装一个
Apache(我用的最新版本 V2.2.11),然后便是复制、粘贴把 VisualSVN Server 中不完整的 Apache
补充完整,最后就支持了上述的项目开发非常需要的、完整的功能。
1. 安装VisualSVNServer
VisualSVN Server 的安装非常简单,一路 Next->Next->…->Finish 就可以了。最好修改一
下代码库的位置,个人觉得放在 C 盘不是很安全。
2. 配置目录共享
配置目录共享是包向信最先探索成功,我又自己安装整理了一下。
1、安装 apache_2.2.11-win32-x86-openssl-0.9.8i.msi.
(VisualSVNServer1.6.3 用的 Apache2.2.9 版本,安装目录的 readme.txt 中有说明。)
2、把 apache 如下目录的内容复制到 VisualSVN 目录。具体方法参见下面两张图:
把 httpd.conf 中如下加载模块的内容复制到 VisualSVN 对应文件:(最好放到 httpd‐custom.conf
中)
#Add by chenguodong for Directory share
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
#Add End by chenguodong
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
同样在该配置文件中,增加共享目录相关的配置:
#Add by chenguodong
Alias /Share/ "D:/Share/"
<Directory "D:/Share">
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Location /Share/>
Auth Name "Share authz"
AuthType Basic
AuthUserFile "D:/SVN/VisualServer/htpasswd"
require valid-user
</Location>
#Add End
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
修改 index.html 显示共享目录:
<!DOCTYPE html
PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- <meta content="0;URL=svn/" http-equiv="refresh"/> -->
<title>VisualSVN Server</title>
</head>
<body>
<h1>Welcome to VisualSVN Server!</h1>
<p><a href="/svn/">代码库</a></p>
<p><a href="/trac/">项目跟踪</a></p>
<p><a href="/Share/">资料共享</a></p>
<p><a href="/cgi-bin/Apache22Passwd.cgi">修改密码</a></p>