Linux(CentOS)下安装Apache+Subversion(图文教程)

  1. 服务器版本和安装软件
  1. 服务器版本:

RedHatCentOS 5.5 32 bit

  1. 安装软件:
    1. apr-1.3.5.tar.gz

      (APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。)

      下载地址:http://apr.apache.org/download.cgi

    2. apr-util-1.3.7.tar.gz

      下载地址:http://apr.apache.org/download.cgi

    3. httpd-2.2.11.tar.gz

      (apr和apache的版本要对应,如果Apache为2.0.x,对应的APR版本应为0.9.x;Apache为2.2.x,对应的APR版本应为1.2以上版本)

      下载地址:http://httpd.apache.org/download.cgi

    4. neon-0.28.2.tar.gz

      下载地址:http://www.webdav.org/neon/neon-0.28.2.tar.gz

    5. subversion-1.5.0.tar.gz

      下载地址:

      http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=9755&expandFolder=9755&folderID=260

    6. subversion-deps-1.5.0.tar.gz

      (因为手头下载的有1.4.4版本的和1.5.0版本的,就用高版本的来测试了)

      下载地址:

      http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=9755&expandFolder=9755&folderID=260

  1. 安装
  1. 安装apr-1.3.5.tar.gz 和apr-util-1.3.7.tar.gz
    1. 安装apr-1.3.5.tar.gz

      # tar zxvf apr-1.3.5.tar.gz

      # cd apr-1.3.5

      # ./configure

      #make

      #make install

安装如图:

  1. 安装apr-util-1.3.7.tar.gz

    # tar zxvf apr-util-1.3.7.tar.gz

    # cd apr-util-1.3.7

    # . /configure --with-apr=/usr/local/apr

    # make

    # make install

安装如图:

  1. 安装httpd-2.2.11.tar.gz

    # tar zxvf httpd-2.2.11.tar.gz

    # ./configure --prefix=/usr/local/apache2 --enable-dav --enable-modules=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

    # make

    # make install

    启动Apache服务:

    # /usr/local/apache2/bin/apachectl start

    用浏览器查看http://localhost/,得到It works!

    说明apache已经配置成功了。

    测试完成后关闭服务,因为还要安装SVN,否则会报错

    # /usr/local/apache2/bin/apachectl stop

安装如图:

  1. 安装neon-0.28.2.tar.gz

    此步至关重要!

    #tar zxvf neon-0.28.2.tar.gz

    #cd neon-0.28.2

    #./configure –prefix=/usr/local/neon

    此时需修改Makefile文件:

    配置neo-0.28.2/src/Makefile,将CFLAGS = -g -O2 改成 CFLAGS = -fPIC -g -O2

    #make

    #make install

    安装此步neon至关重要,否则会提示如下错误:

    could not read symbols: Bad value
    collect2: ld returned 1 exit status
    make: *** [subversion/libsvn_ra_dav/libsvn_ra_dav-1.la] Error 1

安装如图:

  1. 安装Subversion

    # tar zxvf subversion-1.5.0.tar.gz

    # tar zxvf subversion-deps-1.5.0.tar.gz

    # cd subversion-1.5.0

    # rm -rf apr

    # rm -rf apr-util

    # cd zlib

    #./configure --prefix=/usr/local/zlib

    #make

    #make install

    #cd ..

    #./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config –with-neon=/usr/local/neon --with-ssl --with-zlib=/usr/local/zlib --enable-maintainer-mode

    #make

    #make install

    注:

    1. 由于subversion-deps包里的APR是0.9.x的,因此编译svn时要删除从deps里解压出来的apr, apr-util,改而使用apache 2.2里提供的;
    2. ./configure的时候必须加上–with-neon=/usr/local/neon,否则会提示错误(安装neon的时候强调过);
    3. 查看Apache的配置文件:/usr/local/apache2/conf/httpd.conf

      看到下面两个模块说明安装成功

      LoadModule dav_svn_module modules/mod_dav_svn.so

      LoadModule authz_svn_module modules/mod_authz_svn.so

