安装环境
  Red Hat Enterprise Linux Server release 7.3 (Maipo)
  jdk1.7.0_80
  rhel-server-7.3-x86_64-dvd.iso 作为本地镜像yum源

  apr-1.6.5.tar.gz、apr-util-1.6.1.tar.gz、apr-iconv-1.2.2.tar.gz(http://apr.apache.org/download.cgi)
  pcre-8.42.tar.gz(https://sourceforge.net/projects/pcre/files/pcre/)
  zlib-1.2.11.tar.gz(http://linux.softpedia.com/get/Programming/Libraries/zlib-159.shtml)
  expat-2.1.0.tar.gz(https://sourceforge.net/projects/expat/files/expat/)
  或者 expat-devel-2.1.0-8.el7.x86_64.rpm (http://rpm.pbone.net/index.php3?stat=3&search=expat-devel&srodzaj=3)
  openssl-1.1.1.tar.gz(https://www.openssl.org/source/)
  sqlite-amalgamation-3250200.zip、sqlite-autoconf-3250200.tar.gz(https://www.sqlite.org/download.html)
  serf-1.3.9.tar.bz2(http://serf.apache.org/download)
  scons-3.0.0.tar.gz(https://scons.org/pages/download.html)
  httpd-2.4.35.tar.gz (http://httpd.apache.org/download.cgi)
  subversion-1.10.3.tar.gz(http://subversion.apache.org/download.cgi)
  
IP:134.32.123.103 用户:root

由于Subversion需要版本化的控制,因此标准的HTTP协议不能满足需求。要让Apache与Subversion协同工作,就要使用WebDAV(Web-based Distributed Authoring and Versiong)Web分布式创作和版本控制协议。mod_dav_san模块就是作为Subversion与Apache之间的接口,通过它,Apache就可以访问版本库,并且可以让客户端也使用HTTP的扩展协议WebDAV/DeltaV进行访问。

1.安装基础库
1.1 gcc、gcc-c++
参考:Linux 安装gcc、gcc-c++编译器

2.安装依赖库

  1. [root@PCS103 src]# ls
  2. apache-tomcat-7.0..tar.gz apr-util-1.6..tar.gz jdk-7u80-linux-x64.tar.gz sqlite-autoconf-.tar.gz
  3. apr-1.6..tar.gz expat-2.1..tar.gz openssl-1.1..tar.gz subversion-1.10..tar.gz
  4. apr-iconv-1.2..tar.gz httpd-2.4..tar.gz pcre-8.42.tar.gz zlib-1.2..tar.xz
  5. sqlite-amalgamation-.zip

2.1 安装apr-1.6.5.tar.gz、apr-util-1.6.1.tar.gz、apr-iconv-1.2.2.tar.gz

  1. #解压apr
  2. [root@PCS103 src]# tar -zxvf apr-1.6..tar.gz
  3. #配置
  4. [root@PCS103 src]# cd apr-1.6./
  5. [root@PCS103 src]# ./configure --prefix=/usr/local/apr
  6. #编译 安装
  7. [root@PCS103 apr-1.6.]# make && make install
  8.  
  9. #解压apr-iconv
  10. [root@PCS103 src]# tar -zxvf apr-iconv-1.2..tar.gz
  11. #配置
  12. [root@PCS103 src]# cd apr-iconv-1.2./
  13. [root@PCS103 apr-iconv-1.2.]# ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
  14. #编译安装
  15. [root@PCS103 apr-iconv-1.2.]# make && make install
  16.  
  17. #解压apr-util
  18. [root@PCS103 src]# tar -zxvf apr-util-1.6..tar.gz
  19. #配置
  20. [root@PCS103 src]# cd apr-util-1.6./
  21. [root@PCS103 apr-util-1.6.]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv
  22. #编译安装
  23. [root@PCS103 apr-util-1.6.]# make && make install

2.2 pcre、zlib、sqllite安装

  1. #安装pcre
  2. #解压
  3. [root@PCS103 src]# tar -zxvf pcre-8.42.tar.gz
  4. #配置
  5. [root@PCS103 src]# cd pcre-8.42 && ./configure --prefix=/usr/local/pcre
  6. #编译 安装
  7. [root@PCS103 pcre-8.42]# make && make install
  8.  
  9. #安装zlib
  10. [root@PCS103 src]# xz -d zlib-1.2..tar.xz && tar -xvf zlib-1.2..tar
  11. #配置
  12. [root@PCS103 src]# cd zlib-1.2. && ./configure --prefix=/usr/local/zlib
  13. #编译 安装
  14. [root@PCS103 zlib-1.2.]# make && make install
  15.  
  16. #安装sqllite
  17. [root@PCS103 src]# tar -zxvf sqlite-autoconf-.tar.gz
  18. #配置 编译 安装
  19. [root@PCS103 src]# cd sqlite-autoconf- && ./configure --prefix=/usr/local/sqlite --enable-libtool-lock && make && make install
  20. #解压 改名sqlite-amalgamation
  21. [root@PCS103 src]# unzip sqlite-amalgamation-.zip && mv sqlite-amalgamation- sqlite-amalgamation

2.3 安装openssl、scons、serf

  1. #安装openssl(使用https访问svn,需要安装openssl,否则仅支持http访问)
  2. [root@PCS103 src]# tar -zxvf openssl-1.1..tar.gz && make clean && make distclean
  3. #配置 -fPIC no-gost enable-shared要加 编译成共享动态库 否则后面编译http会报错
  4. [root@PCS103 src]# cd openssl-1.1. && ./config --prefix=/usr/local/openssl -fPIC enable-shared
  5. #编译 安装
  6. [root@PCS103 openssl-1.1.]# make depend && make && make install
  7. #创建软连接
  8. [root@PCS103 openssl-1.1.]# ln -s /usr/local/openssl/lib/*.so.* /usr/lib64
  9. [root@PCS103 openssl-1.1.1]# ln -s /usr/local/openssl/lib/*.so.* /usr/lib
  1. #scons是一种软件构建工具,这里用来安装serf的。
  2. [root@PCS103 src]# tar -zxvf scons-3.0..tar.gz
  3. #编译 安装
  4. [root@PCS103 src]# cd scons-3.0. && python setup.py install
  5.  
  6. #serf svn1.8以上需要安装serf,.8以下安装neon 使svn可以访问https协议
  7. serf库是基于APR库构建的基于C的高性能HTTP客户端库,SerfSubversion的默认客户端库,所以必需安装。
  8. #解压
  9. [root@PCS103 src]# tar -jxvf serf-1.3..tar.bz2
  10. [root@PCS103 src]# cd serf-1.3.
  11. #配置
  12. [root@PCS103 serf-1.3.]# scons PREFIX=/usr/local/serlf APR=/usr/local/apr/bin/apr--config APU=/usr/local/apr-util/bin/apu--config OPENSSL=/usr/local/openssl
  13. 报错:
  14. scons: Reading SConscript files ...
  15. File "/usr/local/src/serf-1.3.9/SConstruct", line
  16. print 'Warning: Used unknown variables:', ', '.join(unknown.keys())
  17.  
  18. ^
  19. SyntaxError: invalid syntax
  20. 解决:把serf-1.3./SConstruct内的185,186行注释掉,然后在安装
  21. #if unknown:
  22. # print 'Warning: Used unknown variables:', ', '.join(unknown.keys())
  23. #安装
  24. [root@PCS103 serf-1.3.]# scons install
  25. #安装完成后,将serf的lib库追加到动态链接库
  26. echo "/usr/local/serf/lib" >> /etc/ld.so.conf
  27. #验证
  28. [root@PCS103 serf-1.3.]# ldconfig -v

2.4安装apache

  1. #解压
  2. [root@PCS103 src]# tar -zxvf httpd-2.4..tar.gz
  3. #配置
  4. [root@PCS103 src]# cd httpd-2.4. && make clean && make distclean
  5. [root@PCS103 httpd-2.4.]# ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr--config --with-apr-util=/usr/local/apr-util/bin/apu--config --enable-so --enable-dav --enable-maintainer-mode --enable-rewrite --enable-ssl --with-ssl=/usr/local/openssl --with-pcre=/usr/local/pcre
  6. #编译 安装
  7. [root@PCS103 src]# make && make install
  8. #配置
  9. [root@PCS103 conf]# vim /usr/local/apache/conf/httpd.conf
  10. 添加一行配置:ServerName localhost:
  11.  
  12. #apache 启停
  13. 版本验证:
  14. [root@PCS103 bin] /usr/local/apache/bin/apachectl -v
  15. Server version: Apache/2.4. (Unix)
  16. Server built: Oct ::
  1. apache启停
  1. #启动
  2. /usr/local/apache/bin/apachectl start
  3. #停止
  4. /usr/local/apache/bin/apachectl stop
  5. #重启
  6. /usr/local/apache/bin/apachectl restart
  7. #要在重启 Apache 服务器时不中断当前的连接,则应运行
  8. /usr/local/apache/bin/apachectl graceful
  9.  
  10. #将apache作为服务启停
  11. 第一步
  12. [root@PCS103 init.d]# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
  13. 第二步
  14. vi /etc/init.d/httpd
  15. 第二行开始加入:
  16. # Startup script for the Apache Web Server
  17. # chkconfig:
  18. # description: Apache is a World Wide Web server.
  19. 备注;第一行的3个参数意义分别为:在哪些运行级别启动httpd(,);启动序号(S61);关闭序号(K61)。
  20. 注意:第二行的描述必须要写!
  21. 第三步
  22. chmod /etc/init.d/httpd
  23. chkconfig --add httpd
  24. chkconfig httpd on
  25.  
  26. 然后就可以使用服务启停apache
  27. service httpd start 启动
  28. service httpd restart 重新启动
  29. service httpd stop 停止服务

启动报错:httpd: Syntax error on line 134 of /usr/local/apache/conf/httpd.conf: Cannot load modules/mod_ssl.so into server: libssl.so.1.1: cannot open shared object file: No such file or directory
原因:httpd安装中指定了--enable-ssl和--with-ssl=/usr/local/openssl/还是无法生效,httpd只在/usr/lib64查找libssl.so.1.0.0,因此安装完openssl之后需要做个软连接处理
解决方法:
ln -s /usr/local/openssl/lib/*.so.* /usr/lib64
ln -s /usr/local/openssl/lib/*.so.* /usr/lib

2.5安装Subversion

  1. #解压
  2. [root@PCS103 src]# tar -zxvf subversion-1.10..tar.gz
  3. #拷贝sqlite-amalgamation
  4. [root@PCS103 src]# mv sqlite-amalgamation ./subversion-1.10./
  5. #配置
  6. [root@PCS103 src]# cd subversion-1.10.
  7. [root@PCS103 subversion-1.10.]# LDFLAGS="-Wl,-rpath,/usr/local/serlf/lib" ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-zlib=/usr/local/zlib --enable-maintainer-mode --with-serf=/usr/local/serlf --with-apache-libexecdir --with-sqlite=/usr/local/sqlite --with-lz4=internal --with-utf8proc=internal
  8. #编译 安装
  9. [root@PCS103 subversion-1.10.]# make && make install
  10. #添加环境变量
  11. [root@PCS103 local]# vim /etc/profile
  12. export JAVA_HOME=/usr/local/jdk1..0_80
  13. export SVN_HOME=/usr/local/svn
  14. export PATH=$JAVA_HOME/bin:$SVN_HOME/bin:$PATH
  15. [root@PCS103 subversion-1.10.]# source /etc/profile
  16. #查看版本
  17. [root@PCS103 subversion-1.10.]# svn --version

报错:
svn: error while loading shared libraries: libserf-1.so.1: cannot open shared object file: No such file or directory
原因:找不到/usr/local/serlf/lib库 不是系统默认依赖库位置 所以编译的时候在前面加上LDFLAGS="-Wl,-rpath,/usr/local/serlf/lib"来指定

2.6配置http与SVN
2.6.1 配置SVN

  1. ()创建SVN根目录
  2. [root@PCS103 /]# mkdir /data
  3. #配置daemon用户的访问权限 apache默认用户是daemon
  4. [root@PCS103 /]# chown -R daemon /data
  5. [root@PCS103 /]# chown -R /data
  6. #创建SVN权限配置文件
  7. [root@PCS103 data]# touch /data/authz.conf
  8. #创建svn用户名密码配置文件 注意第一次加参数 -c 以后不需要加 不能手工创建passwd.conf文件
  9. [root@PCS103 data]# /usr/local/apache/bin/htpasswd -c /data/passwd.conf admin
  10. New password:
  11. Re-type new password:
  12. Adding password for user admin
  13.  
  14. #配置权限和密码
  15. [root@PCS103 data]# vim authz.conf
  16. [groups]
  17. admin=admin
  18.  
  19. [/]
  20. @admin = rw
  21.  
  22. [test:/test1]
  23. admin = rw
  24. test = rw

2.6.2 配置apache

  1. ()apache开启mod_dav_svn模块
  2. apache安装成功后,拷贝mod_dav_svn.somod_authz_svn.so
  3. [root@PCS103 local]# cp /usr/local/src/subversion-1.10./subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/local/apache/modules
  4. [root@PCS103 local]# cp /usr/local/src/subversion-1.10./subversion/mod_dav_svn/.libs/mod_dav_svn.so /usr/local/apache/modules
  5. [root@PCS103 conf]# vim /usr/local/apache/conf/httpd.conf
  6. 添加如下两行
  7. LoadModule dav_svn_module modules/mod_dav_svn.so
  8. LoadModule authz_svn_module modules/mod_authz_svn.so
  9.  
  10. ()在httpd.conf末尾添加
  11. #设置对应的location,路径为/,
  12. #设置SVNParentPath设置为svn的仓库总根目录,此处为/data,配合location /,可以直接浏览器中输入http:/IP/直接
  13. 访问至/data下的svn仓库目录
  14. #AuthzSVNAccessFile设置SVN权限配置文件路径
  15. #AuthUserFile设置svn用户名密码配置文件路径
  16. <Location />
  17. DAV svn
  18. SVNParentPath /data
  19. SVNListParentPath on
  20. SVNAutoversioning on
  21. SVNReposName "svn"
  22. AuthzSVNAccessFile /data/authz.conf
  23. AuthType Basic
  24. AuthName "svn repo auth"
  25. AuthUserFile /data/passwd.conf
  26. Require valid-user
  27. </Location>

做完以上配置之后 启动apache和svn,可以在浏览器直接使用http://134.32.123.103/ 访问

  1. #启动svn
  2. [root@PCS103 data]# svnserve -d -r /data
  3. #启动apache
  4. [root@PCS103 data]# /usr/local/apache/bin/apachectl start

----------------------------------------------------------------------------
(3)配置私钥证书

  1. openssl genrsa > /data/server.key
  2. openssl req -new -key /data/server.key > /data/server.csr
  3. Country Name=CN
  4. State or Province Name=shandong
  5. Locality Name=jinan
  6. Organization Name=unicom
  7. Common Name=svnserver
  8. Email Address=<可省略>
  9. A challenge password=<空,填写后启动httpd需输入密码>
  10. An optionnal company name=可选公司名,不填
  11. openssl req -x509 -days -key /data/server.key -in /data/server.csr > /data/server.crt
  12. [root@PCS103 data]# cp /data/server.key /usr/local/apache/conf
  13. [root@PCS103 data]# cp /data/server.crt /usr/local/apache/conf

(4)设置http的支持ssl

  1. [root@PCS103 data]# vim /usr/local/apache/conf/httpd.conf
  2. #去掉Include conf/extra/httpd-ssl.conf前的#号
  3. #确定httpd-ssl.conf配置中的证书与私钥指定正确
  4. [root@PCS103 data]# vim /usr/local/apache/conf/extra/httpd-ssl.conf
  5. #存在以下两行:
  6. SSLCertificateFile "/usr/local/apache/conf/server.crt"
  7. SSLCertificateKeyFile "/usr/local/apache/conf/server.key"
  8. #修改svn对应的location
  9. vim /usr/local/apache/conf/httpd.conf
  10. #添加"SSLRequireSSL"至DAV svn的下一行
  11.  
  12. <Location />
  13. DAV svn
  14. SSLRequireSSL
  15. SVNParentPath /data
  16. SVNListParentPath on
  17. SVNAutoversioning on
  18. SVNReposName "svn"
  19. AuthzSVNAccessFile /data/authz.conf
  20. AuthType Basic
  21. AuthName "svn repo auth"
  22. AuthUserFile /data/passwd.conf
  23. Require valid-user
  24. </Location>

#重启http服务器和svn

  1. #重启apache
  2. [root@PCS103 data]# /usr/local/apache/bin/apachectl restart
  3. #重启SVN
  4. [root@PCS103 data]# pkill svnserve && svnserve -d -r /data

访问:https://134.32.123.103/

资源地址:https://download.csdn.net/download/cac2020/10721966

参考:
https://www.cnblogs.com/qingfengfumian/p/7986907.html
https://blog.csdn.net/Jonnter/article/details/60877766
https://www.linuxidc.com/Linux/2015-02/113177.htm
https://blog.csdn.net/birdwood/article/details/51043021
https://blog.csdn.net/zouqingfang/article/details/51484357

持续集成之二:搭建SVN服务器(整合Apache+Subversion)的更多相关文章

  1. 持续集成之二:搭建SVN服务器(subversion)

    安装环境 Red Hat Enterprise Linux Server release 7.3 (Maipo) jdk1.7.0_80 subversion-1.10.3.tar.gz apr-1. ...

  2. 【iOS】Jenkins Gitlab持续集成打包平台搭建

    Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...

  3. SVN学习---使用 Visual SVN 搭建SVN服务器

    1.1. 使用 Visual SVN 搭建SVN服务器 搭建纯粹SVN服务器 --- svn:// 访问资源 将SVN 和 Apache服务器整合 ,搭建web SVN服务器 ----  https: ...

  4. Linux下搭建SVN服务器及自动更新项目文件到web目录(www)的方法

    首先搭建SVN服务器 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion   ...

  5. 如何在win上搭建SVN服务器

    本博文转自:http://www.cnblogs.com/armyfai/p/3985660.html SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本, ...

  6. Mac 搭建 SVN 服务器环境

    Mac 搭建 SVN 服务器环境 一.创建svn repository svnadmin create /path/svn/pro //仓库位置,svn是svn的目录,pro是一个版本库的目录 PS: ...

  7. 快速学会搭建SVN服务器

    原文:快速学会搭建SVN服务器 SVN是一个版本控制工具,常用于我们软件开发项目中,用来管理我们团队共同使用的代码,文档等历史版本的管理,保持代码的更新,避免混乱. 需要工具: svn安装程序:免费下 ...

  8. Windows和Linux环境下搭建SVN服务器

    --------------------------Windows下搭建SVN服务器----------------------------- 一.安装SVN服务端 软件包Setup-Subversi ...

  9. window环境下搭建SVN服务器

    <span style="font-family: Arial; rgb(255, 255, 255);">第一步:准备工具:</span> 1.SVN服务 ...

  10. [源码管理] Windows下搭建SVN服务器

    前文所述SVN客户端使用的时候,用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行有效 ...

随机推荐

  1. VC消息传递(对话框间传递参数)

    以下用一个自创的对话框类(MyMessageDlg)向视图类(MessageTestView)发送自定义消息为例,说明这两种不同方法的自定义消息的 消息传递的方法一:使用ON_MESSAGE使用ON_ ...

  2. 【BZOJ4036】[HAOI2015]按位或 FWT

    [BZOJ4036][HAOI2015]按位或 Description 刚开始你有一个数字0,每一秒钟你会随机选择一个[0,2^n-1]的数字,与你手上的数字进行或(c++,c的|,pascal的or ...

  3. css的border的solid

    http://www.w3school.com.cn/cssref/pr_border-style.asphttp://www.w3school.com.cn/tiy/t.asp?f=csse_bor ...

  4. easyui_2----messager

    <script> $.messager.alert("这是头","这是内容"); </script> 必须放在 $(function() ...

  5. POJ-2356 Find a multiple(DFS,抽屉原理)

    Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7133 Accepted: 3122 Speci ...

  6. JNUOJ 1187 - 哨兵

    Time Limit: 10000ms Memory Limit: 262154KB 64-bit integer IO format: %lld      Java class name: Main ...

  7. Codeforces Round #440 (Div. 2, based on Technocup 2018 Elimination Round 2)

    A. Search for Pretty Integers 题目链接:http://codeforces.com/contest/872/problem/A 题目意思:题目很简单,找到一个数,组成这个 ...

  8. 2018/03/28 每日一个Linux命令 之 mkdir/rmdir

    用于建立空文件夹和删除文件夹 -- 两命令重要参数 -p 递归建立/删除 -- 例如 mkdir -p demo1/demo2/demo3 建立demo3空文件夹,如果demo1/demo2没建立也建 ...

  9. Highways---poj1751最小生成树

    http://poj.org/problem?id=1751 题意:有n个点,已知各点坐标,距离为权值,求最小生成树的边 但是这个最小生成树的m条边是已经确定的了,所以可以让已知边的权值为0: 在Pr ...

  10. 蔡勒(Zeller)公式--黑色星期五

    求某年某月某日是周几; 蔡勒(Zeller)公式: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 ;y是年的后两位:c是世纪数-1(年的前两位):m是月份,大于等于3,小于等 ...