阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu配置SVN及http模式访问

108次阅读
没有评论

共计 2820 个字符,预计需要花费 8 分钟才能阅读完成。

假设已经安装并在 80 端口启动了 apache 服务器。所有操作都在 root 用户下进行,特别建立的仓库文件夹和打开 svn 服务器建立仓库都是在 root 用户权限下进行,这样会防止最后客户端操作时发生权限问题,实际使用可以新建 svn 专用用户并赋予读写权限进行管理。

安装 SVN

  apt-get install subversion

建立 svn 仓库

1). 建立 svn 目录:(使用隐藏目录)

mkdir /home/.svn
cd /home/.svn

2). 创建仓库 test1:

mkdir test1
svnadmin create /home/.svn/test1

执行完毕后 test1 目录有 svnadmin 创建的目录和文件
3). 创建仓库 test2:

mkdir test2
svnadmin create /home/.svn/test2

执行完毕后 test2 目录有 svnadmin 创建的目录和文件

配置和管理 svn

1). 配置 svnserve.conf
每个仓库的配置文件在 $repos/conf/ 下,vim svnserve.conf,配置项在 [general] 下:
anon-access:匿名用户的权限,可以为 read,write 和 none,默认值 read。不允许匿名用户访问:anon-access = none
auth-access:认证用户的权限,可以为 read,write 和 none,默认值 write。
password-db:密码数据库的路径,去掉前边的#
authz-db:认证规则库的路径,去掉前边的 #。
注意:这些配置项的行都要顶格,否则会报错。修改配置后需要重启 svn 才能生效。
2). 配置 passwd 文件
这是每个用户的密码文件,比较简单,就是“用户名 = 密码”,采用的是明码。如

adminuser = passwordxxx
user1 = 111111
user2 = 222222

3). 配置 authz 文件
[groups]:为了便于管理,可以将一些用户放到一个组里边,比如:

[groups]
admin = adminuser
develop = user1,uesr2

groups 下边的 sections 表示对一个目录的认证规则,比如对根目录的认证规则的 section 为[/]。设置单用户的认证规则时一个用户一行,如果使用 group,需要在 group 名字前加 @

[/]
@admin=rw  #admin 用户组对根目录的权限为 rw

启动时如果从 /home/.svn/test1 启动,/ 就是 test1 目录,用如上方式以 test1 目录为根设置权限。
如果从 /home/.svn/ 启动,每个仓库根还是自己的起始目录。可以采用如上方式设置 test1 的权限,也可以采用如下方式:

[test1:/]
@admin=rw
[test1:/trunk/test1]
@develop=rw

每个仓库的根目录 (/) 就是自己的起始目录;[repos:/]这种方式只适用于多仓库的情况;[/]适合于单仓库和单仓库的方式。

启动和停止 svn

1). 启动:
从 test1 目录(某个项目仓库目录)启动

svnserve -d -r /home/.svn/test1

根目录 (/) 是 test1,authz 中规则的配置使用 section[/]。访问方式为:svn://192.168.0.87/
从.svn 目录启动

svnserve -d -r /home/.svn

根目录 (/) 是.svn,authz 中对 test1 的配置使用 section[test1:/] , 访问方式为:
svn://192.18.0.87/test1
svn://192.18.0.87/test2
如果需要 svn 自启动,把命令加入 /etc/rc.local 中
2). 检查 svn 服务器是否已经启动(svn 默认使用 3690 端口):

netstat -tnl | grep 3690
  • 1

3). 停止

killall svnserve

配置 http 方式访问

将 svn 配置到 apache 中通过 http web 方式访问需要编辑 /etc/apache2/apache.conf 文件,然后将如下内容添加到 apache.conf 尾部

<Location /test1>
    DAV svn
    SVNPath /home/.svn/test1
    AuthzSVNAccessFile /home/.svn/test1/conf/authz
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /home/.svn/test1/conf/passwd
    Require valid-user
</Location> 

有多个项目时就需要添加多个上述配置项即可。
同时为了使得 apache 能够识别 svn 的权限配置项,需要加载确保 apache 加载了如下模块:

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

上述配置完成之后,就可以使用 http://192.18.0.87/test1 的方式访问了。

Ubuntu 14.04 下搭建 SVN 服务器 svn://  http://www.linuxidc.com/Linux/2015-01/111956.htm

CentOS 6.2 SVN 搭建 (YUM 安装) http://www.linuxidc.com/Linux/2013-10/91903.htm

CentOS 6.5 部署 Apache+SVN  http://www.linuxidc.com/Linux/2013-12/94315.htm

Apache+SVN 搭建 SVN 服务器 http://www.linuxidc.com/Linux/2013-03/81379.htm

Windows 下 SVN 服务器搭建和使用 + 客户端重新设置密码 http://www.linuxidc.com/Linux/2013-05/85189p5.htm

Ubuntu Server 12.04 安装 SVN 并迁移 Virtual SVN 数据 http://www.linuxidc.com/Linux/2013-05/84695.htm

Ubuntu Server 搭建 svn 服务以及迁移方法 http://www.linuxidc.com/Linux/2013-05/84693.htm

更多 Ubuntu 相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-05/117892.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2820字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中