晓风博客

一片荒芜的地方

windows server 2003下Subversion+Apache+PHP+mySQL配置心得

之前用过新浪云计算(SAE)的空间,觉得使用SVN来管理代码很方便,代码可控制性很强。于是想自己架设一个SVN的WEB服务器,历尽艰辛总算配置成功了。贴出心得,以帮助有需要的人们,同时也算是备忘了。

首先搭建Apache+PHP+mySQL,网上有很多很多套件的例如wamp、apmz、apm等等,我这里用的是PHPnow,这个套件。由于事先已经有人把这些东西整合到一起了,而且Apache安装的人比较多,所以这之间几乎没有什么问题存在。一路Next下来就OK的差不多了。重点是SVN,光一个Subversion for windows就让我找了很久,不过还是给找到了。下载地址:http://subversion.apache.org/packages.html#windows 除过要下载Subversion之外还需要下载SVN的客户端,Subversion是服务器端。客户端推荐下载TortoiseSVN,俗称海龟SVN。这个很容易就能找到下载地址。不过还是贴出来吧:http://tortoisesvn.net/downloads.html 。

假设已经把Apache+PHP+mySQL搭建完成了,然后就是安装Subversion了。这个安装也很简单,一路Next就OK了。但是配置挺麻烦的。先安装上吧,安装完成后再把TortoiseSVN安装好。完了之后开始配置。

首先在D盘或者其他盘建立一个目录,我的目录叫做CodeBase,顾名思义,代码库。建立好文件夹之后点击进去,鼠标右键,TortoiseSVN-Create repository here,意思就是在这个文件夹下创建一个SVN库。创建完成后会发现多了几个文件夹和几个文件。基本上配置都是在这里进行的。首先配置的是conf下的三个文件,将svnserve.conf文件中的password-db = passwd  authz-db = authz   前面的#去掉。#是注释的意思。这两句的意思就是使用passwd作为密码配置文件。使用authz作为svn权限配置文件。然后在passwd中添加yourusername = yourpassword 添加你的用户名和密码。然后在authz中添加

[groups]
dev-group = liyaodong
[/]
@dev-group = rw
* =

大致意思就是添加一个组dev-group,这个组中有liyaodong这个成员。然后设置这个组拥有r(read)w(write)也就是读写权限。设置* =也就是匿名用户没有任何权限。保证你的代码安全。然后Svn的配置大概就OK了,客户端TortoiseSVN就可以使用你设置账户和密码来与代码库进行同步了。但是现在有一个很严重的问题。就是SVN中的代码只能团队内部共享。但是还是不能与Web服务器Apache进行同步。这个问题是个很大的问题。不能同步那要SVN的作用就不是很大了。如果能同步那岂不是爽歪歪了。别着急,下面进行同步设置。SVN有一个很好的机制就是钩子机制,可以定义客户端TortoiseSVN在提交代码前和提交代码后服务器端做出的响应等等。利用这个钩子写一个bat批处理就可以达到同步代码的效果。钩子的文件具体在本例中的代码仓库,也就是codebase/hooks/post-commit.tmpl这个是定义客户端进行代码更新后服务器端所要进行的工作。将这个文件的内容改成以下: "C:\Program Files\Subversion\bin\svn.exe" update "D:\www" --quiet --username yourusername --password yourpassword 首先前半部分是svn.exe的地址,也就是subversion的安装目录。然后使用了update命令到你的web服务器根目录,这里假设是D:\www,然后将用户名和密码改成你自己设置的就OK了。

以上工作全部完成之后就可以开启SVN服务了。开启之后客户端即可开始更新。而且最爽歪歪的是客户端的更新会实时反馈到服务器web目录下。最最最爽歪歪的是使用SVN进行同步和配置。SVN本来就是一个版本管理工具。你每次上传代码等等,代码仓库都会记录下来。哪天项目出问题了可以随时找回来。有点像时间机器,真的是很不错的东西。恩,好的,不多说了。上最后一个bat文件吧。startSvnserver.bat,顾名思义就是启动SVN服务。需要启动的时候双击之,一个黑框框就会一直存在下去。看起来着实很不爽。

代码内容: svnserve -d -r d:\codebase 后面的路径是你的代码仓库路径,本例中就是这个。 如果你觉得黑框框看起来着实不爽,可以参照网上的将SVN作为windows的内置服务。然后开机启动。很爽,不是么。当然你也可以编写你个隐藏运行bat的vbs,然后添加到系统启动项里。很多方法的,小问题。大的问题都不存在了。哈哈,爽歪歪了。

总结一下,要配置这些东西,最好会点XML知识,会点BAT,再会点VBS,再会点Linux的知识。了解一下系统方面和网络方面的底层原理。做起项目来肯定事半功倍。后面需要我们学习的还有很多。加油!!   ^_^