Ubuntu18.04 环境搭建——SVN 古城微笑少年丶 2022-05-15 14:13 316阅读 0赞 ### 文章目录 ### * 1. 安装部署 * 2. 基础配置 * 3. 支持 http 访问 * * 3.1 前期准备 * 3.2 配置虚拟主机 * 3.3 配置用户 * 4. 开机自启动 # 1. 安装部署 # sudo apt-get install subversion subversion-tools # 安装软件 sudo mkdir -p /home/svn # 创建工作目录 sudo mkdir -p /home/svn/workspace # 创建版本库 sudo svnadmin create /home/svn/workspace # 初始化版本库 sudo svnserve -d -r /home/svn # 启动服务 killall svnserve # 停止服务 默认情况下,SVN 使用原生协议连接版本库,访问地址为 **svn://ip:port/repo**。 * **工作目录**:SVN 服务管理的基本单元,一个工作目录下可以创建多个版本库; * **版本库**:SVN 版本管理的基本单元,通常对应一个项目。 # 2. 基础配置 # 版本库初始化时,自动在 `./conf` 目录下生成配置文件,主要有:svnserve.conf、zuthz 和 passwd。 `svnserve.conf` 用于存储**版本库配置信息**,需要修改的部分如下: [general] anon-access = none # 禁止匿名访问 auth-access = write # 授权访问权限 password-db = /home/svn/passwd # 用户配置文件存放位置 authz-db = /home/svn/authz # 权限配置文件存放位置 `passwd` 用于存储**用户名及口令信息**,配置格式为 `用户名 = 密码`,例如: moonspirit = moonspirit guest = 123456 `authz` 用于存储**用户组及权限信息**,分为 `[groups]` 和 `[repo_name:/]` 两个配置段: * `[groups]` 配置用户组信息,格式为 `组名 = 用户A,用户B`; * `[repo_name:/]` 配置目录访问权限,格式为 `@组名 = r/w/rw`,例如: [groups] g_manager = moonspirit g_guest = guest [workspace:/] @g_manager = rw @g_guest = r * = > `passwd` 和 `authz` 既可以在各版本库下单独配置,也可以在工作目录下统一配置,它们的位置在 `svnserve.conf` 中指定。 # 3. 支持 http 访问 # 通过 Apache 与 SVN 集成,支持通过 http 访问版本库,这样做的好处有: * 可以直接通过浏览器访问版本库,而不必借助 Tortoise 等工具; * 基于密文的访问控制,而不是简单的明文密码。 ## 3.1 前期准备 ## sudo apt-get install apache2-utils libapache2-mod-svn # 安装 SVN 模块 sudo chown -R www-data:www-data /home/svn/ # 授权 Apache 访问工作目录 ## 3.2 配置虚拟主机 ## 修改 `/etc/apache2/mods-available/dav_svn.conf`,配置 apache-svn 模块: <Location /svn> DAV svn SVNParentPath /opt/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd AuthzSVNAccessFile /etc/apache2/dav_svn.authz Require valid-user </Location> 修改 `/etc/apache2/apache2.conf`,赋予 `/home/svn` 工作目录访问权限: <Directory /home/svn> AllowOverride None Require all granted </Directory> ## 3.3 配置用户 ## sudo htpasswd -bc /etc/apache2/dav_svn.passwd username password # 创建密码文件并新增用户(覆盖原文件) sudo htpasswd -b /etc/apache2/dav_svn.passwd username password # 添加用户 # 4. 开机自启动 # 在 `/etc/systemd/system/` 目录下创建服务单元文件,内容如下: [Unit] Description=Subversion Server [Service] Type=forking ExecStart=/usr/bin/svnserve --daemon --root /software/svn ExecStop=/usr/bin/killall svnserve Restart=always [Install] WantedBy=default.target `systemctl` 基本用法: sudo systemctl daemon-reload # 加载新的服务单元 sudo systemctl status svn # 查看运行状态 sudo systemctl start svn # 启动服务 sudo systemctl stop svn # 停止服务 sudo systemctl restart svn # 重启服务 sudo systemctl reload svn # 重新加载配置文件
还没有评论,来说两句吧...