Centos

Posts filed under Centos

Centos下svn服务器搭建

Filed in 服务器Tags: , , ,

一直想搭建一个svn服务器,方便代码的管理和维护,可是一直没有去专门研究这个事情,主要是因为ihipop同学比较强大,给出了svn详细的配置方法,好处是它详细,坏处是太详细了,使我对svn有了一种莫名的敬畏感。

这几天研究了一下,发现其实没有那么难。

首先 安装svn

运行
yum -y install subversion

然后创建版本库

mkdir -p /data0/svndata
svnadmin create /data0/svndata/svnserver1

编辑配置文件conf/svnserve.conf

vim /data0/svndata/svnserver1/conf/svnserve.conf

分别将
anon-access
auth-access
password-db
authz-db
realm
前面的注释符号去掉

anon-access = none意思是没有权限的禁止访问
auth-access = read作者可写
password-db 指定用户名密码的文件,可指定,不用修改
authz-db 指定用户权限配置文件位置,不用修改
realm 域名称 用于显示在同步的时候 可以设置为自己代码服务的名称 比如realm = svnserver1

conf /Passwd文件是配置用户名和密码的,源文件里给出了demo,即

user1 = user1password
user2 = user2password
user3 = user3password
.
.
.

关于权限文件conf /authz 的设置 sxj52ll的博客上给出了这样的推荐设置方法
[groups] 设置组
admin = user1
[/] 根目录权限设置(就是“svndata”这个文件夹)
user1 = rw 用户1权限是:可读写
user2 = r 用户2权限是:可读,不可写
@admin = rw 设置组权限
[svndata:/svnserver1] 设置根目录下“svnserver1”文件夹的权限
user1 = rw
user2 = r
…以此类推

但是我认为,依照组的设置方法可能更方便,大家根据自己的需要自行设置

[groups]
admin = user1,user2
read = user3
[/] 根目录权限设置(就是“svndata”这个文件夹)
@admin = rw 设置admin组权限
@read = r 设置read组权限
[svndata:/svnserver1] 设置根目录下“svnserver1”文件夹的权限

@admin = rw 设置admin组权限
@read = r 设置read组权限
…以此类推

这样的好处是显而易见的,当有很多用户,和很多工程时,我就可以根据需要,将特定的用户,加入到特定的组里,而不用逐个目录设置用户的权限

配置完成!

启动SVN服务:
svnserve -d -r /data0/svndata/
-d表示后台运行
-r 指定根目录是 /data0/svndata/

停止SVN服务:
ps -aux |grep svn
kill -9 进程杀掉

在客户端配置好svn的路径 svn://ip地址或域名:3690/svnserver1即可

当然,知道,为了安全起见,svn服务器和网站的服务器通常不放在一起的,svn同步后确定没有问题了,才会向网站服务器同步
使用
svn update 网站路径
(当然首先要把代码commit当网站上,建立svn资料)

但是,我们的服务器通常ssh起来都比较麻烦,这个提供一个比较简单的办法

建立一个php脚本

\n";
$rows = array();
$arg_file = '/var/args';
$cmd ="/usr/bin/svn update 网站路径 --username=user3 --password=user3password 2>&1 <$arg_file"; exec($cmd, $rows); foreach ($rows as $row) { echo $row."
\n";
}
echo "done!";
?>

然后在/var/下建立一个用于隧道传参的文件args,内容

no

这样,只需要刷新这个脚本,就可以同步了,是不是很方便呢?

最近评论
Click to view/hide
 
Click to view/hide
2019年十月
« 8月    
 123456
78910111213
14151617181920
21222324252627
28293031  
站点功能
Click to view/hide