UbuntuサーバにSubversionを入れる

Linux開発ツール |   

Ubuntuサーバが無事に動いたので、続いてSubversionを入れてみる。

こんな感じの環境を考える。

  • Apache経由でアクセス出来るようにする。
  • SSL+Digest認証に限定する。
  • リポジトリ毎のアクセス認証にも対応する。

Subversionインストール

sudo apt-get install subversion libapache2-svn

はい終わり。

リポジトリの準備

まずはリポジトリ自体を置くディレクトリを作成。お好みで。

sudo mkdir /var/lib/svn

んで、とりあえず適当にリポジトリを作ってみる。

sudo svnadmin create /var/lib/svn/foo
sudo chown -R www-data /var/lib/svn/foo

後々Apache経由でアクセスするのでオーナーをApacheユーザ(www-data)に変えておく*1

Apacheの設定

libapache2-svnを入れた時点で/etc/apache2/mods-available/dav_svn.confというファイルが出来てるんだけど、SSL限定にするにはdefault-sslのVirtualHostディレクティブの中に書く必要があるので、こいつは使わない。

/etc/apache2/sites-available/default-sslに同様の内容を書き込む。

<IfModule mod_ssl.c>
<VirtualHost _default_:>
</VirtualHost>
:
: # other configuration
: # 以下を追加
<Location /svn>
DAV svn
SVNParentPath /var/lib/svn
AuthType Digest
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/.htdigest
AuthzSVNAccessFile /etc/apache/dav_svn.authz
Require valid-user
Satisfy Any
</Location>
</IfModule>

パスなどの設定内容はお好みに合わせて。

綺麗に管理したいなら外部ファイルにしてIncludeすればいい。ただ、sites-availableとかに置くとトラブルの元なので避けた方がいいかも。

続けてDigest認証用のファイルを作成する。

sudo htdigest -c /etc/apache2/.htdigest "Subversion Repository" username

realmが追加されている以外はhtpasswdと同じ。ファイルを作成するときだけ-cオプションを付ける。追加・変更時はつけない。

realmはAuthNameと合わせる必要があるので注意。

さらにSubversionのアクセス設定ファイルを作成する。

作るのはAuthzSVNAccessFileで指定したファイル。

[groups]
foo-dev = user-a, user-b [/]
* = [foo:/]
@foo-dev = rw
user-c = rw
* = r

書き方はSubversionのマニュアルを読めってことで。

これを使うとリポジトリ(とパス)単位でユーザ毎に読み書きの制御ができる。

上の例だとfooリポジトリは誰でも見れるけど、コミットはuser-a, user-b, user-cしかできない。

Apache再起動

設定が終わったのでモジュールを有効にしてApache再起動する。

sudo a2enmod ssl
sudo a2enmod auth_digest
sudo a2enmod dav_svn
sudo a2ensite default-ssl
sudo /etc/init.d/apache2 restart

これでhttps経由でアクセス出来るようになったはず。

SubVersion Ubuntu的更多相关文章

  1. 【转】linux(Ubuntu)配置svn仓库,搭建svn服务器

    原文网址:http://blog.1v2d.com/322.html 在家里搞了好久,终于搞出来,并且在线上已经成功搭建成功,在这感谢一个博主的文章,本篇文章也主要是转载他的内容,写的非常好,而且非常 ...

  2. Ubuntu/CentOs 搭建SVN服务器

    安装 CentOS : yum install subversion Ubuntu: sudo apt-get install subversion 查看Subversion版本: 使用“svn -- ...

  3. Centos/ubuntu配置SVN服务

    Centos安装svn yum -y install subversion ubuntu安装svn apt-get install subversion Centos配置svn root@hello: ...

  4. ubuntu GITLAB完全导入SVN(提交历史,用户)项目

    从SVN导入到GITLAB目前没有直接的方案,通常需要通过GIT转换:SVN –>GIT –>GITLAB.通过这种方式,将SVN的提交历史,用户信息一并导入到gitlab 注:本文只适用 ...

  5. 版本控制系统Subversion

    系统提供撤销的功能对我们实际开发中特别重要.改动后撤销几乎也是我们每个人经常做的事情.再多人进行同一个项目的开发或者测试的时候,版本的唯一性(类似于临界区资源),也就是说A 和B 两个人协同工作的时候 ...

  6. 在Linux下搭建SVN服务器

    svn不仅仅可以用于程序开发,还可以做很多事情,例如备份文档. CentOS下:安装 这样同一台服务器便可以运行多个svnserver了 检查端口 注:如果修改了svn配置,需要重启svn服务 -j ...

  7. op编译信赖的库

    Table of known prerequisites and their corresponding packages Here's a table with the package name f ...

  8. SVN同步版本库与网站目录

    如何创建SVN版本库及同步文件到WEB目录 来源:空谷 一 安装与配置SVN 1.安装subversion centos: yum install subversion ubuntu: apt-get ...

  9. ubuntu + subversion + apache2 设置

    1.下载安装subversion,apache2 sudo apt-get updatesudo apt-get upgrade sudo  apt-get install apache2sudo a ...

随机推荐

  1. JavaBean的用法

    JavaBean是一个可重复使用的软件组件,是用Java语言编写的.遵循一定标准的类. JavaBean是Java Web的重要组件,它封装了数据和操作的功能类,供JSP和Servlet调用,完成数据 ...

  2. 【java回调】java两个类之间的回调函数传递

    背景交代:熟悉用js开发的cordovaAPP:对java一窍不通的我,老师让做一个监测用户拍照事件的功能,无奈没有找到现成的库,无奈自己动手开发java插件~~0基础java GreenHand,祝 ...

  3. Mac 安装配置rz、sz

    在Iterm2中修改配置: 安装lrzsz brew install lrzsz 下载iterm2-zmodem cd /usr/local/bin sudo wget https://raw.git ...

  4. IT路上爹爹装装遇到的坑

    1.中英文字符格式:UTF-8 有BOM和无BOM Notepad++ Edit-Plus emacs vim Sublime Text3 记事本 有,无 UTF-8+ #coding:utf-8   ...

  5. [Sass]不同样式风格的输出方法

    [Sass]不同样式风格的输出方法 众所周知,每个人编写的 CSS 样式风格都不一样,有的喜欢将所有样式代码都写在同一行,而有的喜欢将样式分行书写.在 Sass 中编译出来的样式风格也可以按不同的样式 ...

  6. Jquary入门( 修改内容)

    1. 使用JQ时需要先引用 JQ 包: 其他的JQ代码 需要写在 引用标签的下面如下图[基本格式] JQ中 是纯代码 没有判断 没有循环   如果 有 时间间隔和延迟  则使用JS 代码 详见 下面例 ...

  7. android adb 命令详解

    ADB (Android Debug Bridge)  是android SDK中的工具,需要先配置环境变量才能使用.起调试桥的作用,可以管理安卓设备.(也叫debug工具) ---------查看设 ...

  8. Html 5 Web Storage

    HTML5 中使用Web Storage 技术进行本地存储,能够在Web 客户端进行数据存储.WebStorage 曾今属于HTML5的规范,目前已经被独立出来形成单独的规范体系.简单来说使用Web本 ...

  9. html5 websocket 实时日志推送

    http://blog.csdn.net/neutrojan/article/details/46119645

  10. 解决Trauncate table没权限

    错误信息Cannot find the object "TableName" because it does not exist or you do not have permis ...