linux下subversion server安装手册

安装基于的Linux版本为:Red Hat Enterprise Linux Server release 6.3。

一 准备需要的安装包。

(1)下载 apache: httpd-2.2.23.tar.gz

(2) 下载Subverson  。下载地址

http://subversion.tigris.org/downloads/subversion-1.6.12.tar.gz

http://subversion.tigris.org/downloads/subversion-deps-1.6.12.tar.gz

二 安装

安装顺序有要求, 先安装Apache ,再安装Subversion 。

1 安装apache

把安装压缩包[ httpd-2.2.23.tar.gz ]上传linux环境/usr/local/下面。

[root@localhost /]# cd /usr/local/

[root@localhost /]# tar zxfhttpd-2.2.23.tar.gz

[root@localhost /]# cd /usr/local/httpd-2.2.23

[root@localhost /]# configure -prefix=/usr/local/apache -enable-dav -enable-so && make && make install

2 启动apache, 安装无错误后  进入

#cd /usr/local/apache/bin

# ./apachectl start

若提示启动失败,端口口被占用: #vi /usr/local/apche/conf/http.conf

找到

#Listen 12.34.56.78:80
Listen 80

将80修改为自己的端口号。---若启动成功,不用修改端口号。

重启apache ,客户端输入地址 http://172.18.49.180/

页面展示

It works! 字样 ,表示安装成功。

3 安装Svn

把安装压缩包[subversion-1.6.12.tar.gz]和[subversion-deps-1.6.12.tar.gz]拷到linux环境/usr/local/下面。

[root@localhost /]# cd /usr/local/

[root@localhost /]# tar zxf subversion-1.6.12.tar.gz

[root@localhost /]# tar zxf subversion-deps-1.6.12.tar.gz

(安装包解压缩,解压缩后生成安装文件夹[subversion-1.6.12],两个文件都会解压缩到同一个文件夹下)

[root@localhost local]# cd /usr/local/subversion-1.6.12

[root@localhost subversion-1.6.12]# rm -rf apr

[root@localhost subversion-1.6.12]# rm -rf apr-util(删除subversion自带的apr和apr-util文件夹,用apache的就可以)

[root@localhost subversion-1.6.12]# cd /usr/local/subversion-1.6.12

[root@localhostsubversion-1.6.12]#

./configure -prefix=/usr/local/subversion -with-apxs=/usr/local/apache/bin/apxs -with-apr=/usr/local/apache/bin/apr-1-config -with-apr-util=/usr/local/apache/bin/apu-1-config

[root@localhostsubversion-1.6.12]#

make

[root@localhostsubversion-1.6.12]#

make install

[root@localhost subversion-1.6.12]# svnserve --version
安装过程中报错:“cannot find –lexpat”,需要安装expat-2.0.1.tar.gz。

但是 执行#svnserve --version 显示的版本不是1.6的,而是1.4(老版本)说明之前安装过旧版本的svn。

解决办法#vi

/etc/profile

在最后填加

#set svnpath

export PATH=/usr/local/subversion1.6/bin:$PATH

export PATH

保存退出。

执行 #scource /ect/profile

重新执行 #svnserve --version --ok

4 检查svn是否与apache兼容

# 分别查找文件/usr/local/apache/conf/httpd.conf和/etc/httpd/conf/httpd.conf中是否增加了以下两行:

LoadModule dav_svn_module     modules/mod_dav_svn.so

LoadModule authz_svn_module   modules/mod_authz_svn.so

并且查看/usr/local/apache/modules 下是否有mod_dav_svn.so,

和mod_authz_svn.so 文件,有的话将这两个文件拷贝到/etc/httpd/modules下面。

如果http.conf 中没有的话则增加这两行代码。

如果没有mod_dav_svn.so和mod_authz_svn.so,说明svn安装的错误。按照步骤重装。

配置 svn+apache

1 创建svn库

(1) 创建 svn专用户   # useradd pocsvn

(2) 创建SVN 版本库目录  #mkdir /home/pocsvn/project

(3) 创建SVN仓库 # svnadmin create /home/pocsvn/project/poc

(4) 将目录 project 目录拥有者修改为 pocsvn 用户  :

#chown -R pocsvn:pocsvn /home/pocsvn/project

并 增加权限 chmod 755 /home/pocsvn/project

2 配置svn 依赖apache

