Linxu svn

本文详细介绍了如何从下载安装apr、apr-util、neon、BerkeleyDB、sqlite、httpd、subversion等组件,到配置Apache和Subversion,最终实现部署Subversion服务器的全过程。包括每个组件的下载、解压、配置、编译和安装步骤,以及Apache的配置调整,确保服务器能够正常运行并提供版本控制系统服务。
摘要由CSDN通过智能技术生成

正文

1 .下载安装apr,下载地址:http://apr.apache.org/
[root@localhost pub]# tar -jxvf apr-1.3.12.tar.bz2 首先解压缩
[root@localhost pub]# mkdir /usr/local/apr         建立apr要安装到的目录
[root@localhost pub]# cd apr-1.3.12
[root@localhost apr-1.3.12]# ./configure --prefix=/usr/local/apr 开始配置编译
[root@localhost apr-1.3.12]# make;make install    安装

2.安装apr-util
[root@localhost pub]# tar -jxvf apr-util-1.3.9.tar.bz2
[root@localhost pub]# cd apr-util-1.3.9
[root@localhost apr-util-1.3.9]# mkdir /usr/local/apr-util
[root@localhost apr-util-1.3.9]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.3.9]# make;make install



3.安装neon
在安装之前,需要确认libxml2,如果没有安装需要安装上!
[root@localhost pub]# rpm -q libxml2
libxml2-2.6.26-2.1.2.8
[root@localhost pub]# rpm -q libxml2-devel
libxml2-devel-2.6.26-2.1.2.8

[root@localhost pub]# tar -zxvf neon-0.25.5.tar.gz
[root@localhost pub]# mkdir /usr/local/neon
[root@localhost pub]# cd neon-0.25.5
[root@localhost neon-0.25.5]# ./configure --prefix=/usr/local/neon
[root@localhost neon-0.25.5]# make;make install

4.安装Berkeley DB

[root@localhost pub]# cd /usr/local/src
[root@localhost src]# tar -zxvf /var/ftp/pub/db-4.6.18.tar.gz
[root@localhost src]# cd db-4.6.18/
[root@localhost db-4.6.18]# cd build_unix/
[root@localhost build_unix]# mkdir /usr/local/berkeleydb
[root@localhost build_unix]# ../dist/configure --prefix=/usr/local/berkeleydb --enable-cxx
其中-enable-cxx就是编译C++库,这样才能编译Berkeley DB数据库的PHP扩展php_db4.
yum -y install gcc-c++安装一下就可以了

[root@localhost build_unix]# make;make install
[root@localhost build_unix]# echo '/usr/local/bekeleydb/lib/'>>/etc/ld.so.conf
[root@localhost build_unix]# ldconfig
这2句的作用就是通知系统Berkeley DB的动态链接库在/usr/local/berkeleydb/lib/目录

5.安装sqlite-amalgamation-3.6.13.tar.gz
[root@localhost pub]# tar -zxvf sqlite-amalgamation-3.6.13.tar.gz
[root@localhost pub]# mkdir /usr/local/sqlite
[root@localhost pub]# cd sqlite-3.6.13/
[root@localhost sqlite-3.6.13]# ./configure --prefix=/usr/local/sqlite
[root@localhost sqlite-3.6.13]# make;make install

6.编译安装httpd, 下载地址:http://httpd.apache.org/
[root@localhost pub]#tar xvzf httpd-2.2.4.tar.gz//解压apache2安装包
[root@localhost pub]#cd httpd-2.2.4//进入解压后的目录
[root@localhost httpd-2.2.4]# mkdir /usr/local/apache2
[root@localhost httpd-2.2.4]# ./configure -prefix=/usr/local/apache2 --enable-dav --enable-so --enable-maintainer-mode --enable-rewrite --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config
//配置apache安装,后面的第一个参数是定制apache安装到那个目录,--enable-dav --enable-so是和subversion整合时需要的
[root@localhost httpd-2.2.4]# make;make install 完成安装,如果没有错误,真的太幸运了,哈哈。出现错误是很挠头的!
[root@localhost pub]# cd /usr/local/apache2/
[root@localhost apache2]# bin/apachectl start 启动web服务,并访问,注意防火墙,如果能正确的访问,说明没有问题,ok了!
[root@localhost apache2]# bin/apachectl stop 可以停止,接着安装其他的软件包了。

7安装subversion1.6.5
http://subversion.tigris.org/
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=10339&expandFolder=10339&folderID=260  subversion-1.6.5.tar.gz和subversion-deps-1.6.5.tar.bz2下载地址
[root@localhost pub]# tar -zxvf subversion-1.6.5.tar.gz
[root@localhost pub]# tar -jxvf subversion-deps-1.6.5.tar.bz2

