热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Subversion+Apache的源码服务器搭建

++版本库搭建为工作需要,要架设一个Subversion+Apache的源码服务器.以便协同工作,以下是整理的安装过程和一些注意事项。++++安装APACHE软件:apache_2.2.6-win32-x86-openssl-0.9.8e.exe(带ssl版本)##说明,如果下载安装不带openssl版本,以后配置mod_
++ 版本库搭建
为工作需要,要架设一个Subversion+Apache的源码服务器.以便协同工作,以下是整理的安装过程和一些注意事项。

++++安装APACHE软件:apache_2.2.6-win32-x86-openssl-0.9.8e.exe(带ssl版本)

##说明,如果下载安装不带openssl版本,以后配置mod_ssl.so模块时可能会有点麻烦,出些小问题。
##安装时不需要改动或添加很多信息,一般来说直接点Next即可。domain以及host可设置为localhost,Email可任意填写.但很重要的一点:安装apache时,80端口不能被占用,否则http服务无法启动。
###装好apache后,http服务自动运行,可在浏览器地址栏中输入http://localhost 查看是否安装成功。


++++安装Subversion:Binary Code:svn-1.4.6-setup.exe或编译好的解压缩文件svn-win32-1.4.6.zip(推荐)

##说明:注意subversion和Apache的版本搭配
##如果采用编译好的zip文件,直接解压缩即可。采用exe文件根据指导安装,如果Subversion检测到已安装的Apache,会自动完成配置工作。如果之前未安装或本版不配合导致未检测到,需要容一些额外的设置步骤。
##以%SVN_DIR%代表SVN安装目录,%APACHE_DIR%代表APACHE安装目录
    步骤1 从%SVN_DIR%/bin 中将mod_authz_svn.so mod_dav_svn.so复制到%APACHE_DIR%/modules中
    步骤2 从%SVN_DIR%/bin 中将intl3_svn.dll libdb*.dll复制到%APACHE_DIR%/bin中
    步骤3 打开(记事本即可)%APACHE_DIR%/conf/httpd.conf文件,去掉如下几行的注释(删除 \'#\'标记):
    #LoadModule dav_fs_module modules/mod_dav_fs.so
    #LoadModule dav_module modules/mod_dav.so
    将下面两行添加到LoadModule部分的最后。
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
   
    QT:采用exe安装后提示dav_svn_module签名版本不对?

++++配置服务

##编辑%APACHE_DIR%/conf/httpd.conf文件,

添加下面代码,位置不限
anchor: httpd
cation /svn/>                       
DAV svn
SVNListParentPath on
#SVNPathAuthz off
SVNParentPath \"D:/SVN\"

#SVNIndexXSLT \"/svnindex.xsl\"
SSLRequireSSL
AuthType Basic
AuthName \"Subversion repositories\"
AuthUserFile \"D:/svndata/passwd\"

AuthzSVNAccessFile \"D:/svndata/svnaccessfile\"
#
#Require valid-user
#

#Satisfy Any
Require valid-user


##备注: 可列出C:/svndata下的所有版本库,若为则不能访问,此时http://127.0.0.1/svn (https://127.0.0.1/svn)和http://127.0.0.1/svn(https://127.0.0.1/svn)无效,只能单独访问其中一个版本库,如https://127.0.0.1/svn/proj1 (假设proj1是个已存在的单独版本库),推荐使用/svn/这种方式。

说明
设置    解释   
         Subversion版本库的URL是http://Server/svn/    (Server:IP/DNS可解析的名字/本机:localhost)
DAV svn                    通知Apache:哪个模块响应上述URL的请求,svn代表是Subversion模块。   
SVNListParentPath on    对于Subversion1.3或者更高版本,显示所有SVNParentPath下的版本库。   
SVNParentPath D:/SVN    通知Subversion需要查看的版本库位于D:/SVN之下   
SVNIndexXSLT \"/svnindex.xsl\"    使用该选项可以在用浏览器浏览时更好看。   
AuthType Basic            激活基本认证,就是用户名/密码   
AuthName \"Subversion repositories\"    用来说明何时弹出要求用户输入认证信息的认证对话框
SSLRequireSSL           必须采用安全连接,https:// 方式访问   
AuthUserFile passwd        指定使用的认证密码文件   
AuthzSVNAccessFile        指定Subversion版本库的访问控制文件的路径   
Require valid-user        指定只有输入正确的用户/密码的用户才可访问本URL   

++++建立版本库
    与上述配置对应,需要在D驱动器建立目录SVN,其中包含多各项目的代码版本库,假设名proj1、proj2、proj3,建立了版本库命令如下(命令行方式):
    %SVN_DIR%/bin/svnadmin create --fs-type fsfs D:/SVN/proj1
    %SVN_DIR%/bin/svnadmin create --fs-type fsfs D:/SVN/proj2
    %SVN_DIR%/bin/svnadmin create --fs-type fsfs D:/SVN/proj3
   
++++设置密码文件

##将用户名和密码(MD5加密)存储到特定配置文件中,初次创建文件命令如下;
    %APACHE_DIR%/bin/htpasswd -c passwd
    ##即可在当前目录下创建passwd(可改名,移动到其他位置,任意取,只需与配置文件中AuthUserFile保持一致即可,是要添加的用户名,如zhangsan,lisi等),以后添加用户可使用命令
    bin/htpasswd passwd
##删除用户,使用命令:
    bin/htpasswd -D passwd user
   
++++设置权限文件

##用文本编辑器在AuthzSVNAccessFile所指定路径下生成名为svnaccessfile的文件(注意名称与配置文件一致,无扩展名),编辑内容如下:
    [groups]
    admin=lds
    develpteam1=zhangsan,lisi
    [/]
    * = r
    @admin = rw
    dangerman =
    [proj1:/]
    @admin = rw
    @developteam1=rw
    [proj2:/]
    @admin = r
    @developteam1=rw
    [proj3:/]
    @admin =
    @developteam1=
##基本含义是根目录下任何人有读权限,admin组有读写权限;admin对proj1读写权限,对proj2有读权限,对proj3没有任何权限,develop1组对对proj1读写权限,对proj2有读写权限,对proj3没有任何权限。
    补充说明:待考证两点-->1、没有指定某个版本库权限时,默认继承[/]权限设定(已验证),当[/]中未设定时,为不可读写。
                        -->2、对某特定版本库而言,没有指明某组或某用户权限时,继承[/]该项权限设定。
                        因此,推荐只有管理员组才可查看根目录。
##进一步设定读写目录权限:[MyProject:/module1]
##备注: 如果有中文路径,那要把文件存成UTF8格式

++++ [开启SSL]
请确认Apache已安装并可正常工作. 并且ssl需要的文件在如下的位置:
    %APACHE_DIR%/modules/mod_ssl.so
    %APACHE_DIR%/bin/openssl.exe, libeay32.dll, ssleay32.dll
    %APACHE_DIR%/conf/openssl.cnf           (openssl)


    bin/openssl req -config bin/openssl.cnf -new -out my-server.csr  
    bin/openssl rsa -in privkey.pem -out my-server.key
    bin/openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 4000
bin/openssl x509 -in my-server.cert -out my-server.der.crt -outform DER


----------
创建SSL证书
----------
##1. 打开cmd, cd到%APACHE_DIR%/bin
##2. 运行
openssl req -config ../conf/openssl.cnf -new -out my-server.csr
    (注意, my-server是自己起的名字, 以下步骤中提到的my-server也是自己起的名字)
这一步需要设置一系列的问题, 包括密码(这个密码要记住, 以后要用) 和其他的问题. 全部完成之后会生成一个my-server.csr和 privkey.pem 文件在bin文件夹中.
##3. 运行
openssl rsa -in privkey.pem -out my-server.key
此时要输入密码, 就是步骤2中设定的密码
##4. 运行
openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 4000
这将创建一个4000天后才过期的证书
#5. 运行
openssl x509 -in my-server.cert -out my-server.der.crt -outform DER

全部运行过后这些命令会在bin文件夹中生成6个文件:
.cnt
privkey.pem
my-server.der.crt
my-server.scr
my-server.key
my-server.cert

  将这些文件移到conf/ssl目录中(如果不存在这个目录就创建一个, 这个步骤中放到其他的目录也可以,关键是记住文件的位置, 在接下来的设置中会用到)

----------
设置Apache支持SSL
----------
注意: 本设置步骤针对针对Apache 2.2.x版本, 如果正在使用的是Apache 2.0.x版本, 请摸索相似的设置.

    用文本编辑器打开%APPACHE_DIR%/conf/httpd.conf
    1. 去掉下面设置行前面的#
LoadModule ssl_module modules/mod_ssl.so
    2. 去掉下面设置行前面的# (在2.0.x版本中没有这一项)
Include conf/extra/httpd-ssl.conf

    3. 用文本编辑器打开%APPACHE_DIR%/conf/extra/httpd-ssl.conf
    更改如下设置.
SSLMutex  default
SSLCertificateFile \"%APPACHE_DIR%/conf/ssl/my-server.der.crt\"
SSLCertificateKeyFile \"%APPACHE_DIR%/conf/ssl/my-server.key\"
    说明:my-server的两个文件就是前一个步骤制作的文件, “%APPACHE_DIR%/conf/ssl/my-server.key”-->文件的位置就是这些文件在磁盘中的位置 (在2.0.x版本中这些设置仍然在 httpd.conf文件中进行)
----------
测试
----------
    1. 保存设置文件
    2. 在开始菜单中运行Apache的Test Configuration工具, 检查设置文件是否正确
    3. 重新启动Apache 2.2.x
    4. 顺利启动之后, 在浏览器中输入 https://localhost  看看是否可以访问, 如果可以访问, 则设置成功
----------
使用https访问版本库
----------
    可以选择修改%APACHE_DIR%/conf/httpd.conf,在语句块中添加SSLRequireSSL语句强制使用ssl(即https连接方式)

++++QA
Q:HTTP 错误 403 - 禁止访问
Internet Explorer
-----------------------------------------------------------------------------------------------------
去掉显示友好信息的钩(IE设置中)
显示Forbidden   You don\'t have permission to access / on this server.
推荐阅读
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • SVN安装配置和使用
    简介:SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 本文总结了初学者在使用dubbo设计架构过程中遇到的问题,并提供了相应的解决方法。问题包括传输字节流限制、分布式事务、序列化、多点部署、zk端口冲突、服务失败请求3次机制以及启动时检查。通过解决这些问题,初学者能够更好地理解和应用dubbo设计架构。 ... [详细]
  • Maven入门、什么是Maven、如何使用Maven、Maven的项目结构、简单的Mavenjava项目、Maven常用命令、Maven项目之间的引用、Maven依赖的传递、可选、排除day01
    目录第一节Maven入门1.1什么是Maven1.2如何使用Maven第一步:下载Maven第二步:配置Maven的环境变量第三步:了解什 ... [详细]
  • 1jdk去网站下载,然后拷贝到linux上;或直接wgethttp:download.oracle.comotn-pubjavajdk8u181-b1 ... [详细]
  • SVN 功能说明(简版)
    Subversion(SVN)是什么?SVN是一种版本管理系统,是开源软件的基石。即使在沟通充分的情况下,多人维护同一份源代码的一定也会 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
author-avatar
chuntianhuaji
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有