Linux下搭建SVN+Apache环境【源码安装】

操作系统:redhat6.4(64位)



一.SVN介绍

SVN是一个版本控制工具,Subversion的版本库(repository),就是位于服务器,统一管理和储存数据的地方。

题外话,搭建SVN服务器apache是必须的吗?

Subversion(SVN)作为一个单独的版本管理软件是不具备网页浏览功能的。就是说,你可以用版本管理的客户端比如:TotoriseSVN来和SVN服务器进行连接。这样如果你的电脑没有安装SVN客户端就不能使用SVN服务器提供的服务了。为了实现请客户端的目标,就想通过网页来进行访问浏览。所以就将网页浏览的功能通过Apache服务器来实现。而通过Apache的插件来和SVN进行连接后,用户可以通过浏览器:IE,Firefox,NetScape等,访问SVN服务器。这样很方便了。现在有不少的SVN服务器软件直接提供网页功能,而且支持图形界面。我个人使用的是VisualSVN,感觉不错,很容易管理,图形化的界面。你可以尝试下,至于SVN客户端你可以用TotoriseSVN。NetBeans,Eclipse等开发IDE都内置了SVN插件,很容易用的。

二.SVN数据存储方式

在Subversion中,版本库的数据存储有两种方式:一种是在Berkeley DB数据库中存放数据;另一种是普通文件,采用自定义的格式来存储,称为FSFS。

三.SVN搭建

 

1、关闭iptablesselinux

service iptables stop //关闭防火墙

setenforce 0 //临时关闭selinux

vi /etc/selinux/config   //永久关闭,要重启

将SELINUX=enforcing改为SELINUX=disabled

 

2、创建管理用户

groupadd sinova

mkdir /app

useradd -d /app/sinova -g sinova sinova

echo "sinova" | passwd --stdinsinova

3、修改/etc/hosts

vi /etc/hosts 追加

192.168.8.88 svn

 

 

 

4、安装软件包

所需软件包

httpd-2.2.27.tar.gz

apr-1.5.1.tar.gz

apr-util-1.5.3.tar.gz

sqlite-amalgamation-3.6.17.tar.gz

subversion-1.8.10.tar.gz

4.1安装apache

# tar zxf httpd-2.2.27.tar.gz

# cd httpd-2.2.27

# ./configure --prefix=/app/sinova/apache--enable-dav --enable-so --enable-modules=most

# make

# make install

4.2 安装apr、apr-util

# tar zxf apr-1.5.1.tar.gz

# cd apr-1.5.1

# ./buildconf   #验证系统是否已经安装python、autoconf、libtool,如果没有安装,使用yum或rpm方式安装相应包即可。

验证正确的如下:

# ./configure --prefix=/app/sinova/apr

# make

# make install

# tar zxf apr-util-1.5.3.tar.gz

# cd apr-util-1.5.3

# ./configure --prefix=/app/sinova/apr-util--with-apr=/app/sinova/apr

# make

# make install

4.3 安装sqlite

# tar zxf sqlite-amalgamation-3.6.17.tar.gz

# cd sqlite-3.6.17/

# ./configure --prefix=/app/sinova/sqlite

# make

# make install

4.4 安装svn

# tar zxf subversion-1.8.10.tar.gz

# cd subversion-1.8.10

# ./configure --prefix=/app/sinova/svn--with-apxs=/app/sinova/apache/bin/apxs--with-apr=/app/sinova/apr/bin/apr-1-config--with-apr-util=/app/sinova/apr-util/bin/apu-1-config--with-sqlite=/app/sinova/sqlite/ --with-openssl --with-zlib--enable-maintainer-mod

# make

# make install

configure时遇到错误:

get the sqlite 3.7.15.1amalgamation from:

http://www.sqlite.org/sqlite-amalgamation-3071501.zip

unpack the archive usingunzip and rename the resulting

directory to:

/app/soft/subversion-1.8.10/sqlite-amalgamation

configure: error:Subversion requires SQLite

解决办法:

如果服务器不能联网,下载http://www.sqlite.org/sqlite-amalgamation-3071501.zip,然后上传至服务器。解压

#  unzip sqlite-amalgamation-3071501.zip

# cp  sqlite-amalgamation-3071501/* sqlite-3.6.17

然后重新安装sqlite后再configure。

四.配置SVNapache

1、创建svn项目仓库

