整合SVN与Apache
来源:互联网 发布:怎么做淘宝代理 编辑:程序博客网 时间:2024/06/02 10:23
转自:http://ttitfly.javaeye.com/blog/134570
1. 安装与svn对应的apache版本
2.把svn安装目录下(比如:D:/Program Files/Subversion/bin)的mod_authz_svn.so和mod_dav_svn.so文件拷贝到apache的安装目录(D:/Program Files/Apache Group/Apache2/modules)下
3.修改D:/Program Files/Apache Group/Apache2/conf/httpd.conf文件
因为apache和svn整合需要依赖的2个Module(145,146行)
最后再配置请求: 重启apache. 现在svn仓库里的文件都可以通过apache来访问了:
比如:
http://localhost/svn/
如果这样配置的话,因为没有配置认证信息,所以,任何人都可以访问。
如果把Location部分改为:
1. 安装与svn对应的apache版本
2.把svn安装目录下(比如:D:/Program Files/Subversion/bin)的mod_authz_svn.so和mod_dav_svn.so文件拷贝到apache的安装目录(D:/Program Files/Apache Group/Apache2/modules)下
3.修改D:/Program Files/Apache Group/Apache2/conf/httpd.conf文件
因为apache和svn整合需要依赖的2个Module(145,146行)
LoadModule cgi_module modules/mod_cgi.so
LoadModule dav_module modules/mod_dav.so
把这2行注释取消
同时添加svn的Module:
:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNPath D:/svn/reponsitory
</Location>
比如:
http://localhost/svn/
如果这样配置的话,因为没有配置认证信息,所以,任何人都可以访问。
如果把Location部分改为:
<Location /svn>
DAV svn
SVNPath D:/svn/reponsitory
AuthType Basic
AuthName "Subversion Reponsitory"
AuthUserFile d:/test/passwords
Require valid-user
</Location>
AuthType:认证类型
AuthName:弹出认证窗口时的标题
AuthUserFile:认证用户名和密码文件,默认是密码是md5加密
Require valid-user:是否需要认证
D:/Program Files/Apache Group/Apache2/bin下有个htpasswd命令
htpasswd help可以查看具体用法
-c是新建立个密码文件
如:
htpasswd -c c:/test/passwords admin
回车后就会提示输入新添加的admin用户的密码
不带-c参数是追加一个新用户test
htpasswd c:/test/passwords test
-p是密码不加密,如:
htpasswd -p d:/test/passwords test1
如果2个用户的密码都是md5加密的,并且密码一样,在密码文件里存的也是不一样的。
如果直接在密码文件里输入内容,按照一定的明文格式来新添加用户和密码也是可以的。
其二
1. 如果将Location部分的SVNPath改为SVNParentPath,如下:
<Location /svn>
DAV svn
SVNParentPath D:/svn/reponsitory
AuthType Basic
AuthName "Subversion Reponsitory"
AuthUserFile d:/test/passwords
Require valid-user
</Location>
则svn 的父仓库我们都无法访问到了,只能访问它的子仓库。
所以需要建立子仓库:
所以需要建立子仓库:
svnadmin create d:/svn/reponsitory/child1
现在如果你向仓库里导入一个project,比如用TortoiseSVN 来import ,如果你再地址栏里输入:
http://localhost/svn/aaa
则表示aaa必须是个已经存在的子仓库。否则失败
查看的话也是一样的,比如:
http://localhost/svn/bbbb
则bbbb也是个已经存在的子仓库。而不是父仓库下的bbbb项目。因为bbbb项目你是没办法访问到了
如果Require valid-user改为下面:
则表示匿名用户可以有读权限,而没有写和修改的权限 (一个用户对所有子仓库里的项目权限都是一样的。)
http://localhost/svn/aaa
则表示aaa必须是个已经存在的子仓库。否则失败
查看的话也是一样的,比如:
http://localhost/svn/bbbb
则bbbb也是个已经存在的子仓库。而不是父仓库下的bbbb项目。因为bbbb项目你是没办法访问到了
如果Require valid-user改为下面:
则表示匿名用户可以有读权限,而没有写和修改的权限 (一个用户对所有子仓库里的项目权限都是一样的。)
<Location /svn>
DAV svn
SVNParentPath D:/svn/reponsitory
AuthType Basic
AuthName "Subversion Reponsitory"
AuthUserFile d:/test/passwords
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
如果再增加个策略文件,(一个用户对所有子仓库里的项目权限都是不一样的。)
修改为:
<Location /svn>
DAV svn
SVNParentPath D:/svn/reponsitory
AuthzSVNAccessFile d:/passwd/policy
AuthType Basic
AuthName "Subversion Reponsitory"
AuthUserFile d:/test/passwords
Require valid-user
</Location>
编写策略文件内容d:/passwd/policy:
[subresponsitory:/]
user1=rw
user2=r
user3=
subresponsitory:/表示子仓库subresponsitory下所有的项目
如果某个子仓库没有在策略文件里配置,那么默认是所有用户都没有权限访问
用户组
策略文件里修改为:
如果某个子仓库没有在策略文件里配置,那么默认是所有用户都没有权限访问
用户组
策略文件里修改为:
[groups]
developers=user1,user2
testers=user3
#testers=@developers,user3也可以
[subsvn:/]
@developers=rw
@testers=
#这里也可以继续添加用户比如 user4=r
备份:
svnadmin hotcopy d:/svn/reponsitory d:/backup
svnadmin hotcopy d:/svn/reponsitory ftp://11.222.11.2
#reponsitory下的内容拷贝到backup目录下,reponsitory本身不会被拷贝
- 整合SVN与Apache
- 整合SVN与APACHE
- apache与svn整合
- SVN与Apache整合
- svn与apache整合
- SVN与Apache整合
- SVN与eclipse整合与使用、SVN与Apache整合
- 第三步,整合apache与svn
- SVN 不与Apache整合,单独运行
- Linux + SVN + Apache 安装与整合
- 整合svn apache
- apache整合SVN
- Apache+SVN的整合
- apache 整合svn
- apache+svn整合
- SVN和Apache整合
- SVN+apache整合
- 解决svn服务端与apache整合安装不正确的问题
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄
- 构架Domino CA中心之二
- 求助 C语言的单向链表
- linux 下连接 sqlserver
- Note: In form builder, triggers 'execution hierarchy' caused funny issue in enter-query mode.
- 整合SVN与Apache
- Python script redirection detection, shell '<' or anonymous piple
- 木炭和沉香
- 纪念那些日子
- 数学与C#编程
- Microsoft Asp.Net Ajax 1.0 脚本注册和UpdatePanel的事件控制(1)
- 经典文章收藏
- 如何用在代码中通过query接口来取结果集。
- Flex Defined