吴伟贤のBlog

Feed Rss

windows下搭建基于apache的SVN环境

08.10.2011, apache, by .

1 软件下载:

http://httpd.apache.org/download.cgi,下载apache

因我们使用APMServ 5.2.0,所以apache已有.版本Apache 2.2.3

http://subversion.tigris.org/,下载:

http://nchc.dl.sourceforge.net/project/win32svn/1.6.17/Setup-Subversion-1.6.17.msi

http://tortoisesvn.net/downloads,下载:

http://nchc.dl.sourceforge.net/project/tortoisesvn/1.6.16/Application/TortoiseSVN-1.6.16.21511-win32-svn-1.6.17.msi

http://nchc.dl.sourceforge.net/project/tortoisesvn/1.6.16/Language%20Packs/LanguagePack_1.6.16.21511-win32-zh_CN.msi

备注:apache与svn安装时,需要注意一点版本是否兼容,注意查下版本匹配情况;

 

2 安装svn服务端

安装svn服务端,按照提示默认安装,也可以自定义安装目录,如我安装在D:\Program Files\Subversion下;

 

3 安装svn客户端及汉化包

安装svn安户端及汉化包,按照提示安装即可,如我安装在D:\Program Files\TortoiseSVN

需重启电脑

 

4 集成svn和apache

将Svn环境下bin目录中的mod_dav_svn.so和mod_authz_svn.so复制到Apache环境下modules目录下;

配置apache环境下的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.

 

我安装时提示不能加载 cannot load mod_dav_svn.so

原因是缺少dll库文件

官方的FAQ回答http://subversion.apache.org/faq.zh.html#mod_dav_svn-win32

—————————————————–

这个错误信息在这里有点误导人。通常这样的错误是因为Apache无法正确加载mod_dav_svn.so模块所依赖的模块。如果当前Apache是以服务的形式运行的,那么它的path环境变量和普通用户的并不相同。请确认libdb4*.dll、intl3_svn.dll、 libeay32.dll还有ssleay32.dll都可以在\Apache\bin或者\Apache\modules目录中找到。如果没有找到,你可以从Subversion的安装目录下拷贝一份。

如果这样还解决不了问题的话,那么你可以使用类似Dependency Walker这样的工具来查看mod_dav_svn.so库的依赖性,看是否还有尚未解决的依赖性问题存在。

——————————————————-

复制

libdb4*.dll, intl3_svn.dll, libeay32.dll and ssleay32.dll到apache/bin目录下

再复制

libapr-1.dll
libaprutil-1.dll
libsvn_delta-1.dll
libsvn_fs-1.dll
libsvn_repos-1.dll
libsvn_subr-1.dll

到apache/bin目录下

有几个已存在的.我没有覆盖.

重启apache,ok.

 

5 配置apache和svn,让apache告诉svn如何工作

以下是我的具体配置情况可以参考下

<Location /svn>

#引用远程访问模块

DAV svn   

#版本库路径

SVNListParentPath on

SVNParentPath   d:/svn/

#激活基本认证,就是用户名/密码

AuthType Basic

#用来说明何时弹出要求用户输入认证信息的认证对话框

AuthName "Subversion repositories"

#指定使用的认证密码文件

AuthUserFile d:/svn/conf/passwd.ini  

#位置Subversion版本库的访问控制文件的路径

AuthzSVNAccessFile d:/svn/conf/authz.ini

#指定只有输入了正确的用户/密码的用户可以访问URL

Require valid-user

</Location>

更为详细的解释设置 Apache 的 httpd.conf

 

6 创建passwd文件来管理svn的访问权限

在开始菜单下,“运行”输入cmd,然后切换到apache/bin目录下:

第1个用户创建时用:htpasswd -c D:\svn\conf\passwd.ini loginuser //其中passwd.ini为文件名,loginuser为用户帐号

第2个用户创建时用:htpasswd D:\svn\conf\passwd.ini loginuser2

可以找到具体的目录查看,验证是否创建成功:

 

7 SVN版本库及登录访问权限设置

在 D:\Svn\目录下创建www文件,然后通过svn客户端右键www 选择TortoiseSVN->Create repository  here 后会生成几个文件夹跟文件;

 

在D:\Svn\conf创建authz.ini文件,然后文件中填写如下设置

#建立分组:admin,testers

[groups]

admin=loginuser

testers=loginuser2

#预置设置

[/]

*=r

@admin=rw

dangerman=

#多个项目配置,一级目录权限

[www:/]

@testers=rw

#branches二级目录权限

[/branches]

@testers=r

@developers=rw

#tags二级目录权限

[/tags]

@admin=rw

@pm=rw

#trunk二级目录权限

[/trunk]

@admin=rw

@developers=rw

 

authz.ini里面如果是中文.必须使用utf-8保存.不然会提示

Access forbidden!

Error 403

 

8 导入项目

到项目文件夹上,右击TortoiseSVN->import… 在URL of repository:中输入http://yourip/svn/www

9:项目成员导出

任一项目文件夹中,右击SVN checkout…

评论已关闭。