·ChinaUnix首页 ·论坛 ·博客 
Linux首页 | Linux新闻 | Linux论坛 | Linux文档 | Linux下载 | Linux博客 | Linux搜索 | 开源项目孵化平台 | 《开源时代》
新手入门 | 安装启动 | 管理员指南 | 开发手册 | 桌面应用 | 程序开发 | 数据库 | 网络技术| CentOS | Fedora | MySQL | Apache | Ubuntu | Gentoo| OSCON08
  Linux时代 >> 技术文档 >> 网络技术
 
Linux上配置Apache+Subversion+Trac
来源: ChinaUnix博客  日期: 2008.06.26 00:21 (共有条评论) 我要评论
 

Subversion是新一代的版本控制工具,它是一个自由、开放源码的版本控制系统。它是一个通用系统,可用来管理任何类型的文件, 其中包括程序源码。Subversion是近年来崛起的版本管理工具,被誉为是cvs的接班人。
最近帮公司在一台服务器上安装了Subversion和Trac,由于服务器是公司前几年买的比较老,型号是HP ML350,拿到手一看,操作系统竟然还是Fedora Core release 2,所以在安装过程中好多需要的rpm包都要自己下载,还不能用最新的rpm, 新的都没发安装,让我到网上找了好久才找到。真有点不习惯,以前一直用Ubuntu, 只要用apt-get来安装,就很方便的帮你自动处理了所需的依赖关系,那是一个爽啊!!
想重装OS,可是没办法啊服务器的OS安装比较麻烦,重装了的话可能涉及到驱动方面的安装,太老了搞不好就毁了,到时再找HP的技术支持那就搞大了,不好向老大交代

,那就只好老老实实的自己编译安装吧,说了一大堆废话,下面把我的安装步骤讲一下吧,呵呵~~
首先:下载Apache,Subversion和Trac的安装包,Apache2.2.8,subversion1.4.6和trac-0.10.4。Apache是web服务器,用来通过web访问subversion。安装包都可以从官方网站上下载。
下载地址:
http://apache.mirror.phpchina.com/httpd/httpd-2.2.8.tar.gz
http://subversion.tigris.org/downloads/subversion-1.4.6.tar.gz
http://subversion.tigris.org/downloads/subversion-deps-1.4.6.tar.gz
http://ftp.edgewall.com/pub/trac/trac-0.10.4.tar.gz
1. 编译安装Apache:
//解压apache2安装包
# tar zxvf httpd-2.2.8.tar.gz
//进入解压后的目录
# cd httpd-2.2.8
//配置apache
# ./configure --enable-dav --enable-so --enable-ssl --enable-maintainer-mode --prefix=/usr/local/apache2 --enable-mods-shared=all
//进行编译
# make
//编译后进行安装
# make install
//安装完毕,进行测试。先修改apache配置文件
# vi /usr/local/apache2/conf/httpd.conf   
   将ServerName 修改为ServerName:80
//启动apache服务
# /usr/local/apache2/bin/apachectl start
//打开浏览器
http://localhost/
,如果出现Apache的测试页面,可以看到It works!说明apache已经可以正常工作了。
2. 编译安装Subversion:
PS:在安装之前先确认你的OS上已经安装了python和swig,如果没有安装的话可以下载source code或rpm包来安装,因为我的OS上原本已经安装了所以我没有去重新安装,我安装的版本是:python-2.3.3和swig-1.3.19
//解压subversion安装包
# tar zxvf subversion-1.4.6.tar.gz
# tar zxvf subversion-deps-1.4.6.tar.gz

//进入解压后的目录
# cd subversion-1.4.6
//配置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 --without-berkeley-db PYTHON=/usr/bin/python --with-swig=/usr/bin/swig --enable-shared --enable-static --enable-swig-binding=python
//进行编译
# make
//编译后进行安装
# make install
经过上面的步骤mod_dav_svn.so and mod_authz_svn.so将会被copy到/usr/local/apache2/modules/下,
同时在 /usr/local/apache2/conf/httpd.conf will be added the following section:
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

检查一下是否都正确,如果没有的话可能就要手动加进去。
注意一下运行. /configure时加的这几个参数PYTHON=/usr/bin/python --with-swig=/usr/bin/swig --enable-shared --enable-static --enable-swig-binding=python,开始的时候编译svn的时候没有加这几个参数,单独使用svn 都没问题,但是后面安装好trac后却怎么也不行,打开网页一直有错误,从Browser访问Trac的时候,出现了下面的错误:
---------------------------------------------------------------------------------------------
Python Traceback
Traceback (most recent call last):
File "/usr/local/lib/python2.5/site-packages/trac/web/main.py", line 387, in dispatch_request
    dispatcher.dispatch(req)
File "/usr/local/lib/python2.5/site-packages/trac/web/main.py", line 191, in dispatch
    chosen_handler = self._pre_process_request(req, chosen_handler)
File "/usr/local/lib/python2.5/site-packages/trac/web/main.py", line 263, in _pre_process_request
    chosen_handler = f.pre_process_request(req, chosen_handler)
File "/usr/local/lib/python2.5/site-packages/trac/versioncontrol/api.py", line 73, in pre_process_request
    self.get_repository(req.authname) # triggers a sync if applicable
File "/usr/local/lib/python2.5/site-packages/trac/versioncontrol/api.py", line 92, in get_repository
    % self.repository_type)TracError: Unsupported version control system "svn"

---------------------------------------------------------------------
上网找了半天看见一片文章上说make svn的时候要加上这几个参数"PYTHON=/usr/bin/python --with-swig=/usr/bin/swig --enable-shared --enable-static --enable-swig-binding=python"
同时执行了上面的make && make install后还要编译安装Subversion SWIG Python bindings
Swig-py的安装说明在subversion-1.4.6/subversion/bindings/swig/INSTALL文件里。说的比较详细,要做的事情如下:
#cd subversion-1.4.6
#make swig-py
#make install-swig-py
那么你可以看到swig-py的install目录是/usr/local/subversion/lib/svn-python。用如下命令讲这个扩展包扩展到python:
#echo /usr/local/subversion/lib/svn-python >/usr/lib/python2.3/site-packages/subversion.pth
剩下的就是测试svn的swig-py包是不是能work了,很简单。
#python
>>>import svn.repos
如果不报错,就完事大吉了。
如果报错,那么检查几件事情:
I. subversion的configure是不是enable了shared和static,是不是带--with-swig;
II. libsvn_swig_py-x.so是否存在于/usr/local/subversion/lib目录;
III. /usr/local/subversion/lib是否已经增加到ld.so.conf文件 (/etc/ld.so.conf)
IV. 请使用ldconfig -v |grep swig来检查是否有swig的下列动态库
libsvn_swig_py-1.so.0 -> libsvn_swig_py-1.so.0.0.0
如果一切正常,这个安装就完成了。
安装完成后,运行svnserver --ve