chmod 777 /app 【root用户】

# mkdir -p /app/svnroot/ltzb    #创建svn根目录

# /app/sinova/svn/bin/svnadmin create/app/svnroot/ltzb/test

2、创建权限配置文件

# vi /app/svnroot/ltzb/authz.conf  #添加如下内容

[/]

* = r  #表示对所有的用户开放读的权限

[test:/]

lipengfei= rw  #表示用户liyizhen对仓库test有读写权限。

3、创建用户认证文件

# /app/sinova/apache/bin/htpasswd -c/app/svnroot/ltzb/authfile lipengfei

4、加载模块

svn安装完成后,会在/app/sinova/svn/libexec目录下产生mod_authz_svn.so和mod_dav_svn.so这两个模块,将这两个模块文件拷到apache模块目录下。

# cp /app/sinova/svn/libexec/* /app/sinova/apache/modules/   #设置到权限问题使用root用户来操作,然后赋权给相应用户。

5、编辑apache配置文件

vi /app/sinova/apache/conf/httpd.conf文件【可以先备份一下conf文件】,修改如下内容:

User sinova     #修改  【66行】

Group sinova    #修改  【67行】

ServerName www.example.com:80    #去掉本行前面的注释

# LoadModule foo_module modules/mod_foo.so 添加

LoadModule dav_svn_module     modules/mod_dav_svn.so   #添加

LoadModule authz_svn_module   modules/mod_authz_svn.so  #添加

以下内容在最后添加:

<Location /ltzb>

DAV svn

SVNParentPath "/app/svnroot/ltzb"

AuthzSVNAccessFile"/app/svnroot/ltzb/authz.conf"

AuthType Basic

AuthName "Subversion.zoneyump"

AuthUserFile"/app/svnroot/ltzb/authfile"

Require valid-user

</location>

6、启动apache[使用root用户,1024以下的端口全要有root权限启动]

[[email protected] ~]# /app/sinova/apache/bin/apachectlstart

五.使用SVN客户端测试

1、通过浏览器访问svn,在地址栏中输入http://192.168.0.105/ltzb/test

2、通过windows下的TortoiseSVN客户端checkout下载操作

在E盘新建一个目录test(名称自定),进入该目录,鼠标右键选择SVN checkout...

3、通过windows下的TortoiseSVN客户端commit上传操作

鼠标右键 E盘test目录,选择SVN Commit...

4、在windows下的D盘新建lipengfei目录,并checkout测试第3步测试成功否

 

在D盘新建一个目录lipengfei(名称自定),进入该目录,鼠标右键选择SVN checkout...

可以看出第3步在E盘test目录上传的1.txt是成功的,我在D盘新建lipengfei目录可以成功checkout下载出来!

5、在windows下的D盘新建lipengfei目录,增加2.txt,测试E盘test目录的SVN update

在D盘lipengfei目录增加2.txt,鼠标右键该目录选择SVN Commit...

进入E盘,鼠标右键test目录选择SVN Update...

可以看出在D盘lipengfei目录上传的2.txt是成功的,我在E盘test目录可以成功update出来!

###############附上异常情况##############

在Linux环境下安装好SVN服务器后,在Linux环境下可以正常地检出、提交,在Windows PC上把已有的Repository检出后,结果在提交的时候出现以下错误:
svn: Can’t open file ‘/home/svn/db/txn-current-lock’: Permission denied

出现这种问题的原因在于搭建SVN服务器,包括创建Repository目录/home/svn目录下的一切子目录和文件都是在root用户下进行的,所以在root用户下检出、提交都没有问题。可在Windows PC上从客户端访问就有问题了,因为是只有拥有管理器权限的人才能对Repository目录进行完全控制,而在Windows从客户端访问的话,因为是Users用户组的,对Repository没有修改权限,所以不能提交。

解决办法:在服务器上把Users对Repository的完全控制权限加上就可以了,执行如下命令对/app/svnroot/ltzb目录下的所有文件和子目录添加Users的读写权限

chmod –R o+rw /app/svnroot/ltzb/test

现在可以正常地从Windows客户端下面进行检出和提交了。

时间: 2024-10-12 13:32:44

Linux下搭建SVN+Apache环境【源码安装】的相关文章

一步一步搭建Svn+Apache环境(附源码包)

