设为首页 收藏本站
查看: 967|回复: 0

[经验分享] Subversion 1.5.5 与 Apache 2.2 结合

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-31 09:04:57 | 显示全部楼层 |阅读模式
零、序言

起因:公司使用的VSS6.0有很多缺陷,我一直想寻找一个完善并且简单易用的源代码管理工具,于是SVN进入了我的视线。

发展:Subversion可以结合Apache服务器实现远程管理源代码的功能,我当前的开发项目经常需要辗转于自己公司与客户公司之间,这个附带的彩蛋正好也解决了现在项目的远程管理问题,但是在我搜索了很多网络文章后发现,很多Subverion与Apache的配置文章已经过于陈旧,实际上无法成功的配置,但许多经验值得学习,所以整理并编写了此篇文章作为以后配置服务器的参照留存。

一、安装

安装 Apache 2.2
安装 Subversion 1.5.5

找到 Subversion 安装目录下的以下文件:


bin/mod_authz_svn.so
bin/mod_dav_svn.so

复制到 Apache 安装目录下 modules 目录中


bin/intl3_svn.dll
bin/libdb*.dll

复制到 Apache 安装目录下 bin 目录中(这里似乎并不是必须的,我猜想这里或许是为了支持 Berkeley DB 而所作的操作,但我并不打算深入研究下去)

二、环境

假设 Subversion 安装在 D:\SVN\Subversion 目录下
假设创建 D:\SVN\Repositories\ 目录作为版本库总目录
假设在 D:\SVN\Repositories\ 中创建目录iSLeeBlog,并在其中创建版本库,假设已经配置好用户授权,那么应该可以通过 svn://localhost/iSLeeBlog 访问版本库。
假设统一将Apache的SVN项目配置文件放在 D:\SVN\conf 目录下
假设Apache的默认端口号为8080

三、配置Subversion版本库管理服务器

找到创建的版本库目录下的配置文件,例如:D:\SVN\Repositories\iSLeeBlog\conf\

将 passwd 文件改名为 passwd.svn(也可以不改名,这里是为了结构更清晰)

用文本编辑器修改 svnserve.conf 文件,找到以下两行


#password-db = passwd
...
#authz-db = authz

修改为:


password-db = passwd.svn
...
authz-db = authz

这里 authz 就是授权文件的名称,在 Subversion 和 Apache 中可以使用相同的授权文件,但无法使用相同的 passwd 文件,因为 Apache 是以加密方式存储密码,而 Subversion 使用明文储存密码,所以上面将 Subversion 生成的 passwd 文件改名,说明其仅用在 Subversion 下。

思考:这里可以使用相同的帐号文件吗?显然,我对 Apache 的配置还是不太熟悉,两个帐号文件需要同步维护比较麻烦,如果您知道如何解决,请您帮助我,谢谢。

如何配置授权文件不再详述,请自行查看授权文件中自带的注释,已经解释的非常清晰。

四、配置Apache服务器

找到 Apache 安装目录下 conf/httpd.conf 文件,用文本编辑器修改:

找到以下两句取消注释:


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

增加以下两句


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

使用 Apache 安装目录下的 bin/htpasswd.exe 可执行文件生成授权文件

第一次生成,使用 -cb 参数:


htpasswd -cb [filename] [username] [password]

例如:


htpasswd -cb passwd.apache islee 123

添加新用户,使用 -b 参数:


htpasswd -b passwd.apache another 456

将生成的 passwd.apache 文件移动到 D:\SVN\Repositories\iSLeeBlog\conf 目录下

a) 配置单项目

在Apache的conf/httpd.conf文件,在末尾添加以下内容


#配置虚拟目录

#引用远程访问模块
DAV svn

#版本库路径
SVNPath D:\SVN\Repositories\iSLeeBlog

#授权文件
AuthzSVNAccessFile D:\SVN\Repositories\iSLeeBlog\conf\authz

#所有用户都需要身份验证
Satisfy Any
Require valid-user

#验证方式
AuthType Basic

#项目的名称
AuthName "iSLee's Blog Project"

#用户文件
AuthUserFile D:\SVN\Repositories\iSLeeBlog\conf\passwd.apache


b) 配置多项目

在 httpd.conf 文件末尾增加一下一句,作用是引用指定目录下的所有 project 文件


Include D:\SVN\conf\*.project

然后在指定目录,这里是 D:\SVN\conf 中创建单个项目配置文件 iSLeeBlog.project 文本文件

iSLeeBlog.project 文件中的内容同“a) 配置单项目”节中的内容完全相同,新的项目之需要继续创建 project 文件,并根据需要更改虚拟目录路径以及授权文件名称即可。

配置以后需要重启 Apache 服务器。

五、访问

如果在局域网中,那么可以输入“svn://localhost/iSLeeBlog”即可访问版本库。

如果远程访问Apache服务器,那么可以在浏览器或客户端软件中输入“http://yourdomain or IP/svn/iSLeeBlog”即可访问iSLeeBlog项目。

六、备注

Subversion 的客户端 TortoiseSVN 是一个很棒的工具,虽然它与本文无关,但多看它附带的帮助文档,你将获益匪浅

本文档由 iSLee 编写维护,最后更新日期:2009年3月6日

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-92537-1-1.html 上篇帖子: Apache httpd安装配置 下篇帖子: Java之网络请求工具类(依赖:org.apache.http;注:HttpClient 4.4,HttpCore 4.4)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表