注册 登录
LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! 返回首页

wgskking的个人空间 http://bbs.linuxtone.org/?4524 [收藏] [复制] [分享] [RSS]

日志

svn+apache yum快速安装

热度 1已有 2329 次阅读2011-11-24 13:16 |个人分类:SVN| svn, apache, 快速, 软件

一,安装软件:

安装apache

yum -y  groupinstall "Web Server"

安装subversion

 yum -y install subversion*

安装需要的模块mod_dav_svn

yum -y install mod_dav_svn

 

二,创建版本库并开始配置svn

 1,创建版本库

  创建目录结构

 mkdir -p /etc/svn/repos

 repo SVN的根文件(/

2.运行创建版本库的命令,指定数据存储为 FSFS,如果要指定为 Berkeley DB,则将 fsfs 替换为 bdb
$
svnadmin create --fs-type fsfs /etc/svn/repos

确认创建的版本库生效

3,创建的目录结构并导入项目:

利用 SVN import导入项目:svn import /etc/svn/tmp/ file:///etc/svn/repos/ --message "init"

启动svn

svnserve -d -r /etc/svn/

可以通过TortoiseSVN checkout  svn://服务器IP/repo

三,配置apache 实现apache+svn的结构

1,第一步要给svn的源目录修改权限

chmod -R 0777 /etc/svn/repos/

chown -R apache:apache /etc/svn/repos/

apache http的启动用户

如果不修改会在web访问的时候出现:

Can't open file '/data/svn/develop/db/txn-current-lock': Permission denied

 

2,查看apache支持的模块是否指定vim /etc/httpd/conf/httpd.conf

添加

需要添加Location并且查看相应的模块

LoadModule dav_module modules/mod_dav.so

LoadModule dav_svn_module modules/mod_dav_svn.so

并添加相应的apache配置

<Location /repos>

  DAV svn

  SVNPath /etc/svn/repos

</Location>

保存配置文件并启动apache

启动前先测试配置文件的有效性:

无错误启动apache

表示apachedav_svn模块已经正常工作

 

如果想要指定多个版本库,可以用多个 Location 标签,也可以使用 SVNParentPath 代替 SVNPath,例如在 /etc/svn 下有多个版本库 repos1repos2 等等,用如下方式指定:

<Location /repos>

  DAV svn

  SVNParentPath /etc/svn

</Location>

"SVNParentPath /etc/svn" 表示 /etc/svn 下的每个子目录都是一个版本库。可以通过 http://服务器IP/repos/repos1http://服务器IP/repos/repos2 来访问。

 

3,授权访问用户:

Apache 提供了一个工具 htpasswd,用于生成用户文件,可以在 Apache 的安装目录下找到。具体使用方法如下:

htpasswd –c /etc/svn/passwordfile username

-c 创建新的文件如果存在不需要加-c

文件保存的位置 内容如下

接下来修改 httpd.conf,在 Location 标签中加入如下内容:

AuthType Basic

AuthName "svn repos"

AuthUserFile /etc/svn/passwordfile

Require valid-user

重启apache 重启前先测试conf

IE访问svn url http://192.168.40.149/repos/

出现用户提示说明成功

3. mod_authz_svn 进行目录访问控制

确定有的模块

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

http.conf里添加功能authz的功能

<Location /repos>

  DAV svn

  SVNPath /etc/svn/repos

  AuthType Basic

  AuthName "svn repos"

  AuthUserFile /etc/svn/passwordfile

  AuthzSVNAccessFile /etc/svn/accesspolicy

  Satisfy Any

  Require valid-user

  Order Deny,Allow

  Deny from all

</Location>

AuthzSVNAccessFile 指向的是 authz 的策略文件,详细的权限控制可以在这个策略文件中指定,如:

在做策略的同时要给加入用户通过http

因为是测试只是做了简单的配置(vim accesspolicy

#三个分组:comdevadmin

[groups]

com = wocao

dev = nima

admin = username

#在根目录下指定只有admin组用户有读权限

[/]

@admin = rw

[/project_online]

@admin= rw

@com = rw

[/project_test]

@admin = rw

@dev = rw

效果

wocao属于com组不能checkout根和project_test目录

只能checkout 所属的project_online目录

nima属于dev组不能checkout根和project_online目录

只能checkout 所属的project_test目录

Username属于admin能对所有目录进行checkoutcommit

 

 

 


路过

鸡蛋

鲜花

握手

雷人

发表评论 评论 (1 个评论)

回复 kingwyt 2011-11-29 14:25
谢谢!收藏备用!

facelist

您需要登录后才可以评论 登录 | 注册

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2020-7-6 04:09 , Processed in 0.011399 second(s), 10 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部