378 发表于 2018-11-27 10:11:26

Apache与Svn安装配置

  经过测试基本都OK,有什么地方错误的话大家指出,共同学习Think。Email:cnbjthink@gmail.com
  1> 软件下载
  http://mirror.bjtu.edu.cn/apache//httpd/httpd-2.2.22.tar.gz
  http://labs.renren.com/apache-mirror//apr/apr-1.4.6.tar.gz
  http://labs.renren.com/apache-mirror//apr/apr-util-1.4.1.tar.gz
  http://www.sqlite.org/sqlite-autoconf-3071000.tar.gz
  http://apache.etoak.com/subversion/subversion-1.7.4.tar.gz
  系统为RHEL-5.7-64
  注:系统在默认情况下,是已经有apr-util及apr这两个包的版本较低,只支持subversion 1.4,而subversion要求较高的版本,所以要删除系统自带的apr,apr-util这两个包编译新的版本来支持。
  2> 软件安装
  # rpm -qa | grep apr
  apr-1.2.7-11.el5_6.5
  apr-1.2.7-11.el5_6.5
  apr-util-1.2.7-11.el5_5.2
  apr-util-1.2.7-11.el5_5.2
  # rpm -e --allmatches apr --nodeps
  # rpm -e --allmatches apr-util --nodeps
  或者
  #rpm -qa | grep subversion
  #yum remove subversion
  #yum remove apr
  #rpm -qa | grep apr
  # cd /usr/local/src/svnsoft/
  # ls
  apr-1.4.6.tar.gz       httpd-2.2.22.tar.gz             subversion-1.7.4.tar.gz
  apr-util-1.4.1.tar.gzsqlite-autoconf-3071000.tar.gz
  # tar zxvf apr-1.4.6.tar.gz
  # cd apr-1.4.6
  # ./configure --prefix=/usr/local/apr
  # make && make install
  # cd ..
  # tar zxvf apr-util-1.4.1.tar.gz
  # cd apr-util-1.4.1
  # ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/
  # make && make install
  # cd ..
  # tar zxvf httpd-2.2.22.tar.gz
  # cd httpd-2.2.22
  # ./configure --prefix=/usr/local/apache2 --enable-modules=all --enable-mods-shared=all --enable-dav --enable-dav-fs --enable-so --with-mpm=prefork --enable-ssl --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/
  # make && make install
  # cd ..
  # tar zxvf subversion-1.7.4.tar.gz
  编译subversion的时候会报错,说sqlite文件,可以如下解决
  # cd subversion-1.7.4
  # mkdir sqlite-amalgamation
  # cd ..
  # tar zxvf sqlite-autoconf-3071000.tar.gz
  # cd sqlite-autoconf-3071000
  # cp sqlite3.c ../subversion-1.7.4/sqlite-amalgamation/
  # cd ..
  # cd subversion-1.7.4
  # ./configure --prefix=/usr/local/subversion-1.7.4 --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-ssl --with-zlib --enable-maintainer-mode
  # make && make install
  # vim /etc/profile(添加以下内容)
  PATH=/usr/local/subversion-1.7.4/binPATH
  export LC_ALL=C
  # source /etc/profile
  # svnserve --version      回车显示版本说明安装成功
  svnserve, version 1.7.4 (r1295709)
  compiled Mar 20 2012, 17:33:24
  Copyright (C) 2012 The Apache Software Foundation.
  This software consists of contributions made by many people; see the NOTICE
  file for more information.
  Subversion is open source software, see http://subversion.apache.org/
  The following repository back-end (FS) modules are available:
  * fs_fs : Module for working with a plain file (FSFS) repository.
  Cyrus SASL authentication is available.
  #
  3> 配置
  查看apache是否有生成相应的模块
  # ls /usr/local/apache2/modules/ | grep svn
  mod_authz_svn.so
  mod_dav_svn.so
  #
  如果没有的话拷贝相关库过去即可
  # cp ./subversion/mod_dav_svn/.libs/mod_dav_svn.so /usr/local/apache2/modules/
  cp: overwrite `/usr/local/apache2/modules/mod_dav_svn.so'?
  # cp ./subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/local/apache2/modules/
  cp: overwrite `/usr/local/apache2/modules/mod_authz_svn.so'?
  #
  创建SVN相关目录
  # groupadd svn
  # useradd -s /sbin/nologin svn -g svn
  # mkdir -p /data/svn/data
  # chown -R svn:svn /data/svn/data/
  建立版本库
  # svnadmin create /data/svn/data/svndata
  如果报错(系统安装时安装subversion)
  svnadmin: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file: No such file or directory
  出现这个错误的原因就是svnserver在编译时是加了apache支持的,现在无法找到apr-util库,一般情况下我们将apr-util的lib目录加入到系统的lib路径中就可以了
  vim /etc/ld.so.conf
  /usr/local/apr/lib
  /usr/local/apr-util/lib
  ldconfig -v
  OK
  添加svn的验证文件svn_auth.conf      (网页浏览)
  # /usr/local/apache2/bin/htpasswd -cm /data/svn/svn_auth.conf test
  New password:
  Re-type new password:
  Adding password for user test
  #
  注:只有第一次需要加-c参数,后期再添加用戶千万不能加-c,否则会将原文件覆盖,如下:
  # /usr/local/apache2/bin/htpasswd -m /data/svn/svn_auth.conf think (-m是MD5加密)
  New password:
  Re-type new password:
  Adding password for user think
  #
  配置svn权限authz
  # vim /data/svn/data/svndata/conf/authz
  
  admin = svnadmin
  [/]
  @admin = rw
  
  @svn = rw
  配置svn账户密码passwd
  # vim /data/svn/data/svndata/conf/passwd
  
  svnadmin = 123456
  配置svn配置文件svnserve.conf
  # vim /data/svn/data/svndata/conf/svnserve.conf
  
  anon-access = read(或者none)
  auth-access = write
  password-db = passwd
  authz-db = authz
  realm = My First Repository
  配置svn权限控制文件svn_access.conf(网页)
  # vim /data/svn/svn_access.conf
  
  svn = test,think
  [/]
  * = r
  
  @svn = rw
  配置apache
  # cp /usr/local/apache2/conf/httpd.conf /usr/local/apache2/conf/httpd.conf.bak
  # vim /usr/local/apache2/conf/httpd.conf
  找到Listen 80 改为Listen 10080(注:或者就默认的80端口)
  查找LoadModule,在末尾加入:
  # for svn
  LoadModule dav_svn_module modules/mod_dav_svn.so
  LoadModule authz_svn_module modules/mod_authz_svn.so
  并在配置文件最后加入:
  # for svn
  Include conf/extra/httpd_svn.conf
  Apache配置文件httpd_svn.conf
  # vim /usr/local/apache2/conf/extra/httpd_svn.conf
  
  DAV svn
  SVNParentPath /data/svn/data
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile /data/svn/svn_auth.conf
  Require valid-user
  AuthzSVNAccessFile /data/svn/svn_access.conf
  
  配置详解:
  AuthUserFile /data/svn/svn_auth.conf指定的是基于网页SVN访问帐号文件
  AuthzSVNAccessFile /data/svn/svn_access.conf指定的是基于网页SVN的访问控制文件
  # /usr/local/apache2/bin/apachectl start
  # /usr/local/subversion-1.7.4/bin/svnserve -d -r /data/svn/data/
  # ps -ef | grep svnserve
  # ps -ef | grep httpd
  加入开机启动
  vim /etc/rc.local
  /usr/local/apache2/bin/apachectl start
  /usr/local/subversion-1.7.4/bin/svnserve -d -r /data/svn/data/svndata
  在浏览器中输入:http://IP/svn/svndata
  TortoiseSVN软件:svn://IP/svndata/
  Linux下:svn co svn://IP/svndata,然后修改文件后提交到服务器 svn ci -m "test" readme.txt(ci为commit,-m是记录的log信息,可以为空,test为注释)
  svn版本回滚
  windows版:右键tortoiseSVN-->update to revision 你只要填入你想要回退的版本就可以马上恢复
  linux版:svn up -r 1(即恢复到版本1)

页: [1]
查看完整版本: Apache与Svn安装配置