运维人员如何访问svn服务器,SVN 服务器搭建

2.安装svn

yum -y install subversion

3.配置

建立版本库目录

mkdir /home/svn

svnserve -d -r /home/svn

4.建立版本库

创建一个新的Subversion项目

svnadmin create /home/svn/17tou

配置允许用户rsync访问

cd /home/svn/17tou/conf

vi svnserve.conf

anon-access=none

auth-access=write

password-db=passwd

注:修改的文件前面不能有空格,否则启动svn server出错

vi passwd

[users]

# =

# =

user=123456

5.客户端连接

svn co svn://192.168.1.7/17tou

用户名密码:user (123456)

-----------------------------------------------------------------

在使用amazone的ec2服务器时需要在控制台打开安全设置inbound中将svn的默认端口3690打开

===============================================================

6.实现SVN与WEB同步,可以CO一个出来,也可以直接配在仓库中

yum install httpd

mkdir -p /home/webroot

1)设置WEB服务器根目录为/home/webroot

2)checkout一份SVN

svn co svn://localhost/17tou /home/webroot

修改权限为WEB用户

mkdir -p /home/webroot/17tou

chown -R apache:apache /home/webroot/17tou

3)建立同步脚本

cd /home/svn/17tou/hooks/

cp post-commit.tmpl post-commit

编辑post-commit,在文件最后添加以下内容

export LANG=en_US.UTF-8

SVN=/usr/bin/svn

WEB=/home/webroot/

$SVN update $WEB -username user -password 123456

chown -R apache:apache $WEB

增加脚本执行权限

chmod +x post-commit

=========================================到这里结束。edit by ljf

另外插入:

三,配置SVN服务器的HTTP支持

1,转换SVN服务器的密码

由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。我写了一个Perl脚本完成这个工作.

脚本内容如下:

# cd /home/svn/17tou/conf/

# cat PtoWP.pl

#!/usr/bin/perl

# write by huabo, 2009-11-20

use warnings;

use strict;

#open the svn passwd file

open (FILE, "passwd") or die ("Cannot open the passwd file!!!\n");

#clear the apache passwd file

open (OUT_FILE, ">webpasswd") or die ("Cannot open the webpasswd file!!!\n");

close (OUT_FILE);

#begin

foreach () {

if($_ =~ m/^[^#].*=/) {

$_ =~ s/=//;

`htpasswd -b webpasswd $_`;

}

}

# ./PtoWP.pl ( 先给该脚本加可执行权限,然后执行以转换密码 )

Adding password for user pm

Adding password for user server_group

Adding password for user client_group

Adding password for user test_group

现在目录下会多一个webpasswd文件。

2,修改httpd.conf,添加关于SVN服务器的内容

编辑/etc/httpd/conf/httpd.conf,在最后添加如下信息:

DAV svn

SVNPath /home/svn/17tou/

AuthType Basic

AuthName "svn for 17tou"

AuthUserFile /home/svn/17tou/conf/webpasswd

AuthzSVNAccessFile /home/svn/17tou/conf/authz

Satisfy all

Require valid-user

3,启动HTTPD服务器

# service httpd restart

Stopping httpd:                                            [FAILED]

Starting httpd:                                            [  OK  ]

与 SVN 协同工作

启动 Apache 报错:Unknown DAV provider: svn

解决方法

没有这个动态链接库

Unknown DAV provider: svn 这是因为系统没有安装mod_dav_svn 运行,yum install mod_dav_svn 就行了。

LoadModule dav_svn_module modules/mod_dav_svn.so

直接运行这个命令,Linux会报错说没有 LoadModule 这个命令。

将这两句话,添加到 vi /usr/local/apache2/conf/httpd.conf 的末尾

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

4,用浏览器访问http://192.168.1.7/17tou/server/测试

测试结果如下图所示:

( 测试成功 )

四,配置邮件提醒支持

1,安装Perl模块Module::Build

# wget http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/Module-Build-0.36_11.tar.gz

# tar xvf Module-Build-0.36_11.tar.gz

# cd Module-Build-0.36_11

# perl Build.PL

# ./Build

# ./Build test

# ./Build install

# cd ..

2,安装Perl模块Authen::SASL

# wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/Authen-SASL-2.15.tar.gz

# tar xvf Authen-SASL-2.15.tar.gz

# cd Authen-SASL-2.15

# perl Makefile.PL

# make test

# make install

# cd ..

3,安装Perl模块Net::SMTP_auth

# wget http://search.cpan.org/CPAN/authors/id/A/AP/APLEINER/Net-SMTP_auth-0.08.tar.gz

===========另外插入结束。insert by ljf.

---------------------------------------------------------------------------------------------

在Linux下,SVN服务器的权限配置

言归正传,按照前面的教程装完1.5.5版以后,当svnadmin create /home/svn/17tou创建仓库后,应该在仓库目录下的config目录有3个文件——authz、passwd、svnserve.conf。

下面对3个文件进行说明:

svnserve.conf是基础的配置,用于控制访问的权限将[general]前的注释与空格去掉,一定要去掉空格,否则到时客户端登录会出现"Section header must start in the first column的”的告警!亲身体会啊!!最后此文件内容至少包含以下内容:

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

其中,anon-access = none禁止匿名登录,auth-access = write为署名登录获得写权限,password-db = passwd指定用户配置文件,authz-db = authz指定权限配置文件

————————————————

passwd是用户配置文件,用于设置用户名以及密码

格式为:

[users]

=

=

其中用户名,密码不能为中文,至少我设中文登录时提示没有该用户

[users]是必须的。下面列出要访问svn的用户,每个用户一行。

示例:

[users]

alan = password

king = hello

这个里面的user表示当前test版本库的成员

——————————————————

authz是详细的用户授权文件

格式如下(以下内容转载,感谢原创):

用户组格式:

[groups]

= ,

其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。用户必须要在passwd文件里能找到,它是给那个里面的user赋权限.

版本库目录格式:

[/目录]

@ =

=

示例:

[groups]

admin = alan

[/]

@admin = rw

[/svn/p1/WebProject]

king = rw(表示king能够读写/svn/p1/WebProject目录下的所有信息)

[/svn/p1/web]

zp=r(表示zp能够读/svn/p1/web目录下的所有信息)

————————————

以下是自己的体会:

注意:@admin代表整个组,king 在这里只是一个用户

关于访问路径[/目录],其完整格式[repos-name:path]或者[path],repos-name是版本库的名字

注意:在authz中如果要设定中文文件夹的路径,例如[/测试],请在linux在双击文件用默认记事本打开,然后另存为,注意将编码格式改为UNICODE UTF-8,否则在windows下用TortoiseSVN进行操作时,该中文路径的权限设置会有问题!此乃我的实际测试

当你用的中文svn客户端,并且又出现[璁よ瘉澶辫触]的错误不能够签入和签出,那么请检查authz的[path]权限等是否正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值