windows下Apache+SVN+Trac安装及配置(一)

        虽然原来也在使用Subversion,但使用的不是http服务器,用的是把svnservice.exe安装成window服务的方式。原来的开发环 境配置一直不统一,这次花的功夫好好弄一下,想搭建一个全部基于开源的Apache+SVN+Trac的配置,希望能给自己不一样的感觉。本文先说 Apache和SVN的集成,下一篇再集成Trac。
        安装过程还是有点复杂的,可能是我用的都是最新版本的缘故,网上的好多文章目前没有针对最新版本的,好在大致相当,问题不大。
一.准备安装软件
  • 再下载SVN服务器,官方网站为http://subversion.tigris.org/ ,最新版本为Subversion 1.4.6,可能是才发布,还没有安装程序,只有二进制解压版的,下载时要注意下载和Apache2.2.x版本对应的,我下载的是svn-win32- 1.4.6.zip;同时下载svn-python-1.4.6.win32-py2.5.exe
  • TortoiseSVN,客户端程序。TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录,点鼠标右键即可看到。网址为http://tortoisesvn.tigris.org/ ,我下载的是TortoiseSVN-1.4.6.11647-win32-svn-1.4.6.msi
  • TortoiseSVN的中文语言包,注意这个需要下和客户端程序版本相同的。这个可以在language packs下面下载。
   
二. 安装
       1.先安装Apache服务器。自己手动填写ServerInfo。安装完成之后到安装目录下找到conf目录下的httpd.config文件,搜索 Listen,并将Listen后面的80改为8080(或者你希望的端口),然后重新启动Apache服务器,这时可以用 http://localhost:8080 来测试是否安装正确。
       2.再安装SVN服务器,直接解压即可。
       3.安装TortoiseSVN,很简单,一路安装下去。

三. 集成Apache和SVN
       
  1. 首先将Subversion安装目录bin\下面的两个文件:mod_authz_svn.somod_dav_svn.so复制到Apache安装目录modules\目录下; 再将Subversion安装目录bin\下面的所有.dll文件复制到Apache安装目录bin\目录下                                                                      
  2. 需要再修改httpd.conf,并做如下修改:
    找到Apache安装目录下的conf目录,用文本编辑器打开httpd.conf,找到一下两行:

    #LoadModule dav_module modules/mod_dav.so
    #LoadModule dav_fs_module modules/mod_dav_fs.so

    将每行前面的注释符“#”去掉。再在所有LoadModule语句的最后添加一下几行:

    #SVN
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so

    如图:

    注意下面的状态栏已经是Apache/2.2.6 SVN1.4.6 DAV/2

  3. 建立一个SVN存放文件的目录,我在D盘下创建一个文件夹:D:/svn
  4. 接下来我们必须告诉Apache我们的资源 库所在的路径,可以通过Location指令来完成这个设置。因为不希望为每个单独的项目都进行单独的设置,所以我们把所有项目都存放在统一的资源库目 录,那么可以使用SVNParentPath指令来指定存放所有项目的路径。在httpd.conf文件最后添加下面配置: 
    #SVN
    <Location /svn>
        DAV svn
        SVNListParentPath on
        SVNParentPath "D:/svn"
        #SVNPath "D:/svn/test"
     
        ####################认证的类型
        AuthType Basic
        ####################认证的名称,显示于登录提示框
        AuthName "Subversion 资源库,请登录!"
        ####################Which password file to use for authentication 存储用户登录信息的文件
        AuthUserFile D:\svn\passwd
        ####################限定各个用户或组在版本库中目录的访问权限
        AuthzSVNAccessFile D:\svn\svnaccessfile
        ####################让所有用户对版本库都有读的权限而只有特定的用户才有写的权限
        Require valid-user
    </Location>
  5. 在命令行窗口中转到Apache所在的目录,执行下列命令,创建用户及密码
    说明:创建用户zj
    输入:htpasswd –c D:\svn\passwd zj
    说明:使用-c参数来创建一个passwd文件
    输出:
    New password: *****
    Re-type new password: *****
    Adding password for user zj

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

    打开passwd文件,密码使用MD5加密过了,而且同样的密码加密出来的内容却不相同。用TortoiseSVN在D:/svn下创建test和java资源库.(很简单,不多说)

  6. 然后用文本编辑器创建一个Subversion授权文件,文件名为svnaccessfile,内容如下:

    [groups]
    admin = john, kate
    devteam1 = john, rachel, sally
    devteam2 = kate, peter, mark

    # 为所有库指定默认访问规则
    # 所有人可以读,管理员可以写,危险分子没有任何权限,[/]代表根目录
    [/]
    * = r
    @admin = rw
    dangerman =

    # 允许开发人员可以完全访问他们的项目版本库
    [test:/]
    @devteam1 = rw
    [java:/]
    @devteam2 = rw
  7. 保存好上面的所有配置文件之后,重新启动Apache服务器。此时我们就可以在IE里面通过http://localhost:8080/testhttp://localhost:8080/java 来测试用户登录,以及不同用户组权限。            

猜你喜欢

转载自luchar.iteye.com/blog/151049