fen_fen的专栏

我有一份快乐,与你们分享

linux+apache 的svn服务器端配置说明

 

linux+apache svn服务器端配置说明
 
首先:下载Subversionapache的安装包,Apache2.0.59和subversion1.3.2. Apache是web服务器,用来通过web访问subversion。Apache可以在apache官方网站上下载,下载地址:http://httpd.apache.org/download.cgi
Subversion稳定版SVN1.32
 
一、准备好相关软件包, 复制到linux目录下
 1.subversion-1.3.2.tar.gz   /*
下载1.3.2这个版本*/
 2.httpd-2.0.59.tar.gz        /*
因网上说Apache 2.2版本与SVN1.3.2不兼容 */
二、新建一个用户:svnroot ,以下操作非特别说明皆为root用户操作
#groupadd svn
#useradd svnroot -g svn
#passwd svnroot
三、编译安装Apache
//解压apache2安装包
# tar xvzf httpd-2.0.59.tar.gz
//进入解压后的目录
# cd httpd-2.0.59
//配置apache安装
# ./configure --enable-dav --enable-so --prefix=/usr/local/apache2/
# make
//安装
# make install
//启动apache服务
# /usr/local/apache2/bin/apachectl start
//打开浏览器http://localhost/,如果出现Apache的测试页面,证明已经
安装成功。
 
 
四、安装Subversion
//解压SubVersion安装包
# tar xvzf subversion-1.3.2.tar.gz
//进入解压后的目录
# cd subversion-1.3.2
//配置subversion安装
#./configure
--with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion
--with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2
--with-ssl --with-zlib
--enable-maintainer-mode
# make
//安装
# make install
//创建库文件所在的目录 (svnroot用户进行下面的操作)
# mkdir /home/svnroot/repository
//
进入subversion的bin目录
# cd /usr/local/subversion/bin
//
创建版本库"test"
# ./svnadmin create /home/svnroot/repository/test
# cd /home/svnroot/repository/test
//查看svn是否安装成功
# /usr/local/subversion/bin/svnadmin --version
 
//不让其他人有该目录的权限
# chmod 700 /home/svnroot/repository
 (svnroot用户操作结束)
 
五、修改Apache配置文件
# 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
 //在后面添加
<Location /svn>
 DAV svn
 SVNParentPath /home/svnroot/repository/ //svn父目录
 AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文件
 AuthType Basic //连接类型设置
 AuthName "Subversion repository " //连接框提示
 AuthUserFile /home/svnroot/repository/userfile //用户配置文件
 Require valid-user //采用何种认证
</Location>
//重启apache
 # /usr/local/apache2/bin/apachectl restart
//打开浏览器访问http://localhost/svn/test/ ,如果有东西显示就说明成功。
//其中userfile是通过
"htpasswd [–c] /home/svnroot/repository/userfile username password"来创建的
//"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,则只能第一个用户可以访问新建库
 
 
六、权限管理
(1)增加用户
# htpasswd -c /home/svnroot/repository/userfile 用户名
//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
# htpasswd /home/svnroot/repository/userfile 用户名(加入新的用户,就不用-c)
 
(2)权限分配
# vi /home/svnroot/repository/authz.conf
[groups]
admins=admin   //这个表示某群组里的成员
tests = hmf,zym 
[/]             //这个表示在所有版本库的根目录下
@admins = rw   //admins组都具有读写权限
* = r           //这个表示对所有的用户都具有读权限
[test:/]          //这表示,版本库test的根目录下的访问权限
@tests = rw     //如果在前面加上@符号,则表示这是个群组权限设置
* =            //使其他用户不能读写
//组可以被赋予通用户一样的访问权限,使用“at”(@)前缀来加以区别
// /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行:
User daemon
Group daemon
 // daemon改为svnroot,组也做相应更改,apache进程以svnroot的身份运行
//改完后是这个样子
User svnroot
Group svn
//重启apache
# /usr/local/apache2/bin/apachectl restart
访问http://localhost/svn/test  ,现在需要身份验证,且通过验证后应该可以看到信息。
 
另说明:
1、 apache进程的权限:因为所有跟版本库传输的操作都是通过apache进程进行的,所以即使你给svn用户设置了很大的权限,但是apache进程没有访问版本库或者相关文件的权限也没有用,apache进程的权限设置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行:
User daemon #  //将daemon用户改为svnroot,让apache进程以svnroot身份运行
Group daemon   
//将daemon组改为svn
2、 /etc/profile的结尾设置一些svn启动时要做的工作
start apache server for svn
/usr/sbin/apachectl start
export SVN_EDITOR=vi
3、/home/respository/svnroot下的文件操作权限有给svnroot.
 
 
 
阅读更多
个人分类: 配置管理
想对作者说点什么? 我来说一句

SVN服务器端安装和配置

2010年05月12日 59KB 下载

SVN配置文档

2013年06月11日 54.39MB 下载

Setup-Subversion-1.5.6

2009年08月27日 4.68MB 下载

版本控制svn学习书籍

2010年04月29日 2.06MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