软件版本:subversion1.2.3
apache-server 2.0.55
安装到Apache
Subversion作为CVS的次代作品,Kerl真的是煞费苦心啊。现在我们就来看看如何配置它到ApacheServer。
Subversion 本身有一个自带的小server就是bin下的cvsserve ,通过svn://XXXX进行访问。同时支持ssh配置。但是弱点就是这个server对于权限和用户管理很弱,对于大型项目,必须将他挂在 ApacheServer这样的重磅萨巴上。
[svnserve的用户文件需要修改conf下的2个文件,自己看看,很简单都有注释的,这里不说了]
你应该得到subversion的二进制安装版,比较稳定的是1.2.3版本,这个版本对于apacheserver最低的版本要求是2.0.45 所以我们可以去apache官方站点下载2.0.55版本(最新已经是2.5了吧)。分别安装2个软件。
ok,软件环境好了,那就来连接他们吧。
数据库连接:
(如果你懒得改,那么安装软件的时候就一定要先安装ApacheServer,Subversion安装的时候会自动修改)
subversion可以被看作是一个特殊的数据库(事实上也就是,呵呵FSFS 和伯克利DB)。那么就需要让Apache能够访问subversion的数据库,这就用到了module概念,我们便来修改httpd.conf文件。
1。打开Apache自带的DAVmodule:去掉“LoadModule dav_module modules/mod_dav.so”前的#
2。追加访问subversion用的module:(subversion安装目录bin下自带有这2个modules)
LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"
权限设置:
比较麻烦的东西来了。我们需要配置3个东西:
1。在httpd.conf中追加<Location > 。例子如下:
#配置subversion用户权限
<Location /mysvn>
DAV svn
# http中输入 "/mysvn/Parser" URL will map to a repository F:/SVN/repository/Parser
SVNParentPath F:/SVN/repository/
#声明 accessfilepolicy 文件,目的是确认Group分类和目录的访问权限
AuthzSVNAccessFile F:/SVN/commonconf/accessfilepolicy
# only authenticated users may access the repository
# Require valid-user
# For any operations other than these, require an authenticated user.
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
# 声明userauthofapachedav文件,其内容是各个用户的md5密码
AuthType Basic
AuthName "HFSVB AuthName"
AuthUserFile F:/SVN/commonconf/userauthofapachedav
</Location>
2。accessfilepolicy 文件(放在项目的conf目录下,也可随意) 如下:
#this file communicate with httpd file''s Location Tag ,per file per Tag
#like svnserve.conf here section is [repos-name:path] or [path]
#if you use SVNParentPath in httpd.conf then here you MUST use repository name
#if you use SVNPath ,no problem
#r read w write
#don''t have any right to parser:/src/ of user guest
#[repository名字:path]
#[parser:/src/]
#guest =
[groups]
administrator = admin
developer = tester
everyone = admin, tester
#default no one has right to repos,so use * to everyone
[parser:/] #根目录下所有的文件和目录,又继承关系
* = r #默认的所有人都有 读权限
@developer = rw #这就表明只有developer(tester)才有读写权限
[ 具体的文件和内容可查阅 Orilly的《使用Subversion进行版本控制》
访问 http://www.subversion.org.cn/svnbook/1.1/index.html ]
3。userauthofapachedav文件
admin:$apr1$A45.....$WQ0RCK61I/PO4gSKt.kK60
这个文件是如何生成的呢,使用apache 的bin目录下的htpasswd.exe。用法可以参照 --help的帮助。
这里给一个例子吧
>htpasswd -cm C:/userauthofapachedav admin
>input password:admin123
>again : admin123
具体的英文忘了。呵呵不过很简单的。
好了,就这么简单。祝大家开心。这只是入门。具体的操作还要靠各位自己去感受。
关于如何设置subversion的项目库,上边提到的orilly的书就有记载。
从http://httpd.apache.org下载apache,文件名是:apache_2.0.53-win32-x86-no_ssl
安装过程和平常的windows程序类似,一路按next就行拉,在这里我不详述了
注意:如果你原先安装了iis或者tomcat等占用了80端口的服务器的话,那么你要把它们的端口改成其他的或者关闭这些端口
第二步
从到 http://subversion.tigris.org/ 下载最新版的 Subversion
我下载的是svn-1.1.2-setup-en-2.exe
安装过程一路按next就行拉
第三步
把 <Subversion_root>/httpd/ 目录下的
mod_dav_svn.so 和 mod_authz_svn.so 复制到
<Apache_root> 底下的 bin 或 modules 的目录中去
第四步
把 <Subversion_root>/bin/ 目录下的
libdb42.dll、libeay32.dll、以及 ssleay32.dll
拷贝到apache根目录下的bin或者modules目录下
第五步
修改apache的httpd.conf(位于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
第六步
设定档案库路径
把下面语句拷贝到httpd.conf目录下
<Location /svn>
DAV svn
SVNParentPath d:/svn
</Location>
Location中的 /svn 是URI
如果你的服务器可以通过http://localhost访问的话,那么你就要访问你的档案库,你只要在它的后面加上/svn就行了 如:http://localhost/svn
SVNParentPath d:/svn 这是设定你的档案库的绝对路径
第七步创建档案库
假设我们把所有的档案库都放在d:/svn目录下,现在要建立一个测试用repository,指令为
md d:/svn
svnadmin create d:/svn/repository
执行完毕后,在d;/svn/repository目录下就会有一些相应的文档生成的
现在你可以通过http://localhost/svn/repository来访问你的文档了
第八步添加验证方式
1。先利用htpasswd工具建立一个密码文件
%APACHE_HOME%\bin\htpasswd –c -p d:\svn\passwords user1
运行完毕后,系统会提示你添加密码的
输入密码12345678后
在d:\svn目录下就会生成一个passwords文件了
用编辑工具打开这个文件你就会发现文件的内容只有一行
user1:1234567
你如果想再添加一个用户的话直接在下一行添加类似的语句就行拉
如:想添加用户名是:kk密码是:bb那么你可以写成
kk:bb
2.修改apache的httpd.conf文件
把
<Location /svn>
DAV svn
SVNParentPath d:/svn
</Location>
修改成
<Location /svn>
DAV svn
SVNParentPath d:/svn
AuthType Basic
AuthName "Restricted Files"
AuthUserFile d:/svn/passwords
Require user user1
Require user kk
</Location>
保存后
重新启动apache。OK!
^_^EnjoyYouself!
1.环境工具说明:
服务器linux环境;apache,httpd-2.0.58.tar.gz;subversion-1.3.1.tar.gz
2.安装apache
#tar zxvf httpd-2.0.58.tar.gz
#cd httpd-2.0.58
#./configure --enable-dav --enable-so --enable-maintainer-mode tips:一定要写—enable-dav,否则安装时候会漏掉需要的配置包
#make
#make install
此时会产生/usr/local/apache2目录
tips:此时运行apache,之后安装svn后可以自动加载模块。
运行apache,到apache2的bin目录下
#apachetl start
3.安装subversion
#tar zxvf subversion-1.1.1.tar.gz
#./configure --with-apxs=/usr/local/apache2/bin/apxs
#make
#make install
此时会自动在/usr/local/apache2/conf/httpd.conf添加
LoadModule dav_svn_module modules/mod_dav_svn.so
如果没有就手工添加。
4.检查
在服务器web上输入http://localhost看是否出现apache的测试页面,如果出现apache就是正常工作。
运行svnserver --version确认版本,如果正常则sub运行正常。
二.建立仓库
Subversion 的档案库是个中央仓储, 用来存放任意数量项目的受版本控管数据,建立方法很简单
#svnadmin create path/to/repos
举个例子:#svnadmin create /home/mysvn
三.整合apache和subversion
Subversion服务器有两种运行方式,一是可以作为Apache 2.0的一个模块,以WebDAV/DeltaV协议与外界连通;另外,也可使用Subversion 自带的小型服务器程序svnserve。
以http方式运行
在/usr/local/apache2/conf/httpd.conf中加入:
<Location /svn/repository>
DAV svn
SVNPath /home/mysvn
</Location>
在服务器的浏览器中输入网址: http://localhost/svn/repository/
这时候,你会看到reversion0的界面,说明仓库就已经可以工作了。
tips:此时如果不能看到,请小心检查以上几步,如果都正确,请检查自己的httpd.conf配置文件,其中检查apache调用svn的端口是否占用,因为linux自带的web服务占用的是80端口,而apache默认调用的也是80端口。
四.用户添加以及权限设置
1.用户添加:
因为subversion跟apache整合在一起,所以用户添加管理和权限设置都是apache的任务。
进入/urs/local/apaceh2/bin,添加用户
# ### 第一次: 以 -c 建立档案
# htpasswd -c /etc/svn-auth-file harry
New password: *****
Re-type new password: *****
Adding password for user harry
# htpasswd /etc/svn-auth-file sally
New password: *******
Re-type new password: *******
Adding password for user sally
#
2.用户权限添加
在/usr/local/apache2/conf/httpd.conf的加入:
<Location /svn/repository >
DAV svn
SVNPath /home/mycvs
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>
重新启动 Apache后,如果有人要访问SVN服务器,系统会要求他输入用户名和密码。 只有输入Sally 或Harry的用户名和相应的密码,才可以对档案库进行修改和访问。
权限设置在svn-auth-file内
比如仓库rpo,其下有p1,p2两个目录,用户有a,b
#用户a,b只能对rpo目录下的目录进行read,没有权限write
[rpo:\]
a = r
b = r
#用户a对p1有读写的功能,用户b只能读
[doc:/p1]
a = rw
b = r
tips:请注意用户会继承上级目录的权限。小心设置,不要相互冲突。
此时用户登录只需要输入正确的用户名和密码即可登录,如果不能访问,看以下说明:
tips:看你的用户是否有查看文件的权限,使用命令#chown –R apache.apache /path/to/file
3.用户组和用户组权限设置
用户组添加如下:
[groups]
Ppc = a, b, c
Symbian = d, e, f
用户组权限设置要在前面添加@标志,表示对组内所有成员权限一样
[doc:/]
@symbian = r
好了,到了这里应该服务器可以正常运作了。
apache-server 2.0.55
安装到Apache
Subversion作为CVS的次代作品,Kerl真的是煞费苦心啊。现在我们就来看看如何配置它到ApacheServer。
Subversion 本身有一个自带的小server就是bin下的cvsserve ,通过svn://XXXX进行访问。同时支持ssh配置。但是弱点就是这个server对于权限和用户管理很弱,对于大型项目,必须将他挂在 ApacheServer这样的重磅萨巴上。
[svnserve的用户文件需要修改conf下的2个文件,自己看看,很简单都有注释的,这里不说了]
你应该得到subversion的二进制安装版,比较稳定的是1.2.3版本,这个版本对于apacheserver最低的版本要求是2.0.45 所以我们可以去apache官方站点下载2.0.55版本(最新已经是2.5了吧)。分别安装2个软件。
ok,软件环境好了,那就来连接他们吧。
数据库连接:
(如果你懒得改,那么安装软件的时候就一定要先安装ApacheServer,Subversion安装的时候会自动修改)
subversion可以被看作是一个特殊的数据库(事实上也就是,呵呵FSFS 和伯克利DB)。那么就需要让Apache能够访问subversion的数据库,这就用到了module概念,我们便来修改httpd.conf文件。
1。打开Apache自带的DAVmodule:去掉“LoadModule dav_module modules/mod_dav.so”前的#
2。追加访问subversion用的module:(subversion安装目录bin下自带有这2个modules)
LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"
权限设置:
比较麻烦的东西来了。我们需要配置3个东西:
1。在httpd.conf中追加<Location > 。例子如下:
#配置subversion用户权限
<Location /mysvn>
DAV svn
# http中输入 "/mysvn/Parser" URL will map to a repository F:/SVN/repository/Parser
SVNParentPath F:/SVN/repository/
#声明 accessfilepolicy 文件,目的是确认Group分类和目录的访问权限
AuthzSVNAccessFile F:/SVN/commonconf/accessfilepolicy
# only authenticated users may access the repository
# Require valid-user
# For any operations other than these, require an authenticated user.
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
# 声明userauthofapachedav文件,其内容是各个用户的md5密码
AuthType Basic
AuthName "HFSVB AuthName"
AuthUserFile F:/SVN/commonconf/userauthofapachedav
</Location>
2。accessfilepolicy 文件(放在项目的conf目录下,也可随意) 如下:
#this file communicate with httpd file''s Location Tag ,per file per Tag
#like svnserve.conf here section is [repos-name:path] or [path]
#if you use SVNParentPath in httpd.conf then here you MUST use repository name
#if you use SVNPath ,no problem
#r read w write
#don''t have any right to parser:/src/ of user guest
#[repository名字:path]
#[parser:/src/]
#guest =
[groups]
administrator = admin
developer = tester
everyone = admin, tester
#default no one has right to repos,so use * to everyone
[parser:/] #根目录下所有的文件和目录,又继承关系
* = r #默认的所有人都有 读权限
@developer = rw #这就表明只有developer(tester)才有读写权限
[ 具体的文件和内容可查阅 Orilly的《使用Subversion进行版本控制》
访问 http://www.subversion.org.cn/svnbook/1.1/index.html ]
3。userauthofapachedav文件
admin:$apr1$A45.....$WQ0RCK61I/PO4gSKt.kK60
这个文件是如何生成的呢,使用apache 的bin目录下的htpasswd.exe。用法可以参照 --help的帮助。
这里给一个例子吧
>htpasswd -cm C:/userauthofapachedav admin
>input password:admin123
>again : admin123
具体的英文忘了。呵呵不过很简单的。
好了,就这么简单。祝大家开心。这只是入门。具体的操作还要靠各位自己去感受。
关于如何设置subversion的项目库,上边提到的orilly的书就有记载。
搞定subversion与apache的结合
第一步:安装apacheHttp从http://httpd.apache.org下载apache,文件名是:apache_2.0.53-win32-x86-no_ssl
安装过程和平常的windows程序类似,一路按next就行拉,在这里我不详述了
注意:如果你原先安装了iis或者tomcat等占用了80端口的服务器的话,那么你要把它们的端口改成其他的或者关闭这些端口
第二步
从到 http://subversion.tigris.org/ 下载最新版的 Subversion
我下载的是svn-1.1.2-setup-en-2.exe
安装过程一路按next就行拉
第三步
把 <Subversion_root>/httpd/ 目录下的
mod_dav_svn.so 和 mod_authz_svn.so 复制到
<Apache_root> 底下的 bin 或 modules 的目录中去
第四步
把 <Subversion_root>/bin/ 目录下的
libdb42.dll、libeay32.dll、以及 ssleay32.dll
拷贝到apache根目录下的bin或者modules目录下
第五步
修改apache的httpd.conf(位于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
第六步
设定档案库路径
把下面语句拷贝到httpd.conf目录下
<Location /svn>
DAV svn
SVNParentPath d:/svn
</Location>
Location中的 /svn 是URI
如果你的服务器可以通过http://localhost访问的话,那么你就要访问你的档案库,你只要在它的后面加上/svn就行了 如:http://localhost/svn
SVNParentPath d:/svn 这是设定你的档案库的绝对路径
第七步创建档案库
假设我们把所有的档案库都放在d:/svn目录下,现在要建立一个测试用repository,指令为
md d:/svn
svnadmin create d:/svn/repository
执行完毕后,在d;/svn/repository目录下就会有一些相应的文档生成的
现在你可以通过http://localhost/svn/repository来访问你的文档了
第八步添加验证方式
1。先利用htpasswd工具建立一个密码文件
%APACHE_HOME%\bin\htpasswd –c -p d:\svn\passwords user1
运行完毕后,系统会提示你添加密码的
输入密码12345678后
在d:\svn目录下就会生成一个passwords文件了
用编辑工具打开这个文件你就会发现文件的内容只有一行
user1:1234567
你如果想再添加一个用户的话直接在下一行添加类似的语句就行拉
如:想添加用户名是:kk密码是:bb那么你可以写成
kk:bb
2.修改apache的httpd.conf文件
把
<Location /svn>
DAV svn
SVNParentPath d:/svn
</Location>
修改成
<Location /svn>
DAV svn
SVNParentPath d:/svn
AuthType Basic
AuthName "Restricted Files"
AuthUserFile d:/svn/passwords
Require user user1
Require user kk
</Location>
保存后
重新启动apache。OK!
^_^EnjoyYouself!
Linux下Subversion+apache服务器配置
一.安装服务器端1.环境工具说明:
服务器linux环境;apache,httpd-2.0.58.tar.gz;subversion-1.3.1.tar.gz
2.安装apache
#tar zxvf httpd-2.0.58.tar.gz
#cd httpd-2.0.58
#./configure --enable-dav --enable-so --enable-maintainer-mode tips:一定要写—enable-dav,否则安装时候会漏掉需要的配置包
#make
#make install
此时会产生/usr/local/apache2目录
tips:此时运行apache,之后安装svn后可以自动加载模块。
运行apache,到apache2的bin目录下
#apachetl start
3.安装subversion
#tar zxvf subversion-1.1.1.tar.gz
#./configure --with-apxs=/usr/local/apache2/bin/apxs
#make
#make install
此时会自动在/usr/local/apache2/conf/httpd.conf添加
LoadModule dav_svn_module modules/mod_dav_svn.so
如果没有就手工添加。
4.检查
在服务器web上输入http://localhost看是否出现apache的测试页面,如果出现apache就是正常工作。
运行svnserver --version确认版本,如果正常则sub运行正常。
二.建立仓库
Subversion 的档案库是个中央仓储, 用来存放任意数量项目的受版本控管数据,建立方法很简单
#svnadmin create path/to/repos
举个例子:#svnadmin create /home/mysvn
三.整合apache和subversion
Subversion服务器有两种运行方式,一是可以作为Apache 2.0的一个模块,以WebDAV/DeltaV协议与外界连通;另外,也可使用Subversion 自带的小型服务器程序svnserve。
以http方式运行
在/usr/local/apache2/conf/httpd.conf中加入:
<Location /svn/repository>
DAV svn
SVNPath /home/mysvn
</Location>
在服务器的浏览器中输入网址: http://localhost/svn/repository/
这时候,你会看到reversion0的界面,说明仓库就已经可以工作了。
tips:此时如果不能看到,请小心检查以上几步,如果都正确,请检查自己的httpd.conf配置文件,其中检查apache调用svn的端口是否占用,因为linux自带的web服务占用的是80端口,而apache默认调用的也是80端口。
四.用户添加以及权限设置
1.用户添加:
因为subversion跟apache整合在一起,所以用户添加管理和权限设置都是apache的任务。
进入/urs/local/apaceh2/bin,添加用户
# ### 第一次: 以 -c 建立档案
# htpasswd -c /etc/svn-auth-file harry
New password: *****
Re-type new password: *****
Adding password for user harry
# htpasswd /etc/svn-auth-file sally
New password: *******
Re-type new password: *******
Adding password for user sally
#
2.用户权限添加
在/usr/local/apache2/conf/httpd.conf的加入:
<Location /svn/repository >
DAV svn
SVNPath /home/mycvs
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>
重新启动 Apache后,如果有人要访问SVN服务器,系统会要求他输入用户名和密码。 只有输入Sally 或Harry的用户名和相应的密码,才可以对档案库进行修改和访问。
权限设置在svn-auth-file内
比如仓库rpo,其下有p1,p2两个目录,用户有a,b
#用户a,b只能对rpo目录下的目录进行read,没有权限write
[rpo:\]
a = r
b = r
#用户a对p1有读写的功能,用户b只能读
[doc:/p1]
a = rw
b = r
tips:请注意用户会继承上级目录的权限。小心设置,不要相互冲突。
此时用户登录只需要输入正确的用户名和密码即可登录,如果不能访问,看以下说明:
tips:看你的用户是否有查看文件的权限,使用命令#chown –R apache.apache /path/to/file
3.用户组和用户组权限设置
用户组添加如下:
[groups]
Ppc = a, b, c
Symbian = d, e, f
用户组权限设置要在前面添加@标志,表示对组内所有成员权限一样
[doc:/]
@symbian = r
好了,到了这里应该服务器可以正常运作了。