./configure以前,需要yum -y install openssl-devel否则会一直报错,提示你configure的时候加上--with-openssl,即使你加上了也会报错,因为需要一个 openssl.h(具体的名字忘了)的头文件,如果你没有安装openssl-devel这个软件包的话,这个.h文件系统中是没有的。再解压缩 subversion-devel-1.6.11.tar.gz后,会在解压缩subversion-1.6.11.tar.gz产生的文件夹内生成 zlib文件,在configure时,要加上他的路径,否则configure: error: --with-zlib requires an argument.也是报错!
[root@localhost subversion-1.6.5]#./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-neon=/usr/local/neon --with-sqlite=/usr/local/sqlite --with-ssl --with-zlib=/var/ftp/pub/subversion-1.6.5/zlib --enable-maintainer-mode --without-berkeley-db

在make之前一定要执行下一步,否则就会报错如下:
/usr/bin/ld: cannot find -lexpat
collect2: ld returned 1 exit status
make: *** [subversion/svn/svn] Error 1
我也是出现错误了,报错了,然后百度,google一顿狂搜,愣是没有搜到我要的答案,不过大体上知道是缺少一个库文件,这个文件的名称应该包含 lib,或expat,因为提示是没有找到lexpat嘛,所以,我就一个软件包一个软件包的测试,才找到这个软件包的,在安装完这个软件包之 后,make才继续进行下去的!!!!需要安装的软件包主要是这两个:expat-1.95.8-8.2.1.i386.rpm和expat- devel-1.95.8-8.2.1.i386.rpm
[root@localhost Server]# rpm -ivh expat-1.95.8-8.3.el5_4.2.i386.rpm
warning: expat-1.95.8-8.3.el5_4.2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:expat-devel            ########################################### [100%]
[root@localhost Server]# rpm -ivh expat-devel-1.95.8-8.3.el5_4.2.i386.rpm
warning: expat-devel-1.95.8-8.3.el5_4.2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:expat-devel            ########################################### [100%]
[root@localhost subversion-1.6.5]#make
[root@localhost subversion-1.6.5]#make install
完成安装。

启动/usr/local/apache2/bin/apachectl start后,如果报错,这个我也查找了N久,才解决报错内容如下:

[root@localhost bin]# ./apachectl start
httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/subversion/lib/libsvn_subr-1.so.0: undefined symbol: apr_memcache_add_server

需要在/etc/ld.so.conf中添加一下内容,并执行ldconfig
[root@localhost ~]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/apache2/modules/
/usr/local/subversion/bin/
/usr/local/berkeleydb/bin/
[root@localhost ~]#ldconfig

这样在启动apache服务的是否就没有报错了!

安装完成之后,需要配置subversion,在配置之前,首先来了解一下配置语句。
主要配置语句如下:
<Location /svn>    意思是Subversion版本可的URL是http://MyServer IP/svn/
DAV  svn    告诉Apache是哪个模块响应哪个URL的请求,在这里是SubVersion模块
SVNPath  /path   单版本库时使用此项指明版本库的路径,但是在多版本库中不要使用此项
SVNListParentPath  on   对于SubVersion1.3或更高的版本,这个指示会列出所有SVNParentPath中的版本库
SVNParentPath /path   告诉Subversion需要查看的版本库位于/path之下
SVNIndexXSLT    "/svnindex.xsl"  使用它可以在用浏览器浏览时更好看
AuthType        Basic   激活基本认证,就是用户名和密码
AuthName "Subversion repository" 用来说明何时弹出要求用户输入认证信息的认证对话框
AuthUserFile   /path/passwd.conf 指定使用的认证密码文件
AuthzSVNAccessFile /path/authz.conf 位置,Subversion版本库的访问控制文件的路径
Require  valid-user  指定只有输入了正确的用户名和密码的用户可以访问URL
</Location>

那么现在首先配置最简单的版本库,那就是单版本库
1)如果只配置一个单版本库,且希望任何人都可以访问你的服务,那么配置语句设置成以下就可以了
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<Location /www> #如果进行访问,在浏览器里输入:http://server IP/www,就可以直接访问了
DAV svn         #告诉Apache使用svn模块响应URL的请求
SVNPath /svn/svnroot/www # 这里是版本库所在的路径
</Location>
如果是配置多版本库,而且允许任何人访问你的服务,配置语句如下:
<Location /svn>
DAV svn
SVNLISTParentPath on     #此句,最好加上,否则在浏览器中输入http://server IP/sev的时候将看不到,除非用户记下了版本库的名字,哈哈
SVNParentPath /svn/svnroot #注意这里是SVNParentPath了,而不是SVNPath,^_^
</Location>
以上是配置单版本库和多版本库,但是一定要注意一个问题,单版本库和多版本库千万不能同时存在,否则,就会出现问题,最常见的问题如下:
<?xml version="1.0" encoding="utf-8" ?>
- <D:error xmlns="DAV:" xmlns:m="http://apache.org/dav/xmlns" xmlns:C="svn:">
  <C:error />
  <m:human-readable errcode="2">Could not open the requested SVN filesystem</m:human-readable>
  </D:error>
解决的方法就是只保留一个版本库,即,删除或注释掉单个版本库,删除或注释掉多个版本库的配置。如果SVNPath或SVNParentPath后的路径写错了,也会出现这样的错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值