老服务器Subversion 升级和与 xampp 集成方法

老服务器Subversion 升级和与 xampp 集成方法

  在讲升级与集成方法之前先简要讲一下基本情况,公司原有 Subversion 服务器,相对较老,安装和使用于 2011年,之后沧海桑田,人员人事变动,服务器逐渐没有使用,密码差点都不记得了。现在因公司研发战线拉得越来越大和新业务扩大需要,准备将这个服务器再次利用上,不影响原来代码库的浏览和使用,同时增加文档和 Bug 测试跟踪功能。
  服务器原来安装的 Subversion 版本实在有点老(1.6.18),众所周知,Subversion 在 1.7版后与之前的版本有阶段性的质变,代码库内内部文档组织结构都不一样(最明显的表现就是由原来的每个目录下的 .svn目录缩减至根目录下的一个.svn目录),性能也有所提升,所以决定先升级至最新的 1.9.5。
  此外,为了满足公司软件项目Bug测试跟踪的要求,考虑安装较成熟稳定的基于Web的 mantis V2.5,服务器系统已安装具备Apache 2.2.4,仅能满足 Subversion 库浏览和静态页面的简单要求,无法满足 mantis 所需的 Apache/PHP/MySQL 这些复杂环境和高版本,如果自己逐个下载、配置和安装,实在有点烦琐,所以也不多做考虑直接使用xampp,一键搞定。
  一般情况下,图省事可以直接安装xampp,配置它集成的Apache Webserver的端口不与原来的80端口冲突,再调整xampp和服务器系统中 Apache 的启动顺序(必须先启动 xampp,再启动httpctrl -k start),就可以与原来的Subversion、Apache和谐集成在一起。然而,这样相当于服务器启动了两个 Apache 服务器,而且还必须分端口访问,实际使用的时候不方便。对于有强迫症的人来说,当然还是多个集成且只使用一个Apache Webserver并通过常规的80端口访问和操作更优。
  这里写图片描述  

  这里写图片描述
  (本文内容主要记录在已有的旧版本 Subversion 基本上升级且与xampp搭配使用,至于 mantis 的安装和配置不在此文之列)
  废话不多说,开撸!

一、已有软件环境

  • RHEL 6.1 32bit
  • Subversion 1.6.18
  • Apache 2.2.4

二、实现目标

  升级安装完后,实现版本升级和完美集成。  

  • subversion 1.9.5(the latest version due to Jun 24,2017)
  • Apache 2.4.17
  • Mantis 2.5

三、实现过程和方法

1.下载
  • subversion

    http://apache.fayea.com/subversion/subversion-1.9.5.tar.gz (从1.7版本 后,subversion直接集成成一个package里, 不再区分 subversion和subversion-deps)

  • xampp-linux-5.6.14-0-installer.run

      本来以上两个包足够,奈何原来的subversion 使用的sqlite数据库较老(V3.7.17),如果用其它的,不停的报错,甚是麻烦。为了兼容它还是重新使用它的老版本吧(sqlite-amalgamation-3071700.zip,请直接在网上搜索下载),简单实用错误少。

2.编译和安装
# chmod 777 xampp-linux-5.6.14-0-installer.run
# ./xampp-linux-5.6.14-0-installer.run

  按提示进行安装即可。

# tar zxvf subversion-1.9.5.tar.gz
# cd subversion-1.9.5
# unzip sqlite-amalgamation-3071700.zip
#  ./configure --prefix=/opt/svn --with-apr=/opt/lampp/bin/apr-1-config --with-apr-util=/opt/lampp/bin/apu-1-config --with-apxs=/opt/lampp/bin/apxs --with-zlib=/usr/local/zlib --enable-maintainer-mode  --with-apache-libexecdir=/opt/lampp/modules
# make; make install

  为了编译生成的 Subversion 可以与 xampp 中的 Apache 版本匹配并集成使用,必须注意 configure 中的链接库等指向目录,即 –with-apr, –with-apr-util,–with-apxs,–with-apache-libexecdir这几项尤其重要

3.配置

  将 subversion 目录下的两个动态库拷贝到 /opt/lammp/moduels 目录下,供 Apache 享用。

# cp ./subversion/mod_dav_svn/.libs/mod_dav_svn.so /opt/lampp/modules
# cp ./subversion/mod_authz_svn/.libs/mod_authz_svn.so /opt/lampp/modules

  修改 /opt/lampp/etc/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
        SVNListParentPath on
        AuthType Basic
        AuthName " Welcome to xxxx SVN Server... "
        AuthUserFile /home/svnroot/passwd
        AuthzSVNAccessFile /home/svnroot/authz
        Require valid-user
</Location>
4.其它

  subversion 生成多库的方法不再多说,直接在网上找度娘。

  经配置后,可以直接不修改和改变原来的 Subversion 代码库,且和apache完美集成,代码提交和测试两不耽误。

四、题外话

  在安装完成后,可以访问Apache的mantis,但Subversion一直提示出错:  

Checkout from http://192.168.1.200/svn/tmp_repos, revision HEAD, Fully recursive, Externals included
Unable to connect to a repository at URL 'http://10.10.1.242/svn/tmp_repos'
Access to '/svn/tmp_repos' forbidden

  调试了多次也没找到问题原因所在,结果查看Apache的Log才发现是项目配置文件 /home/svnroot/authz 中有的项目配置有错,导致无法访问!可见查看日志真的是很重要啊!

# vi /opt/lampp/logs/error_log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值