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

Ubuntu 12.04 64位上搭建SVN服务器

425次阅读
没有评论

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

前情提要:福无双至,祸不单行。这句话映射到程序员身上就是不但笔记本电脑进厂了,而且连电脑上近一个月写的代码也丢了。欲哭无泪之际,开始思量着给自己的代码找个安身之所。说起鄙人那堆可怜的代码。最开始的时候,是在台式机上装了本地的 SVN 服务器。代码不出门,全在家里住。那会毕业不久,写的东西少也不怎么实用。也没有代码库的概念。后来积累的东西多了,遇到的很多问题都属于重复编码。家里的代码库连不上网,那拷硬盘放着呗。老板看你整天用硬盘不爽不说,代码不同步搞到千疮百孔。再后来开始用 git 了。用着还不错,就是私有化项目这一块没弄,也没敢全往上面传。直到上星期笔记本挂了,丢了几份代码。思来想去,还是得自己开个代码仓库。存到服务器上提交方便,也多份保障吧。

Linux 中 Subversion 配置实例 http://www.linuxidc.com/Linux/2012-02/53109.htm

CentOS 6.2 SVN 搭建 (YUM 安装) http://www.linuxidc.com/Linux/2013-10/91903.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

借助网盘搭建 SVN 服务器 http://www.linuxidc.com/Linux/2013-10/91271.htm

1  程序安装

1.1  sudo apt-get install apache2

安装 apache2。如果你已经装了 nginx 的话。先将 nginx 停掉。他使用的 80 端口和后面安装的 apache2 会冲突。如:/etc/init.d/nginx stop。

安装完之后,如无意外会出现如下报错:

apache2: Could not reliably determinethe server’s fully qualified domain name, using 127.0.0.1 for ServerName

在 /etc/apache2/httpd.conf(此文件此时为空,是正常的)中增加下面一行:

ServerName 127.0.0.1:80

重启 apache2,执行 /etc/init.d/apache2restart。出现如下字段表示重启成功。

    root@xxxxx:/etc/apache2#/etc/init.d/apache2 restart
      * Restarting web server apache2
    … waiting  …done.

1.2  sudoapt-get install subversion

安装 subversion。略过。

1.3  sudoapt-get install libapache2-svn

安装连接插件。略过。

2  权限

2.1  相关用户、组的设定

执行下面命令:

sudoaddgroup subversion
sudousermod -G subversion -a www-data

查看结果:

    cat /etc/group|grep subversion
    subversion:x:1001:www-data

