一步一步搭建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

sqlite-amalgamation-3071501.zip

subversion-1.8.10.tar.gz

TortoiseSVN_1.8.6.25419_x64_XiaZaiBa.zip(windows客户端)

点击 下载所有源码包(免费下载,送给需要的朋友们)

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、关闭iptables、selinux

           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、安装软件包

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。

配置SVN与apache

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文件,修改如下内容:
                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权限启动]

             /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-08-02 06:59:46

一步一步搭建Svn+Apache环境(附源码包)的相关文章

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

操作系统:redhat6.4(64位) 一.SVN介绍 SVN是一个版本控制工具,Subversion的版本库(repository),就是位于服务器,统一管理和储存数据的地方. 题外话,搭建SVN服务器apache是必须的吗? Subversion(SVN)作为一个单独的版本管理软件是不具备网页浏览功能的.就是说,你可以用版本管理的客户端比如:TotoriseSVN来和SVN服务器进行连接.这样如果你的电脑没有安装SVN客户端就不能使用SVN服务器提供的服务了.为了实现请客户端的目标,就想通过

CentOS7.X环境下源码包安装部署RabbitMQ3.7.17

本文介绍在CentOS7.X环境下源码包安装部署RabbitMQ3.7.17,使用docker安装很简单,这里我就不往文章中添加.在CentOS7.X环境下使用源码包安装还是有遇到不少坑的(使用yum安装的方式官方网站有介绍,比较简单),通过这篇我的个人实践操作,能够帮助到有需要的人.搭建环境:操作系统:CentOS7.5内存大小:16GB硬盘:100G注:正文中的参数与部署路径等,请根据实际需求修改.1.软件准备:wxWidgets-3.1.2.tar.bz2otp_src_22.0.tar.

源码手工编译LAMP架构搭建Discuz论坛(内附源码包)

简介 Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注.从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决

详解CentOS7.4搭建Tomcat构建Java Web站点(内附源码包)

Java简介 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论.Java具有简单性.面向对象.分布式.健壮性.安全性.平台独立与可移植性.多线程.动态性等特点.Java可以编写桌面应用程序.Web应用程序.分布式系统和嵌入式系统应用程序等. Tomcat简介 Tomcat是Apache软件基金会的Jakarta项目中的一

手工编译安装Apache网站(源码包编译安装)

实验目标1.学会构建AWStats日志分析系统 2.学会编译安装httpd服务器3.熟悉httpd服务的部署过程及常见配置 实验环境1.安装包apr-util-1.4.1.tarapr-1.4.6.tar httpd-2.4.2.tar软件包百度网盘http链接:https://pan.baidu.com/s/1qrKgLVdeZ6xhnYZEd01KDA 密码:a0ka 2.服务器系统:Linux6.5  IP :192.168.100.10yum仓库已安装 共享文件夹挂载到Linux下 实验

史上最详细Oracle 12c搭建过程(内附源码包)

简介 Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.它是在数据库领域一直处于领先地位的产品.可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好.使用方便.功能强,适用于各类大.中.小.微机环境.它是一种高效率.可靠性好的适应高吞吐量的数据库解决方案. 优点 可用性强可扩展性强数据安全性强稳定性强 操作系统要求 物理内存不少于4Gswap交换分区不少于8G磁盘空间不少于30G挂载分区文件类型为x

三步轻松打造微信聊天机器人(附源码)

最近微信公众平台开发是热门,我也跟风做了一个陪聊的公众号. 其实类似的自动回话程序早就有了,比如前一阵很火的小黄鸡(还是小黄鸭来着?).但尽管是跟风,也要体现一些不同.别人做的都是中文陪聊,咱就来做个英语陪聊. 不管是中文还是英文,做起来都一样,都是利用网络上的接口.或者你也可以试着自己开发一个陪聊程序. 随便在网上搜了一个英语聊天机器人的网址:http://www.pandorabots.com/pandora/talk?botid=f5d922d97e345aa1   咱们就利用这个网址来做

使用Haproxy搭建Web群集(内附源码包)

Haproxy简介:haproxy提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理,支持虚拟主机:haproxy特别适用于那些负载特别大的web站点,这些站点通常又需要会话保持或七层处理.haproxy运行在时下的硬件上,完全可以支持数以万计的并发连接,并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上.haproxy实现了一种事件驱动.单一进程模型,此模型支持非常大的并发连接数.多进程或多线程模型受内存限制.系统

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

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