Chinaunix首页 | 论坛 | 博客
  • 博客访问: 64700
  • 博文数量: 15
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-22 09:09
文章分类

全部博文(15)

文章存档

2009年(15)

我的朋友
最近访客

分类: LINUX

2009-04-17 17:05:14

Linux svn之服务搭建篇

 

1. 准备

1)我用的服务器是: Red Hat Enterprise Linux AS (2.4.21.EL)

我们需要两个文件,httpsubversionhttpdweb服务器,用来通过web访问subversion。我本人用的是httpd-2.2.6subversion-1.4.5。它们的下载地址是:

a.下载httpd-2.2.6.tar.gz 

b.下载subversion-1.4.6.tar.gz

2)新建一个用户:svnroot

最好不要让root用户参与到svn的权限管理和日常的运行和维护工作中来,但是有一些安装和配置操作还是需要root用户来完成的,因为有些操作只有root才能做。权限问题很重要。

2. 编译安装httpdroot用户操作)

       # tar xvzf httpd-2.2.6.tar.gz

# cd httpd-2.2.6

# ./configure --enable-dav --enable-so

--enable-mods-shared=all

--prefix=/usr/local/apache2

# make

# make install

编辑配置文件httpd.conf

    # vi /usr/local/apache2/conf/httpd.conf

修改内容:

ServerName

ServerName localhost:80或者Apache服务器的IP

安装完成并修改后,启动apache进程:/usr/local/apache2/bin/apachectl start(或者在/usr/local/apache2/bin/下,用./httpd k start),然后打开浏览器,如果有测试页"It works!"出现,则证明已经安装成功。

3. 安装Subversion

       # tar xvzf subversion-1.4.5.tar.gz

# cd subversion-1.4.5

#./configure --prefix=/usr/local/subversion

# make

# make install

//创建库文件所在的目录 (svnroot用户进行下面的操作)

# mkdir /home/svnroot/repository

//进入subversionbin目录

# cd /usr/local/subversion/bin

//创建"test"仓库

# ./svnadmin create /home/svnroot/repository/test

//进入到数据仓库"test"目录

# cd /home/svnroot/repository/test

//看看是不是多了些文件,如果是则说明Subversion安装成功了

# ls –l

//不让其他人有该目录的权限

# chmod 700 /home/svnroot/repository

//**注意,直接这么chmod会导致svn客户端无法访问,需要修改apache配置文   

httpd.conf文件:

User daemon //daemon改为svnroot,让apache进程以svnroot的身份运行

Group daemon

//把上述内容改成:

User svnroot

Group svnroot

 

//修改svn仓库的所有者

# chown -R svnroot: svnroot /home/svnroot/repository

//修改该目录权限只能svnroot拥有

# chmod 700 /home/svnroot/repository

4. 修改Apache配置文件

# cd /usr/local/apadche2/bin

# ./apachect1 stop  //停止Apache进程

  vim /usr/local/apache2/conf/httpd.conf

 

//在最下面添加 ,如果你的里面没有这两个模块的话

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

 

DAV svn

SVNParentPath /home/svnroot/repository/  //svn父目录

AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文件

AuthType Basic //连接类型设置

AuthName "clo.com.cn" //连接框提示

AuthUserFile /home/svnroot/repository/authfile //用户配置文件

Require valid-user //采用何种认证

 

 

//其中authfile是通过"htpasswd [c] /home/svnroot/repository/authfile username password"来创建的 , username指的是用户svnroot,密码也是他的。

//"Require valid-user"告诉apacheauthfile中所有的用户都可以访问。如果没有它,则只能第一个用户可以访问新建库

//启动apache服务

# /usr/local/apache2/bin/apachectl start

//打开浏览器访问svn/test/,如果有东西显示就说明成功。

5. 权限管理(即authz.conf的配置)

       1)增加用户

# htpasswd [-c] /home/svnroot/repository/authfile user1

//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加,此时是要用root的权限来添加的,添加完后在authfile中看到用户和加密的密码。

# htpasswd /home/svnroot/repository/authfile 用户名(加入新的用户)

//如:"htpasswd /home/svnroot/repository/authfile user2"

2)权限分配

可参考另外一个文档。

6. 重启apache进程

将第5步设置完成后,重启Apache

# /usr/local/apache2/bin/apachectl restart

就可以通过 svn/testsvn/document

这个URL来访问仓库了,当然,受权限的限制,必须是合法用户才

能访问且具有相应的权限。

7. 备忘

设置启动系统后,自启动Apache服务

编辑etc/rc.d/rc.local

# vi /etc/rc.d/rc.local

在最后加上一句: /usr/local/apache2/bin/apachectl start

8. 客户端TortoiseSVN的安装

       Windows平台可用这个客户端

因为我们公司是在Linux终端下开发,没有图形界面,所以不能用图形客户端。所以在需要用到的linux客户机上可以单独安装Subversion(因为Subversion自带了客户端)。

阅读(1758) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~