(1) 使用root用户  # vi /usr/local/apache/conf/httpd.conf 和/etc/httpd/conf/httpd.conf将

LoadModule dav_svn_module     modules/mod_dav_svn.so

LoadModule authz_svn_module   modules/mod_authz_svn.so

需要load以上module

(2 )找到

User apache

Group apache

修改为

User pocsvn

Group pocsvn

(3) 在文件末尾添加

<Location /svn>

DAV svn

SVNParentPath /home/pocsvn/project     -----svn库的根目录

AuthType Basic

AuthName "welcome to cjybt"      -----浏览器登陆时的提示信息。随便写

AuthUserFile /home/pocsvn/project/passwd

---  用户的密码信息

AuthzSVNAccessFile /home/pocsvn/project/poc/conf/authz

--- 指向svn库的conf目录下authz

Require valid-user

-- ("Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,则只能第一个用户可以访问新建库)

</Location>

(4) 生成passwd文件

#htpasswd -b /home/pocsvn/project/passwd   hello   hello123

---在/home/pocsvn/project/下生成passwd文件,用户名为hello,密码为hello123

#htpasswd -b /home/pocsvn/project/passwd   hello2   hello123

---在/home/pocsvn/project/passwd文件中添加用户名为hello,密码为hello123

(5) 编辑用户权限文件 authz

#vi /home/pocsvn/project/poc/conf/authz

[groups]       --表示群组设置

admin = hello    --表示admin群组里的成员有hello,如果要配置多个,用逗号分隔

develop = hello2  --表示develop群组里的成员有hello2,如果要配置多个,用逗号分隔

[poc:/]        --表示仓库poc的根目录下的访问权限

hello = rw       --poc仓库hello用户具有读和写权限

hello2 = r        --poc仓库hello2用户具有只读权限

@admin = rw    --表示群admin的成员都具有读写权限

@develop = r   --表示群poc的成员都具有只读权限

[/]            --表示在所有仓库的根目录下

* = r          --表示对所有的用户都具有读权限

--- 在编辑authz时,所有行都必须要顶头写,不能有缩进,否则报错。

(5)修改权限

chmod 755 /home/pocsvn/project/passwd

chown -R pocsvn:pocsvn   /home/pocsvn/project/passwd

(6)启动svn

切换到pocsvn用户  #svnserve -d --listen-port 8888 -r /home/pocsvn/project

-d 表示以 daemon 方式(后台运行)运行

-r 指定根目录是/home/pocsvn/project

--listen-port 8888  --表示在8888端口上进行监听

检查svn其否启动

ps -ef|grep svnserve 或 ps -ef|grep 8888

(7)重启apache,切换回root用户。启动apache

(8) 客户端 访问 :http://ip:81/svn/poc 出现登陆窗口则为配置成功。

--如果登陆后提示403或无法访问。为权限配置不对,按如下命令重新配置下权限即可。

chcon -R -h -t httpd_sys_content_t <SVN Root 目录>,本文的测试为:

chcon –R –h –t  httpd_sys_content_t  /home/pocsvn/project

至此,svn和apache结合的svn配置就搭建好了。

如果需要通过客户端更改账户密码,需要在/var/www/cgi-bin目录下添加两个文件:

svnpass.cgi和svnpass.ini。然后通过访问如下的web页面就可以更改密码了:http://172.18.49.180/cgi-bin/svnpass.cgi

svnpass.ini的内容:

我在安装的过程中出现了很多问题。总结如下

1 启动apache 报错httpd: Syntax error on line 111 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_hash_clear

解决办法:重新安装apache,注意增加参数

命令 # ./configure --prefix=/usr/local/apache2/ --enable-dav --enable-so

--enable-dav --enable-so参数是必须要加的,你还可以根据您的需要添加其他的参数。

--enable-dav 启用davweb支持,是subversion+apache组合必选,缺少的话,在运行apache会出现undefined symbol: dav_register_provider的错误

--apr 和 apr-util一般会在httpd的安装包内,subversion安装会使用到apr和par-util,如果当前系统没有,最好安装一下

2 重转apache后。必须重装subversion,重装svn是执行make ,make install 是提示有错误信息。

可以先执行# make clean ,然后在 #make ,#make install

最好一次装好,重装的话问题不少。

3 apr 和apr-util有问题。

网上资料在svn和apache集成的时候是有分开装apr,和apr-util的,这两个在apache中就有了。删除subvision自带的。

linux下subversion server安装手册的更多相关文章

  1. Linux下命令行安装weblogic10.3.6

    Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...

  2. Windows下的Memcache安装 linux下的Memcache安装

    linux下的Memcache安装: 1. 下载 memcache的linux版本,注意 memcached 用 libevent 来作事件驱动,所以要先安装有 libevent. 官方网址:http ...

  3. 细说Linux下软件包的安装与管理

    一 源码安装方式      由于linux操作系统开放源代码,因而在其上安装的软件大部分也都是开源软件,例如apache.tomcat.php等软件.开源软件基本都提供源码下载,源码安装的方式:源码安 ...

  4. Linux下Kafka单机安装配置方法(图文)

    Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了 ...

  5. linux下使用yum安装mysql、tomcat、httpd

    一.linux下使用yum安装mysql   1.安装 查看有没有安装过:           yum list installed mysql*           rpm -qa | grep m ...

  6. Memcahce(MC)系列(两)Linux下一个Memcache安装

    Linux下一个memcache安装 memcache是高性能.分布式的内存对象缓存系统,用于在动态应用中降低数据库负载.提升訪问速度.眼下用memcache解决互联网上的大用户读取是很流行的一种使用 ...

  7. Linux下tomcat的安装详解

    Linux下tomcat的安装详解 来源: ChinaUnix博客 日期: 2007.01.21 22:59 (共有0条评论) 我要评论 一,安装前的准备:1,Linux版本:我的是企业版.(至于红帽 ...

  8. linux下svn的安装与配置

    ---恢复内容开始--- linux下svn的安装与配置 Linux发行版本:CentOS6.5 1.安装subversion sudo yum -y install subversion 2.创建s ...

  9. Linux下Jdk的安装和jdk环境变量的设置

    我们在Linux下安装系统软件的时候,经常遇到一些系统环境变量配置的问题.什么是环境变量?如何定制环境变量?我将在下面做一些介绍.一.什么是环境变量?Linux是一个多用户的操作系统.多用户意味着每个 ...

随机推荐

  1. 应用程序框架实战三十三:表现层及ASP.NET MVC介绍(二)

    最近的更新速度越来越慢,主要是项目上比较忙,封装EasyUi也要花很多时间.不过大家请放心,本系列不会半途夭折,并且代码干货也会持续更新.本文继续介绍表现层和Asp.net Mvc,我将在本篇讨论一些 ...

  2. Selenium IDE和Selenium RC的安装

    1       安装FireBug和FirePath 1.在火狐浏览器中,点击”添加附件”按钮,弹出”附加组件管理器”页面 2.在弹出页面中,输入“fireBug”,点击“搜索”按钮,弹出fireBu ...

  3. CVE-2014-6271 Bash漏洞利用工具

    CVE-2014-6271 Bash漏洞利用工具 Exploit 1 (CVE-2014-6271) env x='() { :;}; echo vulnerable' bash -c "e ...

  4. MVC5 Identity 用用户名登录而不用电子邮件

    1.修改AccountViewModels ·修改RegisterViewModel public class RegisterViewModel { [Required] [Display(Name ...

  5. Spring多资源文件properties的配置

    Spring简化了加载资源文件的配置,可以通过<context:property-placeholder去加载,这个元素的写法如下: <context:property-placehold ...

  6. iOS中的设计模式

    一. MVC MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离 ...

  7. JS数组方法总结

    数组的常用方法总结   不改变原数组 1.Array.length;                       //获取数组长度 2.Array.join();                   ...

  8. poj 2533 Longest Ordered Subsequence(线性dp)

    题目链接:http://poj.org/problem?id=2533 思路分析:该问题为经典的最长递增子序列问题,使用动态规划就可以解决: 1)状态定义:假设序列为A[0, 1, .., n],则定 ...

  9. Python中的继承

    继承: 面向对象程序语言的一个重要特点是继承.继承提供了在已存在类的基础上创建新类的方法.继承的子类 拥有被继承的父类的所有方法,在此基础上,子类还可以添加自己的专有方法.继承是类的强有力的特点.一些 ...

  10. Python中国的学习方式处理问题

    a = '你们' 至 str 物 a = u'你们' 至 unicode 物 1. >>> print 'u'  + '你们' >>> u欢 输出乱码 2. > ...