Ubuntu18.04基于Apache搭建SVN服务器

发布时间 2023-03-30 08:26:18作者: opencoder

安装必需工具

sudo apt-get install apache2 subversion libapache2-mod-svn

建立SVN仓库

  1. 确定SVN根目录为 /usr/svn,并创建仓库。
    sudo svnadmin create /usr/svn/test1
    sudo chown -R daemon /usr/svn/test1  # may be optional, not sure!!
    sudo chmod –R 777 /usr/svn/test1
  1. 配置仓库参数, 编辑 ./conf/svnserver.conf, 这只仓库的读写权限及认证来源。
    [general]
    anon-access = read
    auth-access = write       
    password-db = passwd      
    authz-db =authz           # 前面加../../目的多版本库时使用同一的用户名密码
    [sasl]
  1. 启动SVN Server
    svnserve -d -r /usr/svn  # How about multiple svn folders ?

配置Apache参数

  • 通过 htpasswd 生成对应用户的 http 认证信息:
    sudo htpasswd -c /usr/svn/dav_svn.passwd 用户名
  • 修改 apache2 配置文件
    sudo vi /etc/apache2/mods-available/dav_svn.conf
    <Location /svn>
        DAV svn
        AVNParentPath /usr/svn       #根目录
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile /usr/svn/dav_svn.passwd
        ### AuthzSVNAccessFile /usr/svn/authz ## 这个是不需要的 
        Require valid-user
        Order Deny,Allow #设置权限
        Allow from all #设置权限
    </Location>
  • 重启Apache2服务
    systemctl restart apache2.service
    按以下方式访问svn: http://服务器地址/svn/库名

SVN 备份与还原

  • SVN 备份
    svnadmin dump myproject > myproject_backup.svn
  • SVN 还原
    # create svn repo first
    1) svnadmin create myproject
    2) sudo chown -R daemon /var/svn/myproject
    3) sudo chmod -R 777 /var/svn/myproject
    
    # restore svn repo
    svnadmin load myproject < myproject_backup.svn

安装Samba服务器

安装Samba
sudo apt-get install  samba

Samba服务配置
sudo mkdir /home/XXX/samba_share  # create share folder
sudo chmod 777  /home/XXX/samba_share #

编辑 /etc/samba/smb.conf,添加如下内容:

[share_folder]                        ### need change here!!!
    path = /home/XXX/samba_share  ### need change here!!!
    available = yes
    browseable = yes
    public = yes
    writable = yes

重启smb服务器
sudo service smbd restart

现在就可以通过这样的形式来访问共享目录了: \\192.168.1.100\share_folder

参考链接:
https://blog.csdn.net/u010494797/article/details/106281726
https://blog.csdn.net/u012308586/article/details/105555737