安装如图:

  1. 配置

1.建立仓库

#mkdir -p /home/svnroot/repository
#cd /usr/local/subversion/bin
#./svnadmin create /home/svnroot/repository/test    ' 这里假设我们的项目是test
#./svn import /boot file:///home/svnroot/repository/test -m "boot"

'这里假设我们以前的项目文件在/boot目录下,现在导入到test库里
#chmod -R apache:apache /home/svnroot/repository

'这里把仓库目录权限给apache用户及apache用户组,主要是因为我们要通过http来访问svn

2.配置http服务器

首先测试一下服务器是否可以正常访问,命令如下:

#cd /usr/local/apache2/bin
#./apachectl start

然后在浏览器里输入http://运行apache的ip地址
出现It Works,表示成功。

更改apache2的配置文件"/usr/local/apache2/conf/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/repository/
AuthzSVNAccessFile /home/svnroot/repository/authz.conf    '配置svn权限的文件
AuthType Basic
AuthName "SubVersion"
AuthUserFile /home/svnroot/repository/valid-user     '用户配置文件
Require valid-user
</Location>

我们使用"#/usr/local/apache2/bin/apachectl restart"重启apache服务器,通过浏览器访问"http://ip/svn/test",如果提示输入用户名、密码的话,配置成功。

接着,我们生成valid-user文件,这个文件其实就是创建可以访问http的用户,使用的是htpasswd命令,方法如下:

#cd /usr/local/apache2/bin
#./htpasswd -c /home/svnroot/repository/valid-user  hrwang
'会提示输入密码,这个密码以后就是访问http时的用户口令。
'如果要继续添加用户,去掉-c 选项,使用:
#./htpasswd /home/svnroot/repository/valid-user yli

现在配置访问svn的用户权限,这里就涉及到上面提到的authz.conf文件了,方法如下:

# vi /home/svnroot/repository/authz.conf       '建立authz.conf文件,添加如下三行
   [test:/]       //这表示,仓库test的根目录下的访问权限 
   hrwang = rw    //test仓库hrwang用户具有读和写权限 
   yli = r        //test仓库yli用户具有读权限

'附加的一些说明

[test2:/]     //test2仓库根目录下的访问权限 
   hrwang = r   //hrwang用户在test2仓库根目录下只有读权限 
   bao =       //bao用户在 test2仓库根目录下无任何权限 
   [/]         //这个表示在所有仓库的根目录下 
   * = r      //这个表示对所有的用户都具有读权限 
   #[groups]  //这个表示群组设置 
   #svn1-developers = hrwang, bao //这个表示某群组里的成员 
   #svn2-developers = hrwang
   #[svn1:/] 
   #@svn1-developers = rw //如果在前面加上@符号,则表示这是个群组权限设置

例如我们把权限配置成这样:

[groups]

valid-user=hrwang,yli

invalid-user=bao

[test:/]

@valid-user=rw

@invalid-user=

这样的话,用户hrwang和yli可以读写,而bao不可以读写。

Ok,配置完成,重启apache服务器,在浏览器里输入http://ip/svn/test, 在出现的输入框里输入用户名hrwang和密码,看看出现了什么,是/boot目录下的文件,:)

四、注意
因为我们对svn的操作都是通过http,而http默认是以用户deamon,用户组deamon来运行的(这个可以从httpd.conf配置文件中的"User" "Group"两个选项看出)。我把这两项更改为apache,让其以apache用户及apache用户组来运行httpd服务。这就是为什么上面我把仓库的目录权限设置为apache:apache的原因。

转载于:https://www.cnblogs.com/taiheyan/archive/2013/06/13/3134410.html

