ubuntu下搭建web svn
2014-03-04 by Brant Xiong前言
嗯,为了方便开发,需在VPS(环境为ubuntu 12.04)搭建svn服务。本文主要记录下搭建的整体步骤~
步骤
安装svn
过程主要参考:https://help.ubuntu.com/community/Subversion
首先安装subversion
sudo apt-get install subversion subversion-tools
安装完成后,需建立subversion
用户组来拥有资源目录,然后将nginx的用户添加到该用户组(假设nginx的配置为user www-data;
),具体操作如下:
sudo groupadd subversion
sudo usermod -a -G subversion www-data
#验证
sudo groups www-data
下面建立svn资源库,以myproject
为例
sudo mkdir ~/svn
cd ~/svn
sudo mkdir myproject
sudo svnadmin create ~/myproject
更改目录权限
cd ~/svn
sudo chown -R www-data:subversion myproject
sudo chmod -R g+rws myproject
下面就可以测试下安装是否OK了~
svn co file://localhost/home/diors/svn/myproject
通过http访问svn
因为目前服务器采用的是nginx,但是由于nginx现在暂时不支持subversion,所以只能安装apache集成subversion,然后通过nginx proxy给apache来访问代码仓库。
安装apache2及subversion模块
sudo apt-get install apache2 libapache2-svn
修改端口并启动
sudo vim /etc/apache2/ports.conf
sudo /etc/init.d/apache2 restart
在/etc/apache2/mods-available/dav_svn.conf
中添加如下配置:
# Subversion版本可用的URL是http://域名或IP/svn
<Location /svn/myproject>
# 告诉Apache是哪个模块响应哪个URL的请求,在这里是Subversion模块
DAV svn
#告诉Subversion需要查看的版本库在/home/svn之下。
#如果不希望为每个单独的项目都进行单独的设置,可以把所有项目都存放在统一的资源库目录
#使用SVNParentPath指令来指定存放所有项目的路径。否则使用SVNPath
SVNParentPath ~/svn/
#认证类型为基本认证,就是用户名和密码
AuthType Basic
#认证名称,将在浏览器界面弹出一个对话框,标题为Subversion repository
AuthName "Subversion repository"
AuthUserFile /etc/subversion/passwd
#禁止匿名访问
Require valid-user
</Location>
创建认证用户:
# first user
sudo htpasswd -c /etc/subversion/passwd user_name
# second user
sudo htpasswd /etc/subversion/passwd second_user_name
之后重启apache2就可以了,接下来就是配置nginx转发啦~
安装WebSVN
首先下载最新版本的WebSVN
(官网:http://www.websvn.info/download/)
wget http://websvn.tigris.org/files/documents/1380/49056/websvn-2.3.3.tar.gz
解压后放到nginx的 wwwroot
目录下,并配置nginx (这里就略去了~..)
之后,需修改配置文件:
cp ~/websvn/include/distconfig.php ~/websvn/include/config.php
vim ~/websvn/include/config.php
$config->addRepositorySubpath('myproject', 'file:///home/../myproject', 'myproject');
在nginx中增加访问控制:
auth_basic "Restricted";
auth_basic_user_file /etc/subversion/passwd;
结语
嗯,到这里,整个安装配置过程就算结束了~还算比较辛苦吧~O(∩_∩)O~