LinuxEye - Linux系统教程

LinuxEye - Linux系统教程

当前位置: 主页 > Linux配置 >

Linux下subversion1.6.16和apache安装配置

时间:2013-06-07 13:14来源:未知 编辑:admin 点击:
1 .下载安装apr,下载地址:http://apr.apache.org [root@localhost pub]# tar -jxvfapr-1.4.5.tar.bz2 首先解压缩 [root@localhost pub]# mkdir /usr/local/apr 建立apr要安装到的目录 [root@localhost pub]# cd apr-1.4.5 [root@loc
1 .下载安装apr,下载地址:http://apr.apache.org
[root@localhost pub]# tar -jxvfapr-1.4.5.tar.bz2 首先解压缩
[root@localhost pub]# mkdir /usr/local/apr 建立apr要安装到的目录
[root@localhost pub]# cd apr-1.4.5
[root@localhost apr-1.4.5]# ./configure –prefix=/usr/local/apr 开始配置编译
[root@localhost apr-1.4.5]# make;make install 安装

2.安装apr-util
[root@localhost pub]# tar -jxvf apr-util-1.3.12.tar.bz2
[root@localhost pub]# cd apr-util-1.3.12
[root@localhost apr-util-1.3.12]# mkdir /usr/local/apr-util
[root@localhost apr-util-1.3.12]# ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr
[root@localhost apr-util-1.3.12]# 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.29.6.tar.gz //下载地址http://www.webdav.org/neon/,在这里找
[root@localhost pub]# mkdir /usr/local/neon
[root@localhost pub]# cd neon-0.29.6
[root@localhost neon-0.29.6]# ./configure –prefix=/usr/local/neon
[root@localhost neon-0.29.6]# make;make install

4.安装Berkeley DB
下载地址:http://www.oracle.com/technetwork/database/berkeleydb/downloads/index.html,不过需要先注册后才能下载。
[root@localhost pub]# cd /usr/local/src
[root@localhost src]# tar -zxvf /var/ftp/pub/db-5.2.28.tar.gz
[root@localhost src]# cd db-5.2.28/
[root@localhost db-5.2.28]# 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/berkeleydb/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,下载地址http://www.sqlite.org/download.html
[root@localhost pub]# tar -zxvf sqlite-amalgamation-3.6.13.tar.gz
[root@localhost pub]# mkdir /usr/local/sqlite
[root@localhost pub]# cd sqlite-amalgamation-3.6.13/
[root@localhost sqlite-amalgamation-3.6.13]# ./configure –prefix=/usr/local/sqlite
[root@localhost sqlite-amalgamation-3.6.13]# make;make install

6.编译安装httpd, 下载地址:http://httpd.apache.org
[root@localhost pub]#tar xvzf httpd-2.2.19.tar.gz //解压apache2安装包
[root@localhost pub]#cd httpd-2.2.19//进入解压后的目录
[root@localhost httpd-2.2.19]# mkdir /usr/local/apache2
[root@localhost httpd-2.2.19]# ./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-util/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.16

http://subversion.apache.org/download/#recommended-release

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

./configure以前,需要yum -y install openssl-devel,否则会一直报错,提示你configure的时候加上–with-openssl,即使你加上了也会报错,因为需要一个 openssl.h(具体的名字忘了)的头文件,如果你没有安装openssl-devel这个软件包的话,这个.h文件系统中是没有的。在解压缩 subversion-devel-1.6.16.tar.gz后,会在解压缩subversion-1.6.16.tar.gz产生的文件夹内生成 zlib文件,在configure时,要加上他的路径,否则configure: error: –with-zlib requires an argument.也是报错!

[root@localhost subversion-1.6.16]# ./configure -prefix=/usr/local/subversion1.6.16/ –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.16/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.16]#make
[root@localhost subversion-1.6.16]#make install

完成安装。确定一下svn有没有安装成功
[root@localhost subversion-1.6.16]# /usr/local/subversion1.6.16/bin/svnserve –version
svnserve, version 1.6.16 (r1073529)
compiled Jul 13 2011, 21:35:15

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.apache.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository back-end (FS) modules are available:

* fs_fs : Module for working with a plain file (FSFS) repository.

会看到相关版本信息!

启动/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服务的是否就没有报错了!

配置svn服务器:
(1). 创建一个用户,如:svnroot;并设置密码,使其可以登录。也可不创建svnroot,直接使用root,但是注意权限问题。

