日期:2014-05-16  浏览次数:20711 次

linux下安装apache + subversion
linux下安装apache + subversion
环境是
操作系统:Red Hat Enterprise Linux Server release 5.3 (32位)
apache版本:httpd-2.2.14
subversion版本:subversion-1.6.6

需要的安装包:(目前是最新的)
subversion-1.6.6.tar.gz 地址:http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz
subversion-deps-1.6.6.tar.gz 地址:http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz
httpd-2.2.14.tar.gz 地址:http://apache.etoak.com/httpd/httpd-2.2.14.tar.gz

一.安装apr跟apr-util(这两个包subversion已经带了)
1.解压subversion
tar zxvf subversion-1.6.6.tar.gz
tar zxvf subversion-deps-1.6.6.tar.gz (这个解压后会自动放到前面一个解压的目录里的)

2.安装
cd subversion-1.6.6/apr
./configure --prefix=/usr/local/apr
make && make install

cd subversion-1.6.6/apr-util
./configure --with-apr=/usr/local/apr
make && make install

二.安装apache
1.解压apache
tar zvxf httpd-2.2.14.tar.gz
2.安装
#./configure --prefix=/opt/Apache2 --enable-so --enable-dav --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config
#make
#make install

注意:--prefix指定安装目录,注意一定要加--enable-so是核心能够装载DSO和--enable-dav是安装mod_dav_svn.so跟mod_authz_svn.so这两个模块

三. 安装subversion
#cd subversion-1.6.6
#./configure --prefix=/opt/subversion --with-apxs=/opt/Apache2/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-ssl --with-zlib=/usr/lib --enable-maintainer-mode
#make
#make install

四. 配置subversion
1.创建账号密码文件
#mkdir -p /home/svnroot
#chown -R svnroot:svn /home/svnroot
2.创建资料库
首先要创建一个资料库(我使用单资料库的方式),使用svnadmin增加资料库
#cd /usr/local/subversion/bin
#./svnadmin create /home/svnroot/repository/pro1
到svnroot下看是不是多了文件,多了就是说明创建成功
htpasswd –c /home/svnroot/repository/pro1/conf/passwd prouser1
输入密码,两次确认
注意:第一次设置用户密码要加入 –c 这个参数

五. 配置apache的httpd.conf
打开apache的conf/httpd.conf, 安装subversion后,apache的conf/httpd.conf文件会自动增加了模块配置
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

相应的so文件也自动copy到了apache/modules。这些工作就不用自己动手了。

需要自己动手修改apache下的httpd.conf最后增加以下内容

DAV svn
SVNPath /home/svnroot/repository/pro1 #版本库的目录
AuthType Basic
AuthName "Subversion repository" #欢迎语言
AuthUserFile /home/svnroot/pro1/conf/passwd #密码文件
Require valid-user

注意:
1. SVNPath一定要跟./svnadmin create /home/svnroot/repository/pro1的目录一样
2. 目录svnroot的权限设置成755
3. 因为要用HTTP服务器Apache,Apache安装后默认的属主和属组的配置为daemon和daemon,
所以其中属主和数组改为svnroot:svn,否则创建的仓库没有写的权限,当客户端上传文件会报类似的错误:
svn: Can't create directory '/subversion/main/db/transactions/0-1.txn': Permission denied
修改后的/opt/Apache2/conf/httpd.conf文件中的配置如下:
......
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
#User daemon
#Group daemon
User svnroot
Group svn
......

六.修改版本库配置文件
版本库1:
# vi /home/svnroot/repository/pro1/conf/svnserve.conf
内容修改为:
[general]
anon-access = none
auth-access = write
password-db = /home/svnroot/repository/pro1/conf/passwd
authz-db = /home/svnroot/repository/pro1/conf/authz
realm = pro1


七.启动Apache
# ./apachect1 start

【附】
vi /usr/local/apache/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/ //s