如果事先知道版本控制服务器是window下的,建议用VisualSVN,配置很简单,没必要去捣鼓apache+subversion来费神。当然如果一定要学习下apache+svn(比如我),下面是我学习的一个过程总结,也参考了许多大侠的类似的帖子,但是还是花了将近两天时间才配出来,并对配置内容有一定的理解。
注:windows下的配置,主要是搞清楚配置的步骤,和每个步骤的大概意思。
废话不说了开始。
操作系统:windows xp
软件环境:apache_2.2.14-win32-x86-openssl-0.9.8k.msi安装包、
Subversion-1.6.6.msi 安装包、
TortoiseSVN 1.6.7(用于客户端)
1.安装apache
apache默认的端口是80端口,大家都知道这个端口很多程序使用的,如果修改,可以到 你的安装路径/Apache2.2\conf\httpd.conf 找到Listen 80 进行修改
完成后运行 http://localhost:端口
显示“It works!”,表示安装成功
2.安装Subversion
按提示操作,一路"next"
3.组装apache和subversion
在C:\Program Files\Subversion\bin\目录下复制下面两个文件
mod_authz_svn.so
mod_dav_svn.so
粘帖到C:\Program Files\Apache Software Foundation\Apache2.2\modules
然后我们再打开C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf文件.
找到
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
去掉前面的注释符号#
然后再下面添加
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
注意不要随意改变顺序。可能出现其它错误。
这样apache和svn基本上就联系起来了,当然,下面还有一个关于库的管理的配置。
4.建立svn库
利用命令行:svnadmin create E:\svnroot\myproject (区分大小写),也可以利用tortoiseSVN来建库。
建完后,大家会发现\myproject 下会多出一些文件来,特别是\myproject\conf下有svnserve.conf、authz、passwd有三个文件,这个svn的权限控制文件,如果是纯的svn,这里是需要配置的,如果是apache+svn,这里的三个文件几乎可以不要,因为我们有apache有配置自己的权限控制文件,下面有讲解。
5.把库配置给apache来代管
下面我们要设置SVN的版本库目录,以使我们的apache能知道访问 不同的URL的时候,它去哪里寻找这个URL所对应的SVN目录.
在httpd.conf文件中,增加如下内容:
<Location /svn/myproject>
DAV svn
SVNPath E:/svnroot/myproject (是你库的路径)
AuthzSVNAccessFile E:/svnroot/myproject/conf/access.auth
Satisfy Any
Require valid-user
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile E:/svnroot/myproject/conf/users.auth
Require valid-user
上面是一个单库模式的Demo,这样,这里涉及到两个文件access.auth、users.auth,文件名不是固定的,主要是配置的时候要路径指对。users.auth配置用户 access.auth配置允许用户访问的路径,下面会对这两个文件进行解释。
users.auth介绍,看下面命令
命令行模式下,到apache安装目录下的bin目录下 操作如下
C:\Program Files\Apache Software Foundation\Apache2.2\bin>htpasswd -cb users.auth admin admin
为admin用户设置好密码,创建第一个用户时创建文件,添加第二个用户则不用创建,具体命令参数有细微区别,请注意-cb
C:\Program Files\Apache Software Foundation\Apache2.2\bin>htpasswd -b users.auth tom 123456
此时把C:\Program Files\Apache Software Foundation\Apache2.2\bin 目录下的 users.auth 复制粘贴到 E:\svnroot\myproject\conf 目录下 ,不用多解释,大家大概可以明白,这里创建了两个用户admin(密码:admin)、tom(密码:123456)
我们打开users.auth文件,可以看见内容:
admin:$apr1$CS5eF5c5$xpESjPnD9TSLrmJZVBhs80
tom:$apr1$ckg8mclH$jlP/L.LENqtdvfie2rSHK0
这是加密过的,E:\svnroot\myproject\conf 这个路径就是上面提到过的svn权限管理路径,这就是我为什么说apache有自己的权限配置,原因就在这里,事情还没完,我们在E:\svnroot\myproject\conf 下面还要建立一个路径访问权限控制文件
我们再建一个文件,叫access.auth,这个文件是设置访问权限的,里面内容如下:
[myproject:/]
admin = rw
[myproject:/module1]
tom=rw
admin=rw
rm表示可读可写,这表示,myproject下面的所有子目录admin都是有权限读写的,但是tom只有权限读写此项目下面的module1目录,这个各自的访问权限就分的更细致了.这里面还有其他的设置,比如分组等,它和svn自带的/conf下的authz文件的配置大致相同,可以参考其例子.
重新启动apache服务,通过http://localhost:端口号/svn/myproject/
看见:"myproject - Revision 0: / "字样表示成功
6.向svn提交代码
在cmd命令行里输入: svn import E:\test\file:///E:/svnroot/myproject/ -m "test import"
注意:
1.(E:\test\ ) 是你要部署的项目
2.(file:///E:/svnroot/myproject/)这是你建立版本控制的仓库路径
--- 里面的 / 千万注意别写成 \ ,否则会操作失败。---
或者通过tortoiseSVN的"Import"
刷新 http://localhost:端口号/svn/myproject/
可以看见类似的版本信息,如下:
myproject - Revision 1 /
.classpath
.cvsignore
.project
.settings/
.tomcatplugin
web/
work/
ok,如果看到这些就表示成功了.
apache2.0和2.2的配置方法据说不太一样,我还没有试过,所以说一下,帖子的本义是帮助有缘人少走弯路,如果因为我没说明白给网友带来麻烦就不好了。所以上面的内容仅供参考,不过,至少我这里是成功过了。
参考的比较好的帖子:http://www.iteye.com/topic/577704
注:windows下的配置,主要是搞清楚配置的步骤,和每个步骤的大概意思。
废话不说了开始。
操作系统:windows xp
软件环境:apache_2.2.14-win32-x86-openssl-0.9.8k.msi安装包、
Subversion-1.6.6.msi 安装包、
TortoiseSVN 1.6.7(用于客户端)
1.安装apache
apache默认的端口是80端口,大家都知道这个端口很多程序使用的,如果修改,可以到 你的安装路径/Apache2.2\conf\httpd.conf 找到Listen 80 进行修改
完成后运行 http://localhost:端口
显示“It works!”,表示安装成功
2.安装Subversion
按提示操作,一路"next"
3.组装apache和subversion
在C:\Program Files\Subversion\bin\目录下复制下面两个文件
mod_authz_svn.so
mod_dav_svn.so
粘帖到C:\Program Files\Apache Software Foundation\Apache2.2\modules
然后我们再打开C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf文件.
找到
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
去掉前面的注释符号#
然后再下面添加
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
注意不要随意改变顺序。可能出现其它错误。
这样apache和svn基本上就联系起来了,当然,下面还有一个关于库的管理的配置。
4.建立svn库
利用命令行:svnadmin create E:\svnroot\myproject (区分大小写),也可以利用tortoiseSVN来建库。
建完后,大家会发现\myproject 下会多出一些文件来,特别是\myproject\conf下有svnserve.conf、authz、passwd有三个文件,这个svn的权限控制文件,如果是纯的svn,这里是需要配置的,如果是apache+svn,这里的三个文件几乎可以不要,因为我们有apache有配置自己的权限控制文件,下面有讲解。
5.把库配置给apache来代管
下面我们要设置SVN的版本库目录,以使我们的apache能知道访问 不同的URL的时候,它去哪里寻找这个URL所对应的SVN目录.
在httpd.conf文件中,增加如下内容:
<Location /svn/myproject>
DAV svn
SVNPath E:/svnroot/myproject (是你库的路径)
AuthzSVNAccessFile E:/svnroot/myproject/conf/access.auth
Satisfy Any
Require valid-user
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile E:/svnroot/myproject/conf/users.auth
Require valid-user
上面是一个单库模式的Demo,这样,这里涉及到两个文件access.auth、users.auth,文件名不是固定的,主要是配置的时候要路径指对。users.auth配置用户 access.auth配置允许用户访问的路径,下面会对这两个文件进行解释。
users.auth介绍,看下面命令
命令行模式下,到apache安装目录下的bin目录下 操作如下
C:\Program Files\Apache Software Foundation\Apache2.2\bin>htpasswd -cb users.auth admin admin
为admin用户设置好密码,创建第一个用户时创建文件,添加第二个用户则不用创建,具体命令参数有细微区别,请注意-cb
C:\Program Files\Apache Software Foundation\Apache2.2\bin>htpasswd -b users.auth tom 123456
此时把C:\Program Files\Apache Software Foundation\Apache2.2\bin 目录下的 users.auth 复制粘贴到 E:\svnroot\myproject\conf 目录下 ,不用多解释,大家大概可以明白,这里创建了两个用户admin(密码:admin)、tom(密码:123456)
我们打开users.auth文件,可以看见内容:
admin:$apr1$CS5eF5c5$xpESjPnD9TSLrmJZVBhs80
tom:$apr1$ckg8mclH$jlP/L.LENqtdvfie2rSHK0
这是加密过的,E:\svnroot\myproject\conf 这个路径就是上面提到过的svn权限管理路径,这就是我为什么说apache有自己的权限配置,原因就在这里,事情还没完,我们在E:\svnroot\myproject\conf 下面还要建立一个路径访问权限控制文件
我们再建一个文件,叫access.auth,这个文件是设置访问权限的,里面内容如下:
[myproject:/]
admin = rw
[myproject:/module1]
tom=rw
admin=rw
rm表示可读可写,这表示,myproject下面的所有子目录admin都是有权限读写的,但是tom只有权限读写此项目下面的module1目录,这个各自的访问权限就分的更细致了.这里面还有其他的设置,比如分组等,它和svn自带的/conf下的authz文件的配置大致相同,可以参考其例子.
重新启动apache服务,通过http://localhost:端口号/svn/myproject/
看见:"myproject - Revision 0: / "字样表示成功
6.向svn提交代码
在cmd命令行里输入: svn import E:\test\file:///E:/svnroot/myproject/ -m "test import"
注意:
1.(E:\test\ ) 是你要部署的项目
2.(file:///E:/svnroot/myproject/)这是你建立版本控制的仓库路径
--- 里面的 / 千万注意别写成 \ ,否则会操作失败。---
或者通过tortoiseSVN的"Import"
刷新 http://localhost:端口号/svn/myproject/
可以看见类似的版本信息,如下:
myproject - Revision 1 /
.classpath
.cvsignore
.project
.settings/
.tomcatplugin
web/
work/
ok,如果看到这些就表示成功了.
apache2.0和2.2的配置方法据说不太一样,我还没有试过,所以说一下,帖子的本义是帮助有缘人少走弯路,如果因为我没说明白给网友带来麻烦就不好了。所以上面的内容仅供参考,不过,至少我这里是成功过了。
参考的比较好的帖子:http://www.iteye.com/topic/577704