前言
嗯,为了方便开发,需在VPS(环境为ubuntu 12.04)搭建svn服务。本文主要记录下搭建的整体步骤~
步骤
安装svn
过程主要参考:https://help.ubuntu.com/community/Subversion
首先安装subversion
1
| sudo apt-get install subversion subversion-tools
|
安装完成后,需建立subversion
用户组来拥有资源目录,然后将nginx的用户添加到该用户组(假设nginx的配置为user www-data;
),具体操作如下:
1 2 3 4
| sudo groupadd subversion sudo usermod -a -G subversion www-data
sudo groups www-data
|
下面建立svn资源库,以myproject
为例
1 2 3 4
| sudo mkdir ~/svn cd ~/svn sudo mkdir myproject sudo svnadmin create ~/myproject
|
更改目录权限
1 2 3
| cd ~/svn sudo chown -R www-data:subversion myproject sudo chmod -R g+rws myproject
|
下面就可以测试下安装是否OK了~
1
| svn co file://localhost/home/diors/svn/myproject
|
通过http访问svn
因为目前服务器采用的是nginx,但是由于nginx现在暂时不支持subversion,所以只能安装apache集成subversion,然后通过nginx proxy给apache来访问代码仓库。
安装apache2及subversion模块
1
| sudo apt-get install apache2 libapache2-svn
|
修改端口并启动
1 2
| sudo vim /etc/apache2/ports.conf sudo /etc/init.d/apache2 restart
|
在/etc/apache2/mods-available/dav_svn.conf
中添加如下配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| # 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>
|
创建认证用户:
1 2 3 4
| sudo htpasswd -c /etc/subversion/passwd user_name
sudo htpasswd /etc/subversion/passwd second_user_name
|
之后重启apache2就可以了,接下来就是配置nginx转发啦~
安装WebSVN
首先下载最新版本的WebSVN
(官网:http://www.websvn.info/download/)
1
| wget http://websvn.tigris.org/files/documents/1380/49056/websvn-2.3.3.tar.gz
|
解压后放到nginx的 wwwroot
目录下,并配置nginx (这里就略去了~..)
之后,需修改配置文件:
1 2 3 4 5
| cp ~/websvn/include/distconfig.php ~/websvn/include/config.php
vim ~/websvn/include/config.php
$config->addRepositorySubpath('myproject', 'file:///home/../myproject', 'myproject');
|
在nginx中增加访问控制:
1 2
| auth_basic "Restricted"; auth_basic_user_file /etc/subversion/passwd;
|
结语
嗯,到这里,整个安装配置过程就算结束了还算比较辛苦吧O(∩_∩)O~