Linux/CentOS下安装Apache/SVN/Subversion图文详解教程相关推荐

  1. 全网最全最详细的Windows下安装Anaconda2 / Anaconda3(图文详解)

    不多说,直接上干货! 说明: Anaconda2-5.0.0-Windows-x86_64.exe安装下来,默认的Python2.7 Anaconda3-4.2.0-Windows-x86_64.ex ...

  2. Linux 安装WebLogic9.2 MP2(图文详解 教程下载)

    1      安装WebLogic9.2 MP2 1.1 准备安装介质 准备安装介质server922_zh_CN_linx32.bin (大概807M) 1.2 创建用户组和用户 创建用户组webl ...

  3. linux系统如何安装lol,Linux系统下安装红色警戒2步骤详解(2)

    然后,我们再执行一下 Code: Select all WINEPREFIX=~/LOL/.wine WINEARCH=win32 $WINEVERPATH/bin/winecfg 确保此时Windo ...

  4. Linux(CentOs)下安装Phantomjs + Casperjs

    Linux(CentOs)下安装Phantomjs + Casperjs 是参照cnMiss's Blog http://ju.outofmemory.cn/entry/70691的博客进行安装的 1 ...

  5. linux查看riak版本,Riak学习(一):Linux Centos 下安装 Riak 服务

    Riak学习(1):Linux Centos 下安装 Riak 服务 1,介绍 8月底参加了CSND的一个技术沙龙. http://huiyi.csdn.net/meeting/info/437/cl ...

  6. Linux系统下安装Apache服务器

    Linux系统下安装Apache服务器 1.第一步命令安装apache: yum install httpd httpd-devel -y 2.第二步执行命令: 开启服务器 systemctl sta ...

  7. Ubuntu14.04下Mongodb数据库可视化工具安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04下Mongodb官网安装部署步骤(图 ...

  8. Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu16.04下Mongodb(离线安 ...

  9. 只需五步学会Maven 3.6.1OR 3.6.3及其他版本的下载安装与配置【图文详解】

    第一步,下载并解压缩包 ​第二步,配置两个环境变量 ​第三步,测试是否安装成功 ​第四步,指定本地仓库的路径 第五步,修改镜像仓库 第一步,下载并解压缩包 Maven官方下载地址:https://ma ...

最新文章

  1. Java--获取request中所有参数的方法
  2. java提高篇之数组(2)
  3. codeforces 1060b Maximum Sum of Digits(思维题)
  4. mysql快速上手3
  5. Java加密与解密的艺术~RSA实现
  6. mysql 最短路经_poj 3613 Cow Relays 经L边的最短路 | 学步园
  7. Android实现异步处理 -- HTTP请求
  8. 逐行读文件_用python比较两个文件的内容是否相同
  9. Flex移动性能检查列表
  10. Jmeter在chrome浏览器中录制脚本
  11. linux bash错误,linux bash错误重定向输出
  12. 计算机键盘无法使用 怎么办,电脑键盘失灵怎么办?4个小技巧解决电脑键盘失灵问题...
  13. ubuntu18.04安装中文输入法ibus
  14. 小猫咪,Naughty baby
  15. umd文件结构深度解剖
  16. OMNeT 例程 Tictoc13 学习笔记
  17. Python求解非齐次线性方程组代码
  18. 业务关键路径最小成本试错《精益创业》
  19. ASP连接Oracle数据库简易DEMO完全案例
  20. 元数据编码和传输标准(METS)

热门文章

  1. GridView详解
  2. 利用延迟关联或者子查询优化超多分页场景
  3. DS二叉树--二叉树之数组存储
  4. PHPstudy搭建本地环境的网页加载速度慢的解决方案
  5. CentOS 7 安装 JDK
  6. TCP 协议的三次握手、四次分手
  7. 「初步」Spring与commons的BeanUtil.copyProperties
  8. nib和xib的区别
  9. EF架构~了解一下,ADO.NET Entity Framework
  10. advanced installer更换程序id_好程序员web前端培训分享kbone高级-事件系统