(2). 以svnroot用户登录
[svnroot@localhost conf]$ mkdir /home/svnroot/repository
[svnroot@localhost conf]$ cd /usr/local/subversion/bin
[svnroot@localhost bin]$ ./svnadmin create /home/svnroot/repository 会在repository目录下产生以下文件和目录
conf db format hooks locks README.txt
[svnroot@localhost bin]$ /usr/local/apache2/bin/htpasswd –cm /home/svnroot/repository/passwd.conf usera” 来创建svn用户,如果第一次执行这个命令,需要加上参数c来创建passwd.conf文件,参数m是指定使用md5方式加密用户密码。新建用户要求输入两次密码
[svnroot@localhost bin] $cd /home/svnroot/repository
[svnroot@localhost bin] $ls -ll
conf db format hooks locks passwd.conf README.txt
看看是不是多了些文件,如果是则说明Subversion安装成功了
这条语句将把路径/home/user/import下找到的文件导入到你创建的Subversion 仓库中去,提交后的修订版为1。
[svnroot@localhost bin] $./svn import 你想要导入的文件位置 file:///home/svnroot/repository –m “注释” 如下例:
[svnroot@localhost bin] $./svn import /var/ftp/pub/ file:///home/svnroot/repository/ -m “this is a test”

不让其他人有该目录的权限
[svnroot@localhost bin] $ chmod 700 /home/svnroot/repository

(3).使用root用户 修改Apache配置文件
[root@localhost ~]# cd /usr/local/apadche2/bin
[root@localhost ~]# vi /usr/local/apache2/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/ //svn父目录
SVNPath /home/svnroot/repository/test //与svn中bin中svnadmin创建应一样 否则会进不到目录
#AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文件
AuthType Basic //连接类型设置
AuthName “Subversion.zoneyump” //连接框提示
AuthUserFile /home/svnroot/repository/passwd.conf //用户配置文件
Require valid-user //采用何种认证
AuthzSVNAccessFile /home/svnroot/repository/conf/authz //这句话必须加上,加上以后,authz里的用户权限才被限制住

其中authfile是通过”htpasswd来创建的那个密码文件,也就是passwd.conf;
“Require valid-user”告诉apache在authfile中所有的用户都可以访问。如果没有它,则只能第一个用户可以访问新建库。
接下来,找到找到以下内容
User daemon
Group daemon
把上述内容改成:
User svnroot
Group svnroot
保存退出

具体的配置应该是这样的:
#User daemon
#Group daemon
User svnroot
Group svnroot

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<Location /repo>
DAV svn
SVNPath /home/svnroot/repository
AuthType Basic
AuthName “Subversion.yxg”
AuthUserFile /home/svnroot/repository/passwd.conf
Require valid-user
AuthzSVNAccessFile /home/svnroot/repository/conf/authz
</Location>

(4). 添加svn用户
创建
[svnroot@localhost bin] $htpasswd -c /home/svnroot/repository/passwd.conf usera 这个用户上面已经建立了。
会要求输两次密码
[svnroot@localhost bin] $htpasswd -c /home/svnroot/repository/passwd.conf userb 在添加一个用户
在/home/svnroot/repository/conf有以下文件,需要编辑authz文件。
authz passwd svnserve.conf

$cd /home/svnroot/repository/conf
$vi authz
添加如下
[groups] /*这个表示群组设置
Admin=usra,userb /*这个表示admin群组里的成员 user1,user2
Develop=u1, u2 /*这个表示Develop群组里的成员 u1,u2
[www:/] /*这表示,仓库www的根目录下的访问权限
usera = rw /*www仓库user1用户具有读和写权限
userb = r /* www仓库userl用户具只有读权限
@develop=rw /*这表示 群 develop的成员都具有读写权限
[/] /*这个表示在所有仓库的根目录下
* = r /*这个表示对所有的用户都具有读权限

注意:在编辑authz文件时,所有行都必须要顶头写,不能有缩行

(5). 重起Apache //apache启动后,就可以访问svn了
[root@localhost subversion-1.6.16]#/usr/local/apache2/bin/apachectl –k restart

(6). 启动svn服务//这一步似乎没有必要,需要以后验证。
[root@localhost subversion-1.6.16]# /usr/local/subversion1.6.16/bin/svnserve -d -r /home/svnroot/repository

-d 表示以 daemon 方式(后台运行)运行
-r /svn/project 指定根目录是/home/svnroot/repository
检查服务器是否启动正常:
#ps –ef|grep svnserve

在IE地址栏里输入:http://192.168.1.200/repo

转载请保留固定链接: https://linuxeye.com/configuration/1729.html

------分隔线----------------------------
标签:apachelinuxsubversion
栏目列表
推荐内容