Apache+SVN实现对代码的管理

安装Apache和subversion

Apache官方网站上下载2.0.59版的msi安装包,执行即可。为方便起见,建议将Apache安装到根目录下,例如 D:\Apache。安装时的一些细节可以参考这篇文章。把端口号改为8080。安装完毕后用浏览器访问 http://localhost:8080/ ,如能看到Apache的起始页面即安装成功。

subversion上下载zip包解压缩即可,下载svn-win32-1.4.3.zip版本。假设解压到 D:\svn下。

然后将subversion与Apache集成在一起(也可参考这篇文章)。将 D:\svn\bin 下的以下文件复制到 D:\Apache\modules 目录下:

  • mod_authz_svn.so
  • mod_dav_svn.so

将 D:\svn\bin 下的以下文件复制到 D:\Apache\bin 目录下:

  • libdb44.dll
  • intl3_svn.dll

然后建立代码仓库目录 D:\repos。

然后修改 D:\Apache\Apache2\conf\httpd.conf,查找下面这一行,去掉前面的 # 号。

 LoadModule dav_module modules/mod_dav.so

然后在其附近添加以下这一行:

 LoadModule dav_svn_module modules/mod_dav_svn.so

之后在 httpd.conf 的末尾添加以下内容:

 <Location /repos>
DAV svn
SVNParentPath D:/repos
</Location>

然后重新启动Apache。之后试着访问一个不存在的页面,如 http://localhost:8080/abc,你会看到Not Found页面下方的内容如下:

 Apache/2.0.59 (Win32) SVN/1.4.3 DAV/2 Server at localhost Port 8080

如果这里显示了 SVN/1.4.3 则说明安装成功。


建立项目

下面我们要建立一个实际开发中使用的项目。我们为这个项目命名为 trustee。

首先要建立一个代码仓库。打开命令行,输入以下命令:

 D:
cd D:\repos
md trustee
cd trustee
D:\svn\bin\svnadmin create .

然后打开浏览器,访问 http://localhost:8080/repos/trustee/ 。如果你上面的设置都正确,你将会看到下面的内容:

 Revision 0: /
----------------------------------------------
Powered by Subversion version 1.4.3 (r23084).

即说明代码仓库建立成功,而 http://localhost:8080/repos/trustee 就是代码仓库的 URL。


加入用户身份验证:


在确定对访问用户的权限控制之前,你必须规划好是对整个资源库中的所有项目还是单独的某一个项目进行统一的身份验证, 也就是我们前面讲到的是使用SVNParentPath还是SVNPath的问题。

最 简单的身份验证方式是使用Basic HTTP Authentication机制,该方式通过用户名和口令对访问用户进行身份验证。我们可以直接通过Apache提供的支持进行设置。Apache提供 一个htpasswd工具来管理用户名和口令。接下来我们利用这个工具来添加两个用户。

在命令行窗口中转到Apache所在的目录,执行下列命令

说明:创建用户admin
输入:htpasswd –c D:\repos\svn_auth_passwd admin
说明:使用-c参数来创建一个passwd文件
输出:
New password: *****
Re-type new password: *****
Adding password for user admin

再创建用户的时候就不用-c参数,而是用-m参数,因为文件svn_auth_passwd 已经创建。

打开svn_auth_passwd文件,密码使用MD5加密过了,而且同样的密码加密出来的内容却不相同

接下来我们必须告诉Apache服务器如何使用这个passwd文件,打开httpd.conf找到刚才我们添加的Location配置的位置,修改如下:
<location svn=""></location>
#
# SVN
#
<location svn=""><br> DAV svn<br> SVNParentPath "D:/repos"<br><br># how to authenticate a user<br>AuthType Basic<br>AuthName "Subversion repository"<br>AuthUserFile "D:/repos/svn_auth_passwd"<br><br> # only authenticated users may access the repository<br>Require valid-user<br></location>

重新启动Apache HTTP服务器,使用浏览器打开 http://localhost:8080/repos/trustee你将会看到要求登录的对话框,输入你刚设置的用户名和口令即可。

这样Apache和SVN的集成就基本告成了

你可能感兴趣的:(apache,SVN,配置管理,项目管理,subversion)