一步一步搭建Svn+Apache环境(附源码包) 看了很多网上的搭建方法,但是因为配置的svn和Apache的版本问题和网上写的教程的不完整等原因,阻碍了很多想要学习的朋友!!今天亲手搭建了一下Svn+Apache环境,并且详细记录了每一步搭建的细节,送给需要的朋友们! 软件版本: redhat6.4(64位) apr-1.5.1.tar.gz apr-util-1.5.3.tar.gz httpd-2.2.27.tar.gz sqlite-amalgamation-3.6.17.tar.gz

Linux系统环境搭建SVN服务器环境详解

Linux系统环境搭建SVN服务器环境详解: 本篇文章主要介绍的内容是在Linux系统下如何搭建SVN服务器的,目的是为了很好的实现代码版本控制管理,具体如下所示介绍: 一.安装需要的软件包 #yum install subversion     ---安装SVN服务工具 #yum install httpdmod_dav_svn mod_perl    ---用于支持WEB方式管理SVN服务 #yum install wgetmake unzip perl*       ---必备的软件包 二

Linux下搭建Java开发环境

Red Hat Package Manager 简称rpm rpm格式的文件就是我们可以使用RPM命令进行管理的软件包格式的文件 JDK的安装 #sh /root/Desktop/jdk-6u23-linux-i586-rpm.bin .bin 可以使用sh命令来解压执行 Linux的用户的登录过程 /etc/profile /etc/profile.d(各个脚本) /etc/bash.bashrc /home/[username]具体用户目录/.bashrc .bash_profile JDK

Linux下搭建PHP开发环境(LAMP)

LAMP:Linux+Apache+Mysql/MariaDB+Perl/PHP/Python 安装方法如下: 注:Ubuntu下可使用sudo su 命名切换到root用户. 开始安装之前,先执行EZHTTP安装前的准备工作. 一.使用screen(可选) 由于编译安装Nginx Apache PHP MySQL等软件会花费比较长的时间,难免会出现由于网络意外中断而导致安装也中断了,所以为了避免此问题,可以使用screen来安装. screen的使用方法如下: 1.安装screen ubunt

linux下搭建SVN服务器

最近搞了一台云服务器,尝试部署一些服务器相关的东西,作为开发用服务器,首先考虑搭建的是SVN服务器.记录一下搭建的过程,方便以后查看. 一.安装svn软件,有些云服务器会有安装svn服务器,有些没有. # yum install -y subversion                        //在线安装svn # svnserve --version                                  //检查svn版本 二.创建svn版本库 1.创建一个项目的版本目录

如何在Mac环境下搭建svn服务器端环境

在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境.在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简单的配置. 我们首先来看下,如何在Mac环境下搭建svn服务器端环境. 创建代码仓库,用来存储客户端所上传的代码 我先在/User/apple目录下新建一个svn目录,以后可以在svn目录下创建多个仓库目录 打开终端,创建一个mycode仓库,输入指令:svnadmin create /U

如何在linux下搭建svn服务

? 安装svn 使用命令 yum install subversion 如果提示上述错误,请以管理员身份运行 使用命令su root 再执行 yum install subversion 2,查看svn版本 svnserve  --version 3,创建svn版本库目录 mkdir -p /projects/svn #mkdir = 新建文件夹 一句话的来讲,就是在根目录下创建一个叫"projects",里面包含创建svn文件夹. 4   新建一个测试版本库 svnadmin cre

centos环境源码安装postgresql9.4

源码安装简要步骤 下载PostgreSQL 源码包  下载根目录地址:http://ftp.postgresql.org/  本人选择的是当前最新版本v9.4.1:http://ftp.postgresql.org/pub/source/v9.4.1/  本人下载的源码压缩包地址如下: $ /usr/local/postgresql 1 解压源码包 $ tar -zxvf postgresql-9.4.1.tar.gz 1 进入解压后的目录 $ cd postgresql-9.4.1 1 开始编

LNMP环境源码安装zabbix2.2.9版本

之前实验过yum安装LAMP,yum安装zabbix,源码安装还是头一次,下面分享一下安装的具体过程和安装过程中遇到的各种错误及解决方法. zabbix官网下载地址:http://www.zabbix.com/download.php 选择Zabbix Sources 下载2.2.9版本: 安装环境:linux centos6.6 32位版本 php5.4.37.nginx1.6.2.mysql5.1.40 1.编译安装zabbix2.2.9 # tar -zxvf zabbix-2.2.9.t