作者:陈杰铭雅意 | 来源:互联网 | 2014-05-28 09:40
1.由于服务器是nginx,所以就不配置基于apache访问svn,可以配置独立的svn服务器。2.由于nginx现在暂时不支持subversion,而web服务器又选择了nginx,所以只能安装apache集成subversion,然后通过nginxproxy给apache来实现nginx的svn!独立配置svn服务
1. 由于服务器是nginx,所以就不配置基于apache访问svn,可以配置独立的svn服务器。
2.
由于nginx现在暂时不支持subversion,而web服务器又选择了nginx,所以只能安装apache集成subversion,然后通过nginx
proxy给apache来实现nginx的svn!
独立配置svn服务器
获取svn安装包:
wget
http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz
wget
http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz
编译svn以root用户登录:
tar xfvz subversion-1.6.6.tar.gz
tar xfvz subversion-deps-1.6.6.tar.gz
cd subversion-1.6.6
./configure ?prefix=/opt/svn ?without-berkeley-db
(注:以svnserve方式运行,不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db)
make && make install
在/etc/profile最后加入 SVN Path 以方便操作:
vi /etc/profile
PATH=$PATH:/opt/svn/bin
export PATH
如果报LC_ALL 找不到错误,执行
echo export LC_ALL=C >> /etc/profile
或者
vi /etc/profile
export LC_ALL=C
测试是否安装成功:
svnserve ?-version
svn配置建立svn版本库目录:
mkdir -p /opt/svndata/repos
svnadmin create /opt/svndata/repos
vi /opt/svndata/repos/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /opt/svn/conf/passwd.conf
authz-db = /opt/svn/conf/authz.conf
realm = repos
注意:对用户配置文件的修改立即生效,不必重启svn。
passwk.conf [users]是必须的,文件格式如下:
[users]
username = password
配置svn用户访问权限:
# vi /opt/svn/conf/authz.conf
[groups]
= ,
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
其中,方框号内部分可以有多种写法:
[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/opt/svndata,[/]就是表示对全部版本库设置权限。
[repos:/] 表示对版本库repos设置权限
[repos2:/abc] 表示对版本库repos2中的abc项目设置权限
[repos2:/abc/aaa] 表示对版本库repos2中的abc项目的aaa目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。
权限可以是w、r、wr和空,空表示没有任何权限。
示例:
[groups]
admin = alan
[/]
@admin = rw
[repos1:/abc/aaa]
king = rw
[repos2:/pass]
king =
svn配置完毕。
启动svn建立启动svn的用户
useradd svn
passwd svn
svnserve -d -?listen-port 9999 -r /opt/svndata
检查:
ps -ef|grep svnserve
服务器测试:
cd /tmp
mkdir test
touch test.txt
svn import /tmp/test/ file:///opt/svndata/repos -m “this is thie
first import”
mkdir -p /tmp/test2
cd /tmp/test2
svn co file:///opt/svndata/repos /tmp/test2/
这时应该可以看到文件test.txt
最后
vi /etc/sysconfig/
iptables
添加:
-A RH-Firewall-1-INPUT -p tcp ?dport 9999 -j ACCEPT