|
原文地址:http://www.blogjava.net/hadeslee/archive/2008/03/12/185788.html
早上开始学习配置svn,之前错过了田老师的课程,所以要自己干。上次做的小项目,利用了google的项目托管来进行版本的控制。so,我来照着画胡。
先下载svn吧;
下载地址:http://subversion.tigris.org/files/documents/15/39559/svn-1.4.5-setup.exe
再下载apache
下载:http://apache.mirror.phpchina.com/httpd/binaries/win32/apache_2.0.63-win32-x86-no_ssl.msi
再下个tortoisesvn
下载http://bbs.iusesvn.com/thread-3167-1-1.html
1.安装
2.首先要建立一个数据仓库,我们假设建在E盘,数据仓库最好不要建在C盘,因为C盘重装系统以后就格了.我们先在E盘下面建立一个目录叫svnroot,然后在svnroot下面再建立一个我们专门放我们工程的目录,比如叫MyProject.于是我们在E盘下面就有了这个一个文件夹:E:\svnroot\MyProject,然后我们用svnadmin的命令,使这个文件夹变成我们的数据仓库,命令如下:
svnadmin create E:\svnroot\MyProject
或者用tortoisesvn,在MyProject目录下右键:create Repository here...也可以实现相同的功能。
3.如果运行成功的话,什么也没有输出,这个时候,我们再来到MyProject文件夹下面,我们会发现多了几个文件夹和文件,我们打开conf文件夹,然后再打开svnserve.conf文件,找到如下行# password-db = passwd,然后把它前面的#去掉,表示MyProject是需要密码验证的.但是我们密码设在哪里呢,这个时候我们再打开conf文件夹下面的passwd文件,用文本编辑器打开,在[users]下面加上我们需要启动的人员的用户和密码,比如
[users]
Danny=123456
tom=123456
这个的话,我们就启动了两个用户,一个叫Danny,密码是123456,一个叫tom,密码是123456.然后我们保存passwd文件.然后,我们再建一个文件,叫access.auth,这个文件是设置访问权限的,里面内容如下:
[MyProject:/]
Danny= rw
[MyProject:/module1]
tom=rw
Danny=rw
这表示,MyProject下面的所有子目录Danny都是有权限读写的,但是tom只有权限读写此项目下面的module1目录,这个各自的访问权限就分的更细致了.有关于MyProject文件夹下面的设置,我们就告一段落了,我们现在开始设置apache,使它能和subvertion一起工作.
4.首先来到Subersion的安装目录,进入它的bin目录,我们会发现如下两个文件:
mod_authz_svn.so
mod_dav_svn.so
我们把这两个文件复制一下,粘帖到apache的安装目录下的modules文件中,然后我们再打开apache安装目录下的conf文件夹,打开httpd.conf文件.增加如下两行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
注意,由于dav_svn需要dav_module的支持,所以要确保下面这一行没有被注释,并且保证在dav_svn之前加载:
LoadModule dav_module modules/mod_dav.so
然后模块的设置就完成了,下面我们要设置SVN的目录,以使我们的apache能知道访问不同的URL的时候,它去哪里寻找这个URL所对应的SVN目录.
在httpd.conf文件中,增加如下内容:
DAV svn
SVNPath E:/svnroot/MyProject
AuthzSVNAccessFile E:/svnroot/MyProject/conf/access.auth ---先前我们创建的access.auth 保存着用户的权限
Satisfy Any
Require valid-user
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile E:/svnroot/MyProject/conf/users.auth ----不要着急,这是后面创建的,用户名和经过md5加密的密码
Require valid-user
5. 添加完上面这些,我们会发现access.auth是我们刚才新建的,可是users.auth我们并没有新建啊.怎么就把它加进去了.不要急,现在我们就来生成users.auth文件.
进入apache的安装目录的bin文件夹,输入如下命令:
D:\Program Files\Apache Group\Apache2\bin>htpasswd -cb users.auth Danny123456
Automatically using MD5 format.
Adding password for user hadeslee
D:\Program Files\Apache Group\Apache2\bin>
我们就会发现在bin目录生成了users.auth,我们可以看到,Danny用户名已经被添加进去了,密码是用MD5加密过的.然后我们还要增加用户呢,可以用如下方法:
D:\Program Files\Apache Group\Apache2\bin>htpasswd -b users.auth tom 123456
Automatically using MD5 format.
Adding password for user tom
D:\Program Files\Apache Group\Apache2\bin>
只是在生成密码的时候,小了一个c的参数,因为c表示重新生成一个这样的文件,我们第一次的时候是要加的,后面我们要添加用户的时候,就不用这个c了.然后打开users.auth,会发现两个用户都已经在里面了,这个时候,我们把users.auth移到E:/svnroot/MyProject/conf/里面去,使我们上面的设置生效.
这个时候,我们的设置就完成了.可以在浏览器里面输入http://localhost/svn/MyProject试试看.
6.如果以后我们还要加入其它的项目呢,可以有两点解决方式
1,把以后的项目也导入到我们的MyProject的仓库中,这个的话,就不用改什么配置了
2,新建一个数据仓库,然后只要按上面的步骤,把新的设置放到httpd.conf里面就可以了.
当然,验证文件,访问权限文件,还有访问SVN的密码都要自己按上面的方法再设一遍.
最后:原博客里面有些网友提出些问题:
我按照你的方法进行安装,为什么出现403错误呢?
Forbidden
You don't have permission to access /svn/MyProject on this server.
我也遇到这样的问题,我一开始用的是tom 123456来登陆的,就有403这个错误,后来我想Danny这个用户对整个Myproject都有权限,成功; |
|