2013最新版Subversion 1.7.10 for Windows x86 + Apache 2.4.4 x64 安装配置教程+错误解决方案
一 、工作环境
操作系统:Windows Server 2008 R2 SP1 x64
Apache版本:2.4.4
Subversion版本: Setup-Subversion-1.7.10.msi
TortoiseSVN版本: TortoiseSVN-1.7.13.24257-x64-svn-1.7.10.msi + LanguagePack_1.7.13.24257-x64-zh_CN.msi
Subversion 1.7.10支持如下版本:
APR 1.4.5
APR-util 1.3.12
APR-ICONV 1.2.1
Neon 0.29.6
Berkeley DB 4.8.30
OpenSSL 1.0.0e
ZLib 1.2.5
Apache 2.2.21
Python 2.6.6 and 2.7.2
Perl 5.12.3 (ActivePerl)
libintl 0.14.1 (patched)
Ruby 1.8.6
Cyrus SASL 2.1.23
serf 1.0.0
sqlite 3.7.7.1
SWIG 1.3.24 (newer versions doesn't work with VC++6)
下载地址:
apache_2.4.4-x86-no-ssl.msi-Download.rar:http://www.yimuhe.com/file-1159841.html
apache_2.4.4-x86-openssl-1.0.1e.msi-Download.rar:http://www.yimuhe.com/file-1159842.html
apache_2.4.4-x64-no-ssl.msi-Download.rar:http://www.yimuhe.com/file-1159838.html
apache_2.4.4-x64-openssl-1.0.1e.msi-Download.rar:http://www.yimuhe.com/file-1159839.html
Setup-Subversion-1.7.10.exe-Download.rar:http://www.yimuhe.com/file-1159844.html
TortoiseSVN-1.7.13.24257-x64-svn-1.7.10-zh-CN.msi-Download.rar:http://www.yimuhe.com/file-1159859.html
二 、安装步骤
1.安装Apache
如果您已经拥有Apache的安装程序,那么你就可以双击安装程序开始安装。请确保你输入正确的服务器URL(如果你的服务器没有DNS名称,你可以直接输入IP地址)。我建议你将Apache安装成 for all Users,on Port 80,as a service。注意:如果你已经有一个IIS或者其它的程序使用80端口,安装可能会失败。如果是这样,你可以在Apache安装完毕后,到该程序目录下的C:\Program Files\Apache Software Foundation\Apache2.4\conf目录中找到文件httpd.conf,将其中的Listen 80改成一个不被程序占用的端口,比如Listen 81(如果81也被占用,请自行修改成其它不被占用的端口)。为了预防万一请先看第二步把81端口加入防火墙例外,再重新运行这个安装程序,这次应该不会再有问题了。
测试Apache是否安装成功?
你可以在你的浏览器中键入 http://loccalhost:81,如果呈现了一个已经配置好的网站(页面显示内容为:It works!),那么你的Apache就安装成功了。
2.加入防火墙例外
按Win键+R键打开运行,输入WF.msc,按Enter键确认打开 高级安全Windows防火墙。在左边单击 入站规则,在右边单击 新建规则,选择 端口,单击 下一步,选择 TCP(默认) 和 特定本地端口(默认):填写:81,单击 下一步,选择 阻止连接,单击 下一步,在 域,专用,公用 上打勾(默认),单击 下一步,输入名称:81端口(任意名称,随你填),输入描述:供Apache服务器使用端口(可选填写),单击 完成。至此完成创建防火墙例外。
3.提高Apache安全性
如果你将Apache安装成一个服务,它将以本地system帐户来运行。为Apache创建一个单独的用户来运行它将会更安全一些。请确保运行Apache的用户有版本库的完全访问权限(右键版本库目录->属性->安全)。要不然,用户将无法提交他们的更改。就算Apache以本机system来运行,你也要设置它能完全读写版本库目录。如果没有为Apache配置这个许可,用户将会得到"禁止访问"的错误信息,在Apache的错误日志中表现为错误500。
在这里,我已经为我的Apache创建一个系统账户:apache_admin,并默认加入Users用户组。
然后Win键+R键 打开运行,输入Services.msc,按Enter键确认打开服务窗口,找到Apache2.4服务,右键选择属性->登录->此账户,设置为你新创建好的系统账户apache_admin。
设置好登录账户之后,重启Apache2.4服务,你会发现启动Apache2.4失败,弹出错误窗口:"windows不能在本地计算机启动apache2.4.有关更多信息,查阅系统事件日志。如果这是非microsoft服务,请与服务厂商联系,并参考特定服务错误代码1。"
这是因为某些Apache需要用到的目录,而apache_admin没有权限读写,这是Windows 6.1以后版本所导致的,Windows 6.1以后版本提高了文件系统安全性,尤其是文件系统为NTFS格式的服务器。
这时需要设置以下几个目录的安全性:
为Apache安装目录的上级目录(C:\Program Files\Apache Software Foundation)添加apache_admin账户权限:在该目录右键 属性->安全->编辑->添加->输入apache_admin,然后确定。
Apache安装目录的上级目录,只需要设置“读取”的权限。
Apache安装目录(C:\Program Files\Apache Software Foundation\Apache2.4),需要设置“列出文件夹目录”和“读取”的权限(可以为了方便使用继承)。
Apache安装目录下的子目录“bin”和“modules”目录,需要设置“读取和运行”、“列出文件夹和目录”、“读取”的权限。
Apache安装目录下的子目录“logs”目录,需要设置“列出文件夹和目录”、“读取”、“写入”的权限(若使用Apache安装目录的权限继承,只添加“写入”权限即可)。
版本库目录需要为apache_admin设置完全访问权限,要不然客户端无法文件上载,可能会出现禁止访问等提示,在Apache的错误日志中表现为错误500。
有些时候,我们创建了新的账户,却没有作为服务运行的权限,这时候,我们还需要额外设置:Win键+R键打开运行,输入Secpol.msc,按Enter键确认打开 本地安全策略->本地策略->用户权限分配->作为服务登录->添加用户或组->把apache_admin添加进入后按确定。
4.安装Subversion并配置Apache
A,双击Subversion的安装程序来完成默认安装,安装完毕之后。我们进入subversion文件目录中(默认安装位置是:C:\Program Files (x86)\Subversion), 在该目录中的bin文件夹中找到mod_dav_svn.so、mod_authz_svn.so、libdb48.dll、intl3_svn.dll这四个文件,将它们拷贝到Apache的modules目录(通常为C:\Program Files\Apache Software Foundation\Apache2.4\modules)下。
B,打开Apache的配置文件httd.conf(通常为C:\Program Files\Apache Software Foundation\Apache2.4\conf\httd.conf),修改以下内容:
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
修改为:
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
*注意: 这两行的代码顺序不能错,以免带来不必要的麻烦。
C,现在,你已经安装了Apache和Subversion,但是Apache还不知道如果处理像TortoiseSVN一样的Subversion客户端。要让Apache知道哪个URL将
被Subversion使用,你要像下面这样编辑Apache配置文件,在配置文件的最后添加下面这些行:(通常为C:\Program Files\Apache Software Foundation\Apache2.4\conf\httd.conf):
<Location /svn>
DAV svn
SVNParentPath D:\Subversion\SVN
AuthType Basic
AuthName "test"
AuthUserFile D:\Subversion\passwd
#AuthzSVNAccessFile D:\Subversion\svnaccessfile
Require valid-user
</Location>
这样配置表示:你所有的版本库将位于D:\Subversion\SVN目录下,要访问你的版本库可以使用这样的URL:http://MyServer/svn/,访问权限将由passwd文件中的用户名/密码来限制。
==============================================
对刚刚输入的apache配置作一些简短的说明:
<Location /svn>
意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库
DAV svn
告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块
SVNListParentPath on
在Subversion 1.3及更高版本中,这个指示器使得Subversion列出由SVNParentPath指定的目录下所有的版本库
SVNParentPath D:\Subversion\SVN
告诉Subversion在目录D:\Subversion\SVN下寻找版本库
AuthType Basic
启用基本的验证,比如用户名/密码对
AuthName "test"
当一个验证对话框弹出时,告诉用户这个验证是用来做什么的
AuthUserFile D:\Subversion\passwd
指定D:\Subversion\passwd用为密码文件用来验证用户的用户名及密码
AuthzSVNAccessFile D:\Subversion\svnaccessfile
指定D:\Subversion\svnaccessfile来限定各个用户或组在版本库中目录的访问权限
Require valid-user
限定用户只有输入正确的用户名及密码后才能访问这个路径
==============================================
要创建passwd文件,可以按Win键+R输入CMD,按Enter键确认打开命令提示符(DOS窗口)。
输入以下命令切换到apache2.4的bin目录(通常为C:\Program Files\Apache Software Foundation\Apache2.4\bin):
cd /d C:\Program Files\Apache Software Foundation\Apache2.4\bin
然后输入以下命令在D:\Subversion创建passwd文件,并且新建一个admin账户:
htpasswd -c D:\Subversion\passwd admin
根据提示输入该admin账户的新密码,再按Enter键
输入以下命令重启Apache服务或输入命令Services.msc打开服务窗口,手动重启Apache2.4服务:
net stop "Apache2.4"
net start "Apache2.4"
这个时候,你又会发现启动Apache2.4服务失败,弹出错误窗口:"windows不能在本地计算机启动apache2.4.有关更多信息,查阅系统事件日志。如果这是非microsoft服务,请与服务厂商联系,并参考特定服务错误代码1。"
这个错误和那几个新Copy到Apache的so文件有关,因为已经在httd.conf文件中加入这几个so文件的配置信息,所以在Apache2.4服务启动的时候,会读取这几个文件,但读取出错,导致无法启动服务。当然,这只是我的猜想,欢迎指正。
解决方法:
如果承载Subversion和Apache的服务器没有安装Microsoft Visual C++ 2008 SP1 Redistributable Package (x64),请先下载并运行完成安装。
需要注意的是,必须是这个版本VC2008,是不是SP1都无所谓,请根据服务器系统架构,下载x86或x64。当然了,如果你的服务器是x64的,全部安装也是可以的,但请按顺序安装。
下载地址:
Microsoft Visual C++ 2008 Redistributable Package (x86):http://www.microsoft.com/zh-cn/download/details.aspx?id=29
Microsoft Visual C++ 2008 SP1 Redistributable Package (x86):http://www.microsoft.com/zh-cn/download/details.aspx?id=5582
Microsoft Visual C++ 2008 Redistributable Package (x64):http://www.microsoft.com/zh-cn/download/details.aspx?id=15336
Microsoft Visual C++ 2008 SP1 Redistributable Package (x64):http://www.microsoft.com/zh-cn/download/details.aspx?id=2092
安装完毕后,请再下载由国外友人提供的修改版Subversion文件,以达到兼容并识别Apache的效果,请根据Subversion版本以及系统架构选择相应版本:
注意: Subversion 1.7.10不提供x86的修改版本。
下载地址:
Mod Subversion 1.7.8 for Apache 2.4.x x86:
文件名:mod_svn-1.7.8-ap24-x86.zip
SHA1: 31c202f9eec1fc566fca78fcda69d3fc7d2c1e58
下载地址:http://yimuhe.com/file-1158563.html
Mod Subversion 1.7.8 for Apache 2.4.x x64:
文件名:mod_svn-1.7.8-ap24-x64.zip
SHA1: d7a6125b9d56404d48272d227ff2196614ecfb22
下载地址:http://yimuhe.com/file-1158544.html
Mod Subversion 1.7.10 for Apache 2.4.x x64:
文件名:mod_svn-1.7.10-ap24-x64.zip
SHA1: 55f0a697f409fd40c0a69fe939c21dcf4c8a403d
下载地址:http://yimuhe.com/file-1158540.html
下载完毕后解压到任意目录。
1.把bin目录直接覆盖到C:\Program Files (x86)\Subversion的bin目录。
2.把modules目录直接覆盖到C:\Program Files\Apache Software Foundation\Apache2.4的modules目录。
重启Apache2.4服务,成功。
D,权限控制文件创建
在D:\Subversion目录下创件svnaccessfile文件,然后打开进行配置,可以参照下面的示例:
#组配置 组 = 用户名
[groups]
@admin = admin
@user = test #test用户还需要按照上面d步骤来创建它和它的密码
# 为所有库指定默认访问规则
# 所有人可以读
[/]
* = r
# 为test版本库制定权限
#admin组拥有读写权限
#user组只有读取权限
[test:/svn/test]
@admin = rw
@user = r
5.TortoiseSVN
双击安装程序,默认安装即可!完成之后,你就可以用URL(http://IP/svn/test)来访问版本库了!
好了,现在你就应该可以去体会一下你的劳动成果咯!
* 为什么要先装Apahce后安装SVN呢?
先安装Apahce后安装的原因是,如果Apache安装成功,那么在安装 SVN的时候,会自动配置相关的属性!不过也没什么关系,我们还是可以自己来配置的!
上面的配置仅仅是一个简单的示例。你还可以对Apache进行许许多多的配置。
1如果你想让所有用户对版本库都有读的权限而只有特定的用户才有写的权限,你可以将这行
Require valid-user
改为
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
2上面的配置使用了passwd文件将你所有的版本库作为一个单元来限定访问权限。如果你想获得更多的控制,如限定某个用户可以访问版本库中
的哪个目录,可以把下面这行的#去掉:
#AuthzSVNAccessFile D:\Subversion\svnaccessfile
然后用文本编辑器创建一个Subversion授权文件。Apache将确保只有有效的用户可以访问你的/svn位置,然后将用户名传到
AuthzSVNAccessFile模块,这样可以依据Subversion授权文件得到更精细的权限控制。注意,路径将被指定为[库:路径]或者简单的[路径]。如
果你不明确指定一个库,访问规则将应用到由SVNParentPath指定的目录下所有的版本库中。一个授权文件例子可能像这样:
[groups]
admin = admin,administrator
devteam1 = john,rachel,sally
devteam2 = kate,peter,mark
docs = bob,jane,mike
training = zak
# 为所有库指定默认访问规则
# 所有人可以读,管理员可以写,危险分子没有任何权限
[/]
* = r
@admin = rw
dangerman =
# 允许开发人员可以完全访问他们的项目版本库
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
@devteam1 = rw
@devteam2 = rw
trevor = rw
# 文档编写人员对所有的docs目录有写权限
[/trunk/doc]
@docs = rw
# 培训人员可以完全访问培训版本库
[TrainingRepos:/]
@training = rw
3. 使用SSL来保护你的服务器
因为美国出口限制,默认安装的Apache服务器不支持SSL。但是你自己可以很容易地在其它地方下载到所需要的模块,然后安装它。
首先你需要SSL的必需文件。
下载地址:
文件名:openssl-0.9.8y-downgrade-2.4.4-x86.zip
SHA1: 9fae76682e11863f79a6fe27dfb588f5936e7fbd
来源:http://yimuhe.com/file-1159436.html
文件名:openssl-0.9.8y-downgrade-2.4.4-x64.zip
SHA1: 96cddd184f1bf1e1e1a7deddfd89fccf3aba2c7a
来源:http://yimuhe.com/file-1159431.html
解压后,将modules目录覆盖到Apache的modules目录。
(含:mod_ssl.so、mod_session_crypto.so)
bin目录覆盖到Apache的bin目录。
(含:abs.exe、apr_crypto_openssl-1.dll、libeay32.dll、openssl.exe、ssleay32.dll)
conf目录覆盖到Apache的conf目录,同时把conf目录里的openssl.cnf文件复制多一份到bin目录里,方便使用。
(含:openssl.cnf)
在Apache的conf目录中用文本编辑器打开ssl.conf,这一步应该不需要的了,如果有问题,就试试这一步吧。
将下面这些行用#注释掉:
DocumentRoot "c:/apache/htdocs"
ServerName www.example.com:443
ServerAdmin you@example.com
ErrorLog logs/error_log
TransferLog logs/access_log
修改
SSLCertificateFile conf/ssl.crt/server.crt
为
SSLCertificateFile conf/ssl/my-server.cert
修改
SSLCertificateKeyFile conf/ssl.key/server.key
为
SSLCertificateKeyFile conf/ssl/my-server.key
修改
SSLMutex file:logs/ssl_mutex
为
SSLMutex default
删除以下两行(如果有,我认为有错,删掉之后apache无法启动):
<IfDefine SSL>
</IfDefine>
打开Apache配置文件(httpd.conf),去掉这行的注释
#LoadModule ssl_module modules/mod_ssl.so
下面你要创建一个SSL证书,打开命令提示符窗口,输入以下命令:
cd /d C:\Program Files\Apache Software Foundation\Apache2.4\bin
openssl req -config openssl.cnf -new -out my-server.csr
你将被问及一句口令短语。请注意,不要使用简单的几个词,而应该输入一整个句子,比如一篇诗词的一部份,越长越好。同样,你还要输入
你的服务器URL。然后其它的问题都是可选问答的,不过我建议你也将它们填充。
下一步,敲入以下命令:
openssl rsa -in privkey.pem -out my-server.key
openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 4000
这样将创建一个4000天后才过期的证书。最后敲入:
openssl x509 -in my-server.cert -out my-server.der.crt -outform DER
这些命令在Apache目录下创建了一些文件(my-server.der.crt, my-server.csr, my-server.key, .rnd, privkey.pem, my-server.cert)。
将这些文件拷贝到目录conf/ssl
(比如C:\Program Files\Apache Software Foundation\Apache2.4\conf\ssl),如果目录ssl不存在,请先创建一个。
重启Apache服务。
现在可以用类似这样的url来访问你的版本库了https://servername/svn/project
强制通过SSL来访问
当你配置了SSL来提高版本库安全时,你可能想禁用无SSL的http访问方式,而只允许通过https访问。要达到这种效果,你要在<Location>块加
入另外一个指示器SSLRequireSSL。
一个示例<Location>块可能像这样:
<Location /svn>
DAV svn
SVNParentPath D:\Subversion\SVN
SSLRequireSSL
AuthType Basic
AuthName "test"
AuthUserFile D:\Subversion\passwd
#AuthzSVNAccessFile D:\Subversion\svnaccessfile
Require valid-user
</Location>
以上介绍的配置为Apache多库方式,即一个location可以同时为多个版本库服务,
假设你的ip为192.168.0.1,在D:\SVN目录下建了两个版本库,proj1和proj2
可以分别用下面两个url来访问你的版本库
http://192.168.0.1:81/svn/proj1
http://192.168.0.1:81/svn/proj2
还有一种配置方式为Apache单库方式,即一个location只能为一个版本库服务,
配置时只要将上面的SVNParentPath改为SVNPath,同时将后面的路径由版本库的父目录改为版本库的目录
如:
<Location /svn>
SVNPath D:\Subversion\SVN\proj1
AuthType Basic
AuthName "test"
AuthUserFile D:\Subversion\passwd
#AuthzSVNAccessFile D:\Subversion\svnaccessfile
Require valid-user
</Location>
转载的朋友,请不要删除以下行,对此,表示感谢!!!
原文来自VAllen cnblogs链接:http://www.cnblogs.com/VAllen/archive/2013/06/17/ModSVN1710AndApache244Installer.html
2013最新版Subversion 1.7.10 for Windows x86 + Apache 2.4.4 x64 安装配置教程+错误解决方案的更多相关文章
- 【Python+OpenCV】人脸识别基于环境Windows+Python3 version_3(Anaconda3)+OpenCV3.4.3安装配置最新版安装配置教程
注:本次安装因为我要安装的是win10(64bit)python3.7与OpenCV3.4.3教程(当下最新版,记录下时间2018-11-17),实际中这个教程的方法对于win10,32位又或是64位 ...
- 关于Microsoft CRM 2013自动保存Autosave功能的10点说明
今天不经意翻看到以前记的笔记发现这个笔记觉得还是应该把它整理记录一下: 关于Microsoft CRM 2013自动保存Autosave功能的10点说明: 1.新建时不会自动保存,需要手动点击保存按钮 ...
- subversion & MacOS & Xcode 10
subversion & MacOS Xcode 10 https://developer.apple.com/search/?q=subversion No SVN any more! ht ...
- linux下安装最新版Subversion 1.8.9
linux下安装最新版subversion,代码: [root@localhost subversion-1.8.9]# ./configure --prefix=/usr/local/subvers ...
- Windows下安装配置SubVersion的简明步骤
[使用的安装程序和文档说明] svn-1.4.0-setup.exe:Subversion服务端1.4.0安装程序: SubService.rar: SubServe服务Windows辅助工具; T ...
- mac osx 10.9安装配置macvim
如果你已经安装了macvim,升级后又不能用了,建议你可以看看http://kodira.de/2013/10/macvim-osx-10-9-mavericks/这篇文章,如果你还没有安装,下面由我 ...
- Windows 10下安装配置Caffe并支持GPU加速(修改版)
基本环境 建议严格按照版本来 - Windows 10 - Visual Studio 2013 - Matlab R2016b - Anaconda - CUDA 8.0.44 - cuDNN v4 ...
- SharePoint 2013 安装配置(3-2)
第三部分SQL Server后端配置篇幅较长,上一篇介绍SQL Server 前提条件及安装(3-1),这篇分享SQL Server功能安装配置,请参考以下步骤. 10.在“安装角色”屏幕上,选择“S ...
- SharePoint 2013 安装配置(1)
在这篇文章中,我将逐步介绍在Windows Server 2012 R2上安装SharePoint 2013. 在进一步详细介绍之前,让我们先了解SharePoint 2013安装的硬件和软件要求.您 ...
随机推荐
- 在WebApi中基于Owin OAuth使用授权发放Token
如何基于Microsoft.Owin.Security.OAuth,使用Client Credentials Grant授权方式给客户端发放access token? Client Credentia ...
- JavaScript使用DeviceOne开发实战(一) 配置和起步
2015 年 9 月 底,DeviceOne Release发布.至此,DeviceOne 基本完成了对多端的支持.基于 DeviceOne 可以: HTML5.Android.iOS.Windows ...
- 如何在IIS7/7.5上配置IISADMPWD
问题 很多IIS用户还记得在早期的IIS版本上有一个web应用, IISADMPWD. 该应用是与IIS5 和IIS6一起发布的. 主要用于为域用户提供修改密码的功能, 同时也可以修改本机用户的密码. ...
- Unity3D热更新全书-PageZero
由于深刻的认识到自己是个思维跳跃的人,深入浅出是个我还要努力很久的目标,为了让大家不至于在我乱七八糟的文字中迷失,特整理目录一份 无分类 <Unity3D热更新全书-何谓热更新,为何热更新,如何 ...
- 在.net中使用aquiles访问Cassandra(二)
上文中我们已经建立了项目的基本结构,今天实现数据的修改.在NoSQL中,通常添加和修改都认为是对数据的一种Mutation. 1.建立描述修改Row的实体. public class RowMut ...
- ueditor上传大容量视频报http请求错误的解决方法
故障现象: 当使用百度编辑器ueditor上传大容量视频或大容量图片的时候,编辑器报"http请求错误"的解决方法详解: 原因分析: 目前很多CMS整合了百度的ueditor编辑器 ...
- 七步,搭建基于Windows平台完美Jekyll博客环境
最近,基于Jekyll新搭建了自己英文博客.整个过程搜索了不少资料,也尝试和过滤了不少工具和插件,最后的效果还是不错的.这里总结一下主要的七个步骤,感兴趣的朋友可以参考一下: 第一步,安装Ruby开发 ...
- C#入门基础三四
数组:数组是一组具有相同类型的值的集合,可以通过索引来访问数组中的元素. 声明数组的语法: A.数据类型 [] 数组名称: B.数据类型 [] 数组名称 = new 数据类型[数组大小]; C.int ...
- CSS水平垂直居中的几种方法2
直接进入主题! 一.脱离文档流元素的居中 方法一:margin:auto法 CSS代码: div{ width: 400px; height: 400px; position: relative; b ...
- thinkphp里的session、cookie方法
thinkphp里,对于session和cookie的操作,不管是存值.获取.删除,均只有一个方法.现分享出来,供大家参考参考. /** * session管理函数 * @param string|a ...