Linux+Svn+apache2安装与配置

今天要在linux上配置svn,以apache来访问svn。现将过程记录下来。
一、理解:Svn
    subversion(简称svn)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。
  svn服务器有2种运行方式:独立服务器和借助apache2种方式各有利弊。
svn存储版本数据也有2种方式:BDBFSFS。因为BDB方式在服务器中断时,有可能锁住数据(我在搞ldap时就深受其害,没法根治),所以还是FSFS方式更安全一点。
Svn是版本控制系统,他可以借助svn客户端来访问,也可以借助apache2来访问,默认配置下是FSFS访问形式。
二、接下来进行安装。
1.              环境,安装了rpmhttpd ,版本有点早。卸载后重新编译安装。卸载使用强制卸载,如:rpm –e –nodeps httpd**.rpm
2.              下载安装包,注意个安装包版本之间要适应。我系统为redhat AS4AS5,用以下版本,不保证其他版本适用。
必要支持包:apr-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1.3.8.tar.gz
apr-util-1.3.9.tar.gz
apachesvn
httpd-2.2.14.tar.gz
subversion-1.6.2.tar.gz
subversion-deps-1.6.2.tar.gz
3.              安装
一次安装上述包
apr-1.3.8.tar.gz
tar zxvf  apr-1.3.8.tar.gz
cd apr-1.3.8
./configure
make $ make install
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

apr-util-1.3.9.tar.gz
tar zxvf apr-util-1.3.9.tar.gz
cd apr-util-1.3.9
./configure –with-apr=/usr/loca/apr/
make $make install

 

安装apache
tar zxvf httpd-2.2.14.tar.gz
cd httpd-2.2.14
         ./configure --prefix=/opt/apache
--enable-dav
--enable-so
--enable-maintainer-mode
--enable-ssl
--with-apr=/usr/local/apr/bin/apr-1-config
--with-apr-util=/usr/local/apr/bin/apu-1-config
make $ make install

 

 

安装subversion-1.6.2.tar.gz
注意将subversion-deps-1.6.2.tar.gz解压到当前目录,subversion-1.6.2.tar.gz会和subversion-1.6.2.tar.gz解压在一个目录。
tar zxvf subversion-1.6.2.tar.gz
tar zxvf subversion-deps-1.6.2.tar.gz
cd subversion-1.6.2
./configure
--with-apxs=/opt/apache/bin/apxs
--with-apr=/usr/local/apr
--with-apr-util=/usr/local/apr
make $make install
三、配置
此时apache的配置文件中应该有了两个模块的信息:
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
httpd.conf最后添加以下内容
1.       建立svn存储仓库
mkdir –p /data/svn/repos  //将仓库路径建在此目录
svnadmin create /data/svn/repos/123 //(根据路径运行)创建用户数据库,名为123
2.       创建apache认证用户,用来对123仓库进行存储操作。
/opt/apache/bin/htpasswd -c /data/svn/passwd bob //这里起名为bob
会提示输入密码,为bob输入密码
3.       建立控制文件auth
touch /data/svn/auth
auth中记录如下内容,简单记录。
[groups] 
[123:/]   //路径

bob = rw  //bob的权限为读写
4.       httpd.conf中最后添加如下信息:
<Location /svn>  //路径

       DAV svn  //命名
       SVNParentPath /data/svn/repos  //指向路径
       AuthType Basic  //基本验证方式
       AuthName "Subversion repository" //欢迎界面命名
       AuthUserFile /data/svn/passwd   //密码验证路径
       AuthzSVNAccessFile /data/svn/auth  //控制文件路径
       Require valid-user //验证有效用户才能登陆
 </Location>
 
修改httpd.confusergroup的内容如下:

 

User apache

Group apache

 
5.       修改权限
将仓库目录权限修改所属权,让apache组用户登录,给与最多权限。
Chown –R apache.apache repos
 
经过验证,此处最好将repos的权限设置为700
chmod -R 700 repos
 
6.       httpd加到系统服务中
cp /opt/apache/bin/apachectl /etc/rc.d/init.d/httpd
vi httpd ///etc/rc.d/int.d/目录下编辑复制过去的httpd程序
找到:#!/bin/sh //一般在第一行
另起一行,增加:
# chkconfig: 2345 70 30
# description: Apache
然后注册服务:chkconfig --add httpd
启动:service httpd start
停止:service httpd stop
重新启动:service httpd restart
重启apache
此时便可以在浏览器中输入http://ip/svn/123来用bob登录访问你的svn了。