Redhat 4.8 系统下安装apache + subversion

来源:互联网 发布:淘宝领商家的券 编辑:程序博客网 时间:2024/04/30 03:12

 环境是
操作系统:          Red Hat Enterprise Linux 4.8 (64位)
apache版本:      httpd-2.2.14
subversion版本:subversion-1.6.6

 

 

一.安装apr跟apr-util(这两个包subversion已经带了)
1.解压subversion
    tar -zxvf  subversion-1.6.6.tar.gz
    tar -zxvf  subversion-deps-1.6.6.tar.gz (这个解压后会自动放到前面一个解压的目录里的)

2.安装所需包

  安装apr:
  cd subversion-1.6.6/apr
  ./configure --prefix=/usr/local/apr
  make

  make install

  安装apr-util:
  cd subversion-1.6.6/apr-util
  ./configure --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr/

  make

  make install

 

  安装zlib:

 cd subversion-1.6.6/zlib

./configure --prefix=/usr/local/zlib (安装注意事项,configure后,在Makefile里面添加-fPIC参数再make,否则在安装subversion时make步骤会出错

  make

  make install



二.安装apache
1.解压apache
    tar zvxf httpd-2.2.14.tar.gz


2.安装
  ./configure --prefix=/usr/local/apache2 --enable-so  --enable-dav --with-apr=/usr/local/apr/bin/apr-1-config 
  --with-apr-util=/usr/local/apr-util/bin/apu-1-config

   make

   make install

注意:--prefix指定安装目录,注意一定要加--enable-so是核心能够装载DSO和--enable-dav是安装mod_dav_svn.so跟mod_authz_svn.so这两个模块

3、测试安装

      /usr/local/apache2/bin/apactl start  启动Apache,在浏览器中输入:
                  http://服务器ip

      出现 it wors ,表示安装Apache成功


三. 安装subversion
  cd subversion-1.6.6
./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs 
--with-apr=/usr/local/apr/bin/apr-1-config  --with-apr-util=/usr/local/apr-util/bin/apu-1-config
--with-ssl  --with-zlib=/usr/local/zlib  --enable-maintainer-mode

make

make install

如果在make时出如下错误:

/usr/bin/ld: /usr/local/lib/libz.a(compress.o): relocation R_X86_64_32 against `a local symbol' can not be used when

making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status

解决办法 : 重新安装 zlib-1.2.3.tar.gz

tar -zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure

vi Makefile
找到 CFLAGS=-O3 -DUSE_MMAP
在后面加入-fPIC,即变成CFLAGS=-O3 -DUSE_MMAP -fPIC

 

四. 配置subversion
1.        创建账号密码文件
   htpasswd –cm /data/svn/passwd.conf apache
      输入密码,两次确认
      注意:第一次设置用户密码要加入 –c 这个参数


2.        创建资料库
首先要创建一个资料库(我使用单资料库的方式),使用svnadmin增加资料库
cd /usr/local/subversion/bin
     ./svnadmin create /data/svn/svnroot
到svnroot下看是不是多了文件,多了就是说明创建成功

 

五. 配置apache的httpd.conf
打开apache的conf/httpd.conf,安装subversion后,apache的conf/httpd.conf文件会自动增加了模块
        LoadModule dav_svn_module     modules/mod_dav_svn.so
        LoadModule authz_svn_module   modules/mod_authz_svn.so

相应的so文件也自动copy到了apache/modules。这些工作就不用自己动手了。

需要自己动手修改apache下的httpd.conf最后增加以下内容

<Location /svn>
DAV svn
SVNPath /data/svn/svnroot #版本库的目录
AuthType Basic
AuthName "Subversion repository" #欢迎语言
AuthUserFile /data/svn/passwd.conf  #密码文件

AuthzSVNAccessFile /data1/svn/authz.conf  #访问权限控制文件
Require valid-user
</Location>

 

单版本库:

<Location /svn>
DAV svn
SVNPath /data1/svn/svnroot
AuthType Basic
AuthName "Subversion repository 1.6.6 !"
AuthUserFile /data1/svn/passwd.conf

AuthzSVNAccessFile /data1/svn/authz.conf
Require valid-user
</Location>

 

多版本库:
<Location /svn/>      #svn在访问的时候用到,
http://ip/svn; ****注意/svn/的最后的/****
DAV svn

SVNListParentPath on
SVNParentPath  /data/svn/        #多个版本库的目录父路径
AuthType Basic
AuthName "Subversion repository" #欢迎语言
AuthUserFile /data/svn/passwd.conf  #密码文件

AuthzSVNAccessFile /data1/svn/authz.conf    #访问权限控制文件,要不然白配置了
Require valid-user
</Location>

 

多版本库例子:

<Location /svn/>
DAV svn
SVNListParentPath on
SVNParentPath  /data1/svn/
AuthType Basic
AuthName "Svn_Server_1.6.6"
AuthUserFile /data1/svn/passwd.conf
AuthzSVNAccessFile /data1/svn/authz.conf
Require valid-user
</Location>

 

六、权限配置

新创建版本库,svnserve.conf修改如下行:
anon-access = none     #无权限用户
auth-access = write      #有权限用户
password-db = /data1/svn/passwd.conf   #用户和密码文件
authz-db    = /data1/svn/authz.conf    #访问权限配置文件

 

[groups]    #用户组,多个用户用“,”隔开
g_bj=beijing
g_sh=shanghai
g_admin=admin
g_test=test

 

[svnroot:/]          #多个版本库时,表示svnroot版本库根目录,rw是读写、r可读
@g_admin=rw   #读写权限
*=r                     #禁止访问

[svnroot:/diary/beijng]   #多个版本库时,表示svnroot版本库/diary/beijng目录
@g_bj=rw
*=

[svnroot:/diary/shanghai]   #多个版本库时,表示svnroot版本库/diary/beijng目录
@g_sh=rw
*=

[svnroot:/temp]   #多个版本库时,表示svnroot版本库/temp目录
@g_admin=rw
*=

 

七、浏览器访问

http://服务器IP/svn                   单个版本库,直接访问就行了
http://服务器IP/svn/svnroot/    多个版本库的时候,得加上版本库名称:svnroot

 

 


 

原创粉丝点击