2.2  Apache2 挂载 SVN 模块(通过 http:// 访问)

通过 WebDAV 协议访问 SVN 文件仓库,必须在 /etc/apache2/mods-available/dav_svn.conf 中加入下面的代码片段:

    <Location/svn/>
        DAV svn
        SVNParentPath /home/svn
        SVNListParentPath On
        AuthType Basic
        AuthName “Subversion Repository”
        AuthUserFile /home/svn/conf/dav_svn.passwd
        AuthzSVNAccessFile/home/svn/conf/dav_svn.authz
        Require valid-user
    </Location>
    RedirectMatch^(/svn)$ $1/

2.3  用户设置

新建 /home/svn/conf 目录。为用户设置密码,会以加密方式保存 (-c 是新建的意思,去掉就是追加)。后面会提示你输入对应密码的。

    htpasswd -c /home/svn/conf/dav_svn.passwd user_1
    htpasswd  /home/svn/conf/dav_svn.passwd user_2

新建 dav_svn.authz 文件,加入如下代码。

    [groups]
    admin=user_1
    user=user_2
    [/]
    @admin = rw
    @user = r

重启 apache2。/etc/init.d/apache2 restart

如无意外会出现如下报错

    Syntax error on line 65 of/etc/apache2/mods-enabled/dav_svn.conf:
    Invalid command’AuthzSVNAccessFile’, perhaps misspelled or defined by a module not included inthe server configuration
    Action ‘configtest’ failed.
    The Apache error log mayhave more information.
        …fail!

原因是没有载入模块。在 /etc/apache2/mods-available/dav_svn.load 加入下面代码。

LoadModule authz_svn_module/usr/lib/apache2/modules/mod_authz_svn.so

再执行重启 /etc/init.d/apache2restart 就正常了。

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-06/102562p2.htm

2.4 创建仓库

在 /home/svn/ 目录下新建 test 目录:mkdir test。

sudochown -R root:subversion test

sudosvnadmin create /home/svn/test

目录授权

sudochmod -R g+rws test

执行查看命令 ls test 会发现下面出现如下文件。表示仓库已建好。

conf db format hooks locks README.txt

2.5 验证

重启 SVN 服务器:killall svnserve; svnserve -d -r/home/svn/

重启 apache2 服务器:/etc/init.d/apache2 restart

在浏览器打开 http://localhost/svn/test。输入用户密码就能看到目录结构了。

后记:

很大机会你会遇到 403 禁止访问页面。网上有很多解决方法。

如我主要参考的是:http://blog.csdn.net/Ivy_yayaxueyu/article/details/1779653。

You don’t have permission to access /svn/ on this server.

——————————————————————————–

Apache/2.2.22 (Ubuntu) Server at 127.0.0.1 Port80

但都不是我遇到的。我应该是被官方文档给坑了。

当时是按照官方的配置来配 /etc/apache2/mods-available/dav_svn.conf 文件如下。但是就是因为加上了 <LimitExcept GET PROPFIND OPTIONS REPORT></LimitExcept> 一直报 403。去掉就好了。后来看了一下说明应该还要加一个模块才能实现 module(enable it with ‘a2enmod’)。我就不加了,直接去掉。

</pre><p><pre name=”code” class=”html”><Location /svn/>
DAV svn
SVNParentPath /home/svn
SVNListParentPath On
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /home/svn/conf/dav_svn.passwd
AuthzSVNAccessFile /home/svn/conf/dav_svn.authz
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>

如果出现报错

Can’t open‘/home/svn/test/txn-current-lock’:Permissiondenied

那就重新给他设置一下权限吧

sudo chown -R root:subversion test

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

前情提要:福无双至,祸不单行。这句话映射到程序员身上就是不但笔记本电脑进厂了,而且连电脑上近一个月写的代码也丢了。欲哭无泪之际,开始思量着给自己的代码找个安身之所。说起鄙人那堆可怜的代码。最开始的时候,是在台式机上装了本地的 SVN 服务器。代码不出门,全在家里住。那会毕业不久,写的东西少也不怎么实用。也没有代码库的概念。后来积累的东西多了,遇到的很多问题都属于重复编码。家里的代码库连不上网,那拷硬盘放着呗。老板看你整天用硬盘不爽不说,代码不同步搞到千疮百孔。再后来开始用 git 了。用着还不错,就是私有化项目这一块没弄,也没敢全往上面传。直到上星期笔记本挂了,丢了几份代码。思来想去,还是得自己开个代码仓库。存到服务器上提交方便,也多份保障吧。

Linux 中 Subversion 配置实例 http://www.linuxidc.com/Linux/2012-02/53109.htm

CentOS 6.2 SVN 搭建 (YUM 安装) http://www.linuxidc.com/Linux/2013-10/91903.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

借助网盘搭建 SVN 服务器 http://www.linuxidc.com/Linux/2013-10/91271.htm

1  程序安装

1.1  sudo apt-get install apache2

安装 apache2。如果你已经装了 nginx 的话。先将 nginx 停掉。他使用的 80 端口和后面安装的 apache2 会冲突。如:/etc/init.d/nginx stop。

安装完之后,如无意外会出现如下报错:

apache2: Could not reliably determinethe server’s fully qualified domain name, using 127.0.0.1 for ServerName

在 /etc/apache2/httpd.conf(此文件此时为空,是正常的)中增加下面一行:

ServerName 127.0.0.1:80

重启 apache2,执行 /etc/init.d/apache2restart。出现如下字段表示重启成功。

    root@xxxxx:/etc/apache2#/etc/init.d/apache2 restart
      * Restarting web server apache2
    … waiting  …done.

1.2  sudoapt-get install subversion

安装 subversion。略过。

1.3  sudoapt-get install libapache2-svn

安装连接插件。略过。

2  权限

2.1  相关用户、组的设定

执行下面命令:

sudoaddgroup subversion
sudousermod -G subversion -a www-data

查看结果:

    cat /etc/group|grep subversion
    subversion:x:1001:www-data

2.2  Apache2 挂载 SVN 模块(通过 http:// 访问)

通过 WebDAV 协议访问 SVN 文件仓库,必须在 /etc/apache2/mods-available/dav_svn.conf 中加入下面的代码片段:

    <Location/svn/>
        DAV svn
        SVNParentPath /home/svn
        SVNListParentPath On
        AuthType Basic
        AuthName “Subversion Repository”
        AuthUserFile /home/svn/conf/dav_svn.passwd
        AuthzSVNAccessFile/home/svn/conf/dav_svn.authz
        Require valid-user
    </Location>
    RedirectMatch^(/svn)$ $1/

2.3  用户设置

新建 /home/svn/conf 目录。为用户设置密码,会以加密方式保存 (-c 是新建的意思,去掉就是追加)。后面会提示你输入对应密码的。

    htpasswd -c /home/svn/conf/dav_svn.passwd user_1
    htpasswd  /home/svn/conf/dav_svn.passwd user_2

新建 dav_svn.authz 文件,加入如下代码。

    [groups]
    admin=user_1
    user=user_2
    [/]
    @admin = rw
    @user = r

重启 apache2。/etc/init.d/apache2 restart

如无意外会出现如下报错

    Syntax error on line 65 of/etc/apache2/mods-enabled/dav_svn.conf:
    Invalid command’AuthzSVNAccessFile’, perhaps misspelled or defined by a module not included inthe server configuration
    Action ‘configtest’ failed.
    The Apache error log mayhave more information.
        …fail!

原因是没有载入模块。在 /etc/apache2/mods-available/dav_svn.load 加入下面代码。

LoadModule authz_svn_module/usr/lib/apache2/modules/mod_authz_svn.so

再执行重启 /etc/init.d/apache2restart 就正常了。

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-06/102562p2.htm

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

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7960589
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
免费领取huggingface的2核16G云服务器,超简单教程

免费领取huggingface的2核16G云服务器,超简单教程

免费领取 huggingface 的 2 核 16G 云服务器,超简单教程 前言 HuggingFace.co...
星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛 NAS-1:安装飞牛 NAS 前言 在家庭和小型工作室场景中,NAS(Network Atta...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...