SVN服务器在ubuntu上的安装配置

在ubuntu上的安装配置svn

SVN服务器在ubuntu上的安装配置

1. SVN服务器的安装和配置

1.1. 安装命令

sudo apt-get install subversion
sudo apt-get install subversion-tools

1.2. 添加组和用户的命令
创建subversion用户组,并把用户www-data加入到subversion用户组中

sudo addgroup subversion
sudo usermod -G subversion -a www-data administrator

修改组也可以直接修改组文件: sudo vi /etc/group。
然后需要直接重新启动SVN服务再登录以便能够真正成为 subversion 组的一员。

1.3. 创建SVN仓库
创建目录,进入目录下创建SVN版本存放的仓库目录。仓库目录可以就是单个项目的名称。

sudo mkdir /srv/svn
sudo mkdir svnEntrepot

赋予组成员对所有新加入文件仓库的文件拥有相应的权限:

sudo chown -R www-data:subversion /srv/svn
sudo chmod -R g+rws /srv/svn

把上面创建的仓库变成 SVN 文件仓库,在目录下看到svn版本库的所有文件夹以及配置文件,如:conf、db、format、hooks、locks、README.txt。其svn的配置文件主要都在conf中,其下有authz 、hooks-env.tmpl、passwd、svnserve.conf这四个文件。

sudo svnadmin create /srv/svn/svnEntrepot

1.4. 配置SVN的配置文件

1.4.1. 配置文件/srv/svn/unitac/conf/svnserve.conf

[general]
#匿名用户权限不可读
anon-access = none
#权限用户可写
auth-access = write
#密码文件为passwd,默认在同一目录下
password-db = passwd
#权限文件为authz,默认在同一目录下
authz-db = authz

注意:每一行要顶格,前面不能空格

1.4.2. 配置文件/srv/svn/unitac/conf/ authz
配置用户权限

[groups]
admin= tone   #这里设置用户组和用户,例如admin组的用户为tone
[/]   #这表示从仓库的目录开始设置权限。
@admin =rw   #admin组有rw(读写权限) 
*=r    #其他人有r(只读权限)
[/unitac]   #对unitac子目录进行设置权限。
@admin= r

注意:这里组的名字不一定叫admin,组的名字可以任意,admin组有多个用户的话,可以这样制定admin=tone,tone1,tone2等。

1.4.3. 配置文件/srv/svn/unitac/conf/ passwd
保存用户名和密码

[users]
# harry = harryssecret
# sally = sallyssecret
tone=www 

设定用户tone的密码是www,是的没错,密码是明文的。

1.5. 启动SVN服务器

   sudo svnserve -d -r /srv/svn 
   sudo svnserve -d -r /srv/svn --listen-port 3690

-d 已守护模式启动
-r 指定svn版本库根目录,这样是便于客户端不用输入全路径,就可以访问版本库了。
–listen-port是带端口设置的启动。
例如:svn://ip:port/unitac
启动时报错处理:
查看svnserve进程pid:ps –aux #查看svnserve进程pid
杀死进程:kill -9 pid ,再次启动服务。

1.6. 查看版本

svnlook --version //  查看svn的版本
svnlook youngest myrepos //    查看到目前为止最新的版本号

2.apache服务器的安装和配置

2.1. 安装命令

sudo apt-get install apache2

2.2. 默认的网站根目录路径
Apache2安装后,默认的网站根目录是"/var/www/html",目录下面有一个index.html文件,在浏览器中输入"127.0.0.1",就可以打开该页面。

2.3. apache的配置
Apache的安装目录/etc/apache2下,需要配置下面的文件参数

2.3.1. 配置文件apache2.conf
修改apache的访问根目录,找到<Directory /var/www/html>的位置,更改/var/www/为新的根目录。

2.3.2. 配置文件/etc/apache2/sites-available/000-default.conf
修改apache的访问根目录,找到DocumentRoot /var/www/html的位置,更改/var/www为新的根目录。

2.3.3. 配置文件/etc/apache2/mods-available/dav_svn.conf
将svn配置到apache中通过http web方式进行访问,配置如下:

<Location /svn>
        DAV svn    #告诉apache哪个模块负责上面的URL
        #SVNPath /srv/svn/unitac  
        SVNParentPath /srv/svn                   
        SVNAdvertiseV2Protocol Off
        AuthType Basic   #启用基本的验证
        AuthName "Subversion Repository"
        AuthUserFile /etc/subversion/passwd
        AuthzSVNAccessFile /etc/subversion/authz
        Require valid-user
</Location>

把配置文件做一个链接

 ln -s /etc/apache2/mods-available/dav_svn.conf  /etc/apache2/mods-enabled/dav_svn.conf

SVNPath是项目库地址,如果只有一个项目库,则直接可以用SVNPath。如果有多个项目库,则可直接使用SVNParentPath,让新建的项目库放在/srv/svn/下。这两个只能配置一个。
AuthUserFile是存放用户文件。AuthzSVNAccessFile是用户组权限文件。
配置文件是告诉apache关于svn的访问路径以及相关配置文件,注意存放的根目录。
Require valid-user是登录svn要做验证。

2.3.4. 配置文件/etc/subversion/passwd
这个文件包含了用户授权的详细信息。

sudo htpasswd -c /etc/subversion/passwd user_name //添加用户的命令

系统会提示输入密码,一旦输入了密码,该用户就建立了。如果要继续创建其他用户,
注意:不能再用-c选项了,因为-c选项表示创建一个新的用户授权文件,一旦选用,原有的授权文件就被覆盖了。
修改密码和注册用户的操作是一样的。

sudo htpasswd /etc/subversion/passwd user_name

系统会提示你输入新密码,一旦输入了密码,该用户的密码就成功修改了。

2.3.5. 配置文件/etc/subversion/authz
这个文件存放被svnmanager管理的svn的权限管理文件。

mkdir /etc/subversion/autnz	
chmod 777 /etc/subversion/passwd
chmod 777 /etc/subversion/autnz

2.4. 启动apache服务
所有的配置结束,或者有修改配置的操作都需要重启apache的服务,才能使配置生效。
启动apache服务:

 `/etc/init.d/apache2 start`  
或者  sudo /etc/init.d/apache2 start

重启apache服务:

/etc/init.d/apache2 restart
或者 sudo /etc/init.d/apache2 restart

停止apache服务:

/etc/init.d/apache2 stop  
或者  sudo /etc/init.d/apache2 stop

然后就可以通过http://ip/svn/项目名 进行远程访问。

3.SVN的备份

3.1.备份指令
1)svnadmin dump备份

$svnadmin dump myrepos > 目录位置/YYmmdd_fully_backup.svn //不要放在当前目录下

在YYmmdd_fully_backup.svn文件所在的目录下输入进行导入:

$svnadmin load newrepos < YYmmdd_fully_backup.svn 

压缩备份

$svnadmin dump /home/svn/repos | gzip > YYmmdd_fully_backup.gz
导入:
$zcat YYmmdd_fully_backup.gz | svnadmin load repos

同一个服务器上的迁移:

$svnadmin dump myrepos | svnadmin load newrepos

增量备份(对应版本的备份)

$svnadmin dump /home/svn/repos –r 0:100  > YYmmdd _incremental _backup.svn
$svnadmin dump /home/svn/repos -r 101:200 --incremental > YYmmdd_incremental_backup.svn

2)svnadmin hotcopy备份
备份

$svnadmin hotcopy /home/svn/repos YYmmdd_fully_backup --clean-logs

#恢复

$svnadmin hotcopy YYmmdd_fully_backup /home/svn/repos
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值