1.svn+apache整合
1:安装svn客户端, 并且在客户端下,
能建立仓库,在自己的硬盘上,建一个库
利用 file:///D:/xx/yy来管理自己的仓库.
2:把svn与apache整合.
2.1为什么与apache一起整合?
答:因为80端口支持广泛.
整合注意事项:
1:svn-win32的版本与apache版本匹配
2:要安装vc6,vc9的库
3:把svn的bin目录加到系统环境变量里,并重启.
2.2: 整合步骤
在windows,选取与apache相适应的subversion的压缩包,并与apache整合.
下载地址:http://sf.net/projects/win32svn
在linux下,一般是下载源码
地址:http://subversion.apache.org/
2.3:具体操作
2.3-1:解压win32svn压缩包,推荐到apache的平级目录,
并重命名为svn
注意: 我们要做的是把svn 当成apache的一个模块来执行.
和php作为apache来整合,有类似之处.
2.3-2:复制so
把svn/bin中的
mod_authz_svn.so
mod_dav_svn.so
到apache/modules/下面.
2.3-3: 修改配置文件
apache/conf/httpd.conf
把下面这两行前的#号去掉
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
然后新增2行
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
2.3-4: 修改环境变量 ,并重启,使环境变量生效.
在环境变量中的path里,加上 svn/bin的路径.
例; D:\amp\svn\bin
3.1:寻立仓库目录
在X盘,例D:/amp
建立仓库目录, 例: D:/amp/repo
3.2: 建立仓库
在D:/amp/repo 下面建立具体的代码仓库.
如D:/amp/repo/orange
不要用客户端来建立仓库,用服务器端的命令.
x:/path/svn/bin/svnadmin create D:/amp/reop/food
create前是svnadmin.exe的路径
create后是你想建立的仓库的路径.
3.3: 修改配置文件,httpd.conf
目的:使apache能够对特定目录转发给svn处理.
具体:在httpd.conf后面加上如下几句话:
<Location /svn>
DAV svn
SVNParentPath D:/amp/repo
#repo目录是所有仓库的上级目录
</Location>
3.4:测试
通过客户端 签出 http://localost/svn/orange
即可把仓库签出
=====================权限控制==============
再次httpd.conf
<Location /svn>
DAV svn
SVNParentPath D:/amp/repo
AuthZSVNAccessFile D:/amp/repo/authz
AuthUserFile D:/amp/repo/passwd
# 上述两行分别代表用户权限表, 用户密码表.
Satisfy Any
Require valid-user
AuthType Basic
AuthName "hp5qi"
#repo目录是所有仓库的上级目录
</Location>
============生成用户密码,及配置用户权限==========
在apache的bin目录下面执行!
htpasswd -c D:/amp/repo/passwd stu
# -c代表新创建,如果是第2次及以后再次增加用户,不要用-c,否则前面的用户都丢失了.
在authz里写权限规则
例: 在D:/repo/orange, 和apple两个仓库
[orange:/]
stu = r
dev = rw
[apple:/]
stu = rw
dev = r
* = r
如上配置中,即说明
对于orange仓库
stu 只读权限
dev 读写权限
apple 仓库
stu 读写权限
dev 只读
任意用户 读权限