Linux系统下Subversion 安装与配置
一 、首先准备好相关的安装包,我这里使用的是下列的几个包
Apr : apr-1.3.8.tar.gz 和 apr-util-1.3.9.tar.gz
Apache : httpd-2.2.14.tar.gz
Subversion: subversion-1.5.1.tar.gz 和 subversion-deps-1.5.1.tar.gz
二、安装和配置步骤:
1、安装apr-1.3.8
tar zxvf apr-1.3.8.tar.gz
cd apr-1.3.8
./configure /*安装不指定路径时默认安装到/usr/local/apr
make clean
make
make install
make clean && make && make install
2、安装 apr-util-1.3.9
tar zxvf apr-util-1.3.9.tar.gz
cd apr-util-1.3.9
./configure --with-apr=/usr/local/apr
make clean
make
make install
3、安装 httpd-2.2.14.tar.gz
tar zxvf httpd-2.2.14.tar.gz
cd httpd-2.2.14
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --enable-modules=so --enable-dav --enable-maintainer-mode --enable-rewrite
make clean
make
make install
安装好后启动apache
/usr/local/apache/bin/apachectl -k start
用浏览器查看http://localhost/,得到it works,说明apache已经配置成功了。
4、安装和配置 subversion
tar zxvf subversion-1.5.1.tar.gz
tar zxvf subversion-deps-1.5.1.tar.gz /*这两个自动解压成一个包 subversion-1.5.1
cd subversion-1.5.1
rm –rf apr
rm -rf apr-util
注意:SVN 依赖的APR版本要正确。如果Apache为2.0.x,对应的APR版本应为0.9.x;Apache为2.2.x,对应的APR版本应为1.2.x。 由于subversion-deps包里的APR是0.9.x的,因此编译svn时要删除从deps里解压出来的apr, apr-util,改而使用apache 2.2里提供的。(这里指定为开始安装的apr目录).
./configure --prefix=/usr/local/svn/ --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-neon=/usr/bin/neon-config --with-zlib=/lib --with-apache-libexecdir --with-apxs=/usr/local/apache/bin/apxs
make clean
make
make install
确定一下svn有没有安装成功
/usr/local/svn/bin/svnserve --version
完了再看看apache 的相关模块有没有加载!如下!
cat /usr/local/apache/conf/httpd.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
开始建立版本库,将40机器的svn资源库直接拷贝到同目录下/home/svndata/
5、配置apache支持svn
vi /usr/local/apache/conf/httpd.conf
Listen 20000
ServerName 127.0.0.1:20000
<Location />
DAV svn
SVNListParentPath on
SVNParentPath /home/svndata/
#SSLRequireSSL
AuthType Basic
AuthName "Xi'An Netouch SVN Server"
AuthUserFile /usr/local/svn/conf/passwd
AuthzSVNAccessFile /usr/local/svn/conf/authz
Require valid-user
</Location>
<Location /server-status>
SetHandler server-status
Order allow,deny
Allow from all
</Location>
将40机器/usr/local/svn/conf/passwd和/usr/local/svn/conf/authz拷贝到同级目录下.
保存文件退出!
重新启动apache
配置提高svn版本库的安全性
#chmod –R 700 /home/svndata/*不让其他人有该目录的权限
注意: 直接这么chmod会导致svn客户端无法访问,同时需要修改apache配置文件./conf/httpd.conf文件
vi /usr/local/apache/conf/httpd.conf
在httpd.conf文件中有这么一段内容:
User daemon
Group daemon
把上述内容改成:
User apache
Group apache
(我的系统在安装apache的时候,自动增加了apache用户和apache组,如果你系统没有这个用户和组,则请自己添加该用户和组)
修改svn仓库的所有者
#chown -R apache:apache /home/svndata
将apache服务设置为开机自启动方法:
在Linux系统中我一般采用编译源码的方式来安装Apache,有两种方法可以让Apache在系统启动时自动启动。
1. 在/etc/rc.d/rc.local中增加启动apache的命令,例如:/usr/local/apache/bin/apachectl start
2. 将apache注册为系统服务
首先将apachectl命令拷贝至/etc/rc.d/init.d目录下,改名为httpd
使用编辑器打开httpd文件,并在第一行#!/bin/sh下增加两行文字如下
# chkconfig: 35 70 30
# description: Apache
接着注册该服务
chkconfig --add httpd
一切OK了,启动服务
service httpd start
其中所增加的第二行中三个数字第一个表示在运行级别3和5下启动apache,第二、三是关于启动和停止的优先级配置,无关紧要。
htpasswd -m /usr/local/svn/conf/passwd zhehui.liu
vi /usr/local/svn/conf/authz