对于ubuntu下安装subversion的几点更正和补充

来源:百度文库 编辑:神马文学网 时间:2024/04/27 23:38:02
如何在Ubuntu 5.10 下 Apache2 SSL 的配置方法
http://passos.cnblogs.com/archive/2006/02/18/332992.html
http://snk.blogbus.com/logs/2005/09/1476753.html
如何在ubuntu下安装SubVersion 的完整版本:
http://www.ubuntu.org.cn/support/documentation/wiki/SubVersion
QUOTE:
通过 WebDAV 协议访问 (http://)
通过 WebDAV 协议访问 SVN repository, 你必须配置你的 Apache 2 web server.
你必须增加下面的部分打破你的 /etc/apache2/apache2.conf 文件:

DAV svn
SVNPath /path/to/repo
AuthType Basic
AuthName "Your repository name"
AuthUserFile /etc/subversion/passwd

Require valid-user


由于ubuntu下部分文件的改变,现在是使用mods-available目录下的dav_svn.conf,dav_svn.load文件来控制,因此我们的配置可以这样写:

DAV svn
SVNPath /var/svn/sw7 <---这里必须写文件夹的全路径,这一点和中文网站上不一样
AuthType Basic
AuthName "VIA Software Sw7 Documents Server"
AuthUserFile /etc/apache2/passwd
AuthzSVNAccessFile /etc/apache2/svn-access-file

Require valid-user


接下来我们要做的是
# chown -R www-data.www-data /var/svn/sw7
# htpasswd2 -c /etc/apache2/passwd geminis
vi AuthzSVNAccessFile
[groups]
admin = geminis,alex
devteam1 = thunder,eric,jun,ariel
devteam2 = ronger
[/]
* = r
@admin = rw
thunder =
@devteam1 = rw
出问题的时候,不要着急,可以先看看 /var/log/apache2/下的日志
再写一个小的php程序,可以在同一页面里读出所有的仓库,方便链接[ DISCUZ_CODE_4 ]
这才是正解:
转自肥肥世家
Subversion是新一代的开源版本控制系统,用以取代CVS。有关Subversion最详尽的资料就是官方的Subversion Book了。它是由开源社区编写的自由图书,已通过O‘Reilly Media出版。下面简单介绍一下Subversion在Debian下的安装和配置过程。
*
安装:
debian:~# apt-get install subversion subversion-tools
*
创建一个新的储存库:
debian:~# svnadmin create /data/svn
在/data/svn目录创建一个新的空储存库,数据储存方式默认采用Berkeley DB。
*
导入你的源码:
debian:~# svn import /data/ldap file:///data/svn/ldap
把/data/ldap整个目录导入到储存库中的ldap目录中,储存库的ldap目录会自动创建。
*
显示储存库内容:
debian:~# svn list file:///data/svn/ldap
ldap_add.py
ldap_del.py
ldap_modify.py
ldap_search.py
显示ldap目录内容,成功导入。
上面我使用了file:///形式的URL来访问Subversion库,这表示在本地通过文件系统访问。但我们的Subversion库可能需要通过网络被其它用户访问,这就需要用到其它的协议,下表是Subversion支持的各种访问协议:
Table 8.1. 访问协议
协议 访问方法
file:/// 通过本地磁盘访问。
http:// 与Apache组合,通过WebDAV协议访问。
https:// 同上,但支持SSL协议加密连接。
svn:// 通过svnserve服务自定义的协议访问。
svn+ssh:// 同上,但通过SSH协议加密连接。
下面介绍与Apache组合通过WebDAV方式访问Subversion库的方式:
*
首先要安装好Apache2,并安装好提供WebDAV访问和svn访问的的mod_dav模块和mod_dav_svn模块:
debian:~# apt-get install apache2 libapache2-svn
*
配置文件位于/etc/apache2/mods-enabled/目录下,配置文件共有两个,分别是dav_svn.conf和dav_svn.load,dav_svn.load文件负责装载必要的模块,内容如下:
# Load mod_dav_svn when apache starts
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
在装载mod_dav_svn.so前,必须先装载mod_dav.so模块。它由dav.load文件控制,内容如下:
LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
dav_svn.conf是mod_dav_svn.so模块的配置文件,内容如下:
# dav_svn.conf - Example Subversion/Apache configuration
#
# For details and further options see the Apache user manual and
# the Subversion book.
# ...
# URL controls how the repository appears to the outside world.
# In this example clients access the repository ashttp://hostname/svn/
#设置访问路径
# Uncomment this to enable the repository,
DAV svn #启用
# Set this to the path to your repository
SVNPath /data/subversion #设置储存库路径,仅支持单个储存库,该路径要可被Apache进程访问。
#SVNParentPath /data/subversion #如果subversion下有多个储存库,则用SVNParentPath
# The following allows for basic http authentication. Basic authentication
# should not be considered secure for any particularly rigorous definition of
# secure.
# to create a passwd file #按下面的步骤创建Apache用户验证文件
# # rm -f /etc/apache2/dav_svn.passwd
# # htpasswd2 -c /etc/apache2/dav_svn.passwd dwhedon
# New password:
# Re-type new password:
# Adding password for user dwhedon
# #
# Uncomment the following 3 lines to enable Basic Authentication
AuthType Basic #启用Apache基础验证
AuthName "Subversion Repository" #设置验证框标题
AuthUserFile /etc/apache2/dav_svn.passwd #指定验证用户文件名
# Uncomment the following line to enable Authz Authentication
AuthzSVNAccessFile /etc/apache2/dav_svn.authz #启用目录级别授权,dav_svn.authz是授权配置文档
# The following three lines allow anonymous read, but make
# committers authenticate themselves.
# #允许匿名访问,不允许Commit,不能与AuthzSVNAccessFile同时使用
Require valid-user
#


修改/data/subversion目录访问权限使它可被Apache进程访问,我的Apache是用www-data启动的,所以设置方法如下:
debian:~# chown -R www-data.www-data /data/subversion
通过Apache的用户验证功能可以区别匿名用户和验证用户,从而赋予匿名用户读权限和验证用户读/写的权限。这些权限只能在全局范围内设置,不能设置具体的某个目录是否能被某个用户操作。要实现目录级别的授权,就要使用mod_authz_svn.so模块提供的 AuthzSVNAccessFile指令。它会指定一个授权文档,该授权文档设置具体的目录权限。根据上面的配置,授权文档名叫 dav_svn.authz,它的内容如下:
[groups] #定义组
admin=jims,ringkee
tests=tester1,tester2
[erp:/] #定义erp储存库根目录的访问权限
@admin=rw #admin组有读写权限
tests=r #test用户只有读权限
[oa:/test] #定义oa储存库下test目录的访问权限
*= #禁止所有用户访问,星号代表所有用户,权限为空代表没有任何权限
ringkee=rw #打开ringkee用户的读写权限
[Note]
在该文件中使用的用户需在apache2的用户文件/etc/apache2/dav_svn.passwd中预先设置好。
来源:http://www.lupaworld.com/441/viewspace_826.html