`
firecool
  • 浏览: 81709 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Ubuntu SVN服务器安装

阅读更多

1、安装Subversion


sudo apt-get install subversion

2、建立存储仓库


sudo mkdir /var/svnroot

  • cd /var/svnroot


  • 生成项目

    sudo svnadmin create projectname


    添加密码验证:

    sudo gedit /var/svnroot/projectname /conf/svnserve.conf

    去掉password-db = passwd 前面的#号注释。

    修改passwd文件:

    sudo nano /var/svnroot/projectname /conf/passwd

    添加用户名=密码对,如:user=123

    svnserve.conf配置说明:

    anon-access = read

  • auth-access = write
  • password-db = passwd


  • anon-access
    和 auth-access 分别指定匿名和有权限用户的权限,默认给匿名用户只读的权限,如果想拒绝匿名用户的访问,只需把 read 改成
    none 就能达到目的。password-db 后的 passwd 则为定义用户名及密码的文件路径。这个文件默认跟 snvserve.conf
    在同一个目录。

    3、导入版本库


    把 /var/www 下的内容导入到版本号中:

    sudo svn import -m "第一次导入"  /var/www file:///var/svnroot/projectname


    显示结果:

    增加 /var/www/index.html

    增加 /var/www/index.php

    提交后的版本为 1。

    4、启动服务器


    svn 服务器可以用两种方法架设:

    使用 svn 自带的 svnserve 实用程序和利用 Apache 架设。

    1)使用 svnserve 搭建 svn 服务器。


    启动svn服务器:

    sudo /usr/bin/svnserve -d -r /var/svnroot/

    测试服务器:

    sudo svn checkout svn://192.168.0.4/projectname


    A inlocals/index.html

    A inlocals/index.php

    取出版本 1。

    修改index.html,提交修改:svn commit –username kokko –password 123456

    正在发送 index.html

    传输文件数据 .

    提交后的版本为 2。

    可以尝试重命名文件:svn rename index.php test.php

    新增一个文件:svn add index.php

    移动 index.php 到 blog/app 下:svn move index.php blog/app

    注意:


    我提交时提示

    svn: 不能打开文件“/var/www/inlocals/.svn/lock”: Permission denied

    此处是权限问题,我执行sudo chmod -Rf 777 /var/svnroot/inlocals/可以顺利提交,但是为了安全起见,可以为svn专门建立一个用户组。

    注:


    以前我一直用xinetd来启动svnserve的守护进程。

    安装xinetd

    sudo apt-get install xinetd

    编辑 /ect/xinetd.conf

    service svn

  • {
  •         disable         = no
  •         socket_type     = stream
  •         protocol        = tcp
  •         wait            = no
  •         user            = svn
  •         group           = subversion (或svn))
  •         umask           = 002
  •         port            = 3690
  •         server          = /usr/bin/svnserve
  •         server_args     = -i -r /home/svn
  • }


  • 2)利用 Apache 架设Subversion 服务器


    首先为apache安装mod_dav和mod_dav_svn两个模块:

    sudo apt-get install libapache2-svn

    确定 mod_dav 和 mod_dav_svn 被打开:

    a2enmod dav dav_svn

    配置Apaache,打开httpd.conf

    添加:

  •         DAV svn
  •         SVNParentPath /var/svnroot/

  • [*]


    执行sudo svn checkout http://192.168.0.4/svnprojects/projectname
    检出版本库

    设定用户的权限和验证

    现在不管谁都可以往SVN里塞东西,为了更好的控制,我们还需要设定访问权限,比如让指定的用户可以 commit,其他的只能 checkout。

    因为我们在 Apache 上,所以访问权限的控制就可以直接借用 Apache 的,首先为你的用户设定用户名和密码:

    先为管理员添加一个帐号,

    sudo htpasswd -cmb /home/kokkowon/passwords admin 111111

    再增加一个帐号:

    sudo htpasswd -mb /home/kokkowon/passwords kokko 222222

    然后修改httpd.conf:

  • DAV svn
  • SVNParentPath /var/svnroot/
  • AuthType Basic #验证类型设置
  • AuthName "Please Auth your accout" #验证提示框
  • AuthUserFile /home/kokkowon/passwords    #验证配置文件
  • Require valid-user

  • [*]


    说明:

    最后,你需要把 版本根目录所在的目录和文件的所有权都改成系统中操作 Apache 的用户,这样在 commit 的时候才会被 Apache 认可。

     

    分享到:
    评论

    相关推荐

    Global site tag (gtag.js) - Google Analytics