由于2007年5月份公司确定使用Subversion版本管理工具,那时候选择了Xampp1.6.1 和Subversion1.4.3,Xampp1.6.1也是包含Appache2.2,也刚好和SVN1.4.3配合,没有产生版本冲突了.至于svnmanager1.0.3.版本是后来使用的,当时没有使用svnmanager,在svnmanager1.0发布后才使用了,从版本1.0到1.0.3都对Xampp1.6.1兼容.svnwebclient也是比较后来使用.故本文中涉及软件版本、运行环境如下:
Xampp1.6.1+svn1.4.3+svnmanager1.03+svnwebclient
运行环境操作系统:Windows Server 2003 statndard edition
一、Xampp、Svn、Svnmanager 安装
Xampp建议安装在c:目录下,安装目录即c:xampp.(注:下文中的建议都是本人实际操作验证的,文中用到各个软件版本请到其官方网站找到文章开头说明的对应软件版本).
Svn 建议安装到c:目录下,安装目录即c:svn下.
Svnmanager从官方网站:http://svnmanager.sourceforge.net/下载,解压到C:xampphtdocs目录下,并修改下文件名为:svnmanager.
二、修改配置文件
1、配置svn+apache服务.编辑 C:xamppapacheconf目录下httpd.conf文件.(注:建议在编辑httpd.conf前,在同目录下备份http.conf文件),将httpd.conf中加载模块位置添加如下内容::
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
(注意: Xampp1.6.1中apache2.2.4版本,不需要将svn安装目录下c:svnbin中的mod_dav_svn.so、mod_authz_svn.so拷贝到C: xamppapachemodules目录下)
同时在此文件最后添加如下内容:
<Location /svn>
DAV svn
SVNParentPath C:svnrepositories
# Allow the index page to list all the repositories it contains
SVNListParentPath On
# Require SSL connection for password protection.
# SSLRequireSSL
AuthType Basic
# Message to give to the committer
AuthName "CP SVN"
# File listing users with write (commit) access
#AuthzSVNAccessFile c:svnsvn_access_file
AuthUserFile c:svnsvn_passwd_file
Require valid-user
</Location>
简单地解释: "Location /svn"表示,SVN库URL是http://localhost/svn的形式; "SVNParentPath C:svnrepositories"表示:SVN库的根目录位置;"AuthName "Subversion repositories""设置询问用户名密码的对话框标题; "AuthUserFile c:svnsvn_access_file"指定用于存放用户名密码的文件,注意这是一个文件,而不是一个文件夹.下面通过安装Svnmanager,利用Svnmanager进行svn权限管理。
2、svnmanager设置
由于Xampp1.6.1版本中没有安装pear对应的VersionControl_SVN-0.3.1,
在命令行cmd 的c:xamppphp 运行: pear install channel://pear.php.net/VersionControl_SVN-0.3.1
C:xampphtdocssvnmanager 目录下靠拷贝config.php.win,并将文件名修改为:config.php,建议备份一份config.php.win. 编辑文件config.php:
将config.php文件中:
//
// SVNManager config.php file for Windows based servers
//
$htpassword_cmd = "c:\\Progra~1\\Apache~1\\Apache2\\bin\\htpasswd";
$svn_cmd = "c:\\PROGRA~1\\Subversion\\bin\\svn";
$svnadmin_cmd = "c:\\PROGRA~1\\Subversion\\bin\\svnadmin";
//Subversion locations
$svn_repos_loc = "c:\\svn";
$svn_passwd_file = "c:\\svn\\svn_passwd_file";
$svn_access_file = "c:\\svn\\svn_access_file";
修改为:
$htpassword_cmd = "c:\\xampp\\Apache\\bin\\htpasswd";
$svn_cmd = "c:\\svn\\bin\\svn";
$svnadmin_cmd = "c:\\svn\\bin\\svnadmin";
//Subversion locations
$svn_repos_loc = "c:\\svn\\repositories";
$svn_passwd_file = "c:\\svn\\svn_passwd_file";
$svn_access_file = "c:\\svn\\svn_access_file";
简单地解释: $htpassword_cmd定义apache命令htpasswd路径,同样$svn_cmd、$svnadmin_cmd定义svn命令的svn和svnadmin路径;$svn_repos_loc定义本地svn版本库路径,$svn_passwd_file、$svn_access_file定义svn_passwd_file和svn_access_file文件路径.
将config.php文件中:
//$dsn = "mysql://svnmanager:svnmgmpw@localhost/svnmanager";
//The following location is not readable from internet by means of an .htaccess file
$dsn = "sqlite://svnmanager\\svnmanager.db";
修改为:
$dsn = "mysql://svnmanager:svnmanager@localhost/svnmanager";
//The following location is not readable from internet by means of an .htaccess file
//$dsn = "sqlite://svnmanager\\svnmanager.db";
简单地解释: $dsn = "mysql://svnmanager:svnmanager@localhost/svnmanager定义使用mysql数据库,数据库访问用户名svnmanager,密码:svnmanager,库名:svnmanager,这步骤修改完了以后打开http://localhost/phpmydamin,创建数据库svnmanager,导入(import)据库访问用户名svnmanager,密码:svnmanager.(即上文所涉及的)
现在一切都ok了,可以登录:http://localhost/svnmanager 使用用户名和密码是config.php文件中 //Administrator account 管理员帐:admin和密码:admin,第一次登录需要使用一个默认的临时用户admin 密码 admin,登录后要创建一个管理员帐号,一定要做,当你logout后,临时帐号将被禁用。
三、Svnwebclient服务端搭建
具体安装请参考:http://hi.baidu.com/vb1980/blog/ ... 12f025cffca3b4.html(这个服务端搭建比较详细,易懂!!但俺不知道是不是原创哟.)
http://bbs.iusesvn.com/attachment.php?aid=524