svn服务端安装和配置

svn服务端安装和配置

ID:8808409

大小:93.00 KB

页数:13页

时间:2018-04-08

上传者:U-5734
svn服务端安装和配置_第1页
svn服务端安装和配置_第2页
svn服务端安装和配置_第3页
svn服务端安装和配置_第4页
svn服务端安装和配置_第5页
资源描述:

《svn服务端安装和配置》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

所有资料来源于http://www.iusesvn.com我用Subversion-SVN|TortoiseSVN下载安装配置使用技术交流社区SVN服务端安装和配置1.Windows环境下基于Apache的SVN服务器安装及配置1.1安装1.1.1安装Apache(1)下载Apache地址http://httpd.apache.org/download.cgi注意:Apache低于2.0.54的Windows版本的存在编译问题,低于2.0.54的版本不能与Subversion1.2一起工作。2.2.X目前不能很好支持SVN1.4.3。当前建议下载Apache2.0.59(2)安装下载完成后运行apache_2.0.59-win32-x86-no_ssl.msi,根据提示进行操作。遇到系统要求输入SERVER的URL时,如果你的服务器没有DNS名称,请直接输入IP地址。注意:如果你已经有了IIS或其他监听80段口的程序,安装会失败,如果发生这种情况,直接到程序的安装目录ApacheGroupApache2conf,打开httpd.conf。编辑文件的Listen80为其他可用的端口,例如Listen81,然后重新启动-这样就不会那个问题了。(3)检查安装完成后浏览http://localhost/若成功,可看到apache页面。1.1.2安装Subversion(1)下载Subversion地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91(2)安装运行svn-1.4.3-setup.exe安装程序,并根据指导安装,如果Subversion认识到你安装了Apache,你就几乎完成了工作,如果它没有找到Apache服务器,你还有额外的步骤。(3)后续步骤1从C:ProgramFilesSubversionbin中将mod_authz_svn.somod_dav_svn.so复制到C:ProgramFilesApacheGroupApache2modules下intl3_svn.dlllibdb*.dllC:ProgramFilesApacheGroupApache2bin下步骤2找到C:ProgramFilesApacheGroupApache2confhttpd.conf文件去掉如下几行的注释(删除'#'标记): #LoadModuledav_fs_modulemodules/mod_dav_fs.so#LoadModuledav_modulemodules/mod_dav.so将下面几行添加到LoadModule部分的最后。LoadModuledav_svn_modulemodules/mod_dav_svn.soLoadModuleauthz_svn_modulemodules/mod_authz_svn.so1.1.3安装TortoiseSVN(可选)1.2配置1.2.1配置服务编辑c:programfilesapachegroupapache2confhttpd.conf文件,添加下面代码。DAVsvnSVNListParentPathon#SVNPathAuthzoffSVNParentPath"C:svndata"#SVNIndexXSLT"/svnindex.xsl"#SSLRequireSSLAuthTypeBasicAuthName"Subversionrepositories"AuthUserFile"C:svndatapasswd"AuthzSVNAccessFile"C:svndataAuthzSVNAccessFile"##Requirevalid-user##SatisfyAnyRequirevalid-userSoc使用中DAVsvnSVNListParentPathonSVNParentPath"d:svn"AuthTypeBasicAuthName"Subversionrepositories"AuthUserFile"d:svnpasswd"AuthzSVNAccessFile"d:svnsvnaccessfile"Requirevalid-user 备注:可列出C:svndata下的版本库,若为则不能访问http://127.0.0.1/svn下的项目只能这样访问,如http://127.0.0.1/svn/proj1说明设置解释意思是Subversion版本库的URL是http://MyServer/svn/DAVsvn告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块。SVNListParentPathon对于Subversion1.3或者更高版本,这个指示表示显示所有SVNParentPath下的版本库。SVNParentPathD:SVN告诉Subversion需要查看的版本库位于D:SVN之下SVNIndexXSLT"/svnindex.xsl"使用它可以在用浏览器浏览时更好看。AuthTypeBasic激活基本认证,就是用户名/密码AuthName"Subversionrepositories"用来说明何时弹出要求用户输入认证信息的认证对话框AuthUserFilepasswd指定使用的认证密码文件AuthzSVNAccessFile位置Subversion版本库的访问控制文件的路径Requirevalid-user指定只有输入了正确的用户/密码的用户可以访问URL1.2.2建立版本库与此配置对应,需要在C驱动器建立目录svn,其中可能包含多各项目得代码版本库,假设存在proj1、proj2、proj3,并已经建立了版本库。例如svn-win32-1.4.3binsvnadmincreate--fs-typefsfsc:svndataproj11.2.3设置密码文件在路径c:programfilesapachegroupapache2下运行binhtpasswd-cpasswd可在c:programfilesapachegroupapache2创建passwd文件,可将它移动到其它位置,但要和AuthUserFile的配置一致。此后添加用户,使用如下命令:binhtpasswdpasswd删除用户,使用如下命令:binhtpasswd-Dpasswduser1.2.4设置权限文件用文本编辑器在AuthzSVNAccessFile所指定的路径下生成名为svnaccessfile的文件,注意名称与配置文件一致,此处不使用扩展名。编辑一下内容:[groups]admin=lds[/]*=r@admin=rw dangerman=[proj1:/]@admin=rw[proj2:/]@admin=r[proj3:/]@admin=基本含义是根目录下任何人有读权限,admin组有读写权限;admin对proj1读写权限对proj2有读权限,对proj3没有任何权限。备注:如果有中文路径,那要把文件存成UTF8格式1.3扩展1.3.1为Apache启用SSL(1)将mod_ssl_etc.rar中的mod_ssl.so拷到Apache的modules目录、openssl.exe、libeay32.dll、ssleay32.dll拷到bin目录、conf/ssl.conf拷到conf目录,在Apache的conf目录中用文本编辑器打开ssl.conf将下面这些行用#注释掉:DocumentRoot"c:/apache/htdocs"ServerNamewww.example.com:443ServerAdminyou@example.comErrorLoglogs/error_logTransferLoglogs/access_log(2)修改SSLCertificateFileconf/ssl.crt/server.crt为SSLCertificateFileconf/ssl/my-server.cert(3)修改SSLCertificateKeyFileconf/ssl.key/server.key为SSLCertificateKeyFileconf/ssl/my-server.key(4)修改SSLMutexfile:logs/ssl_mutexSSLMutexdefault(5)删除以下两行(如果有)(6)打开Apache配置文件(httpd.conf),去掉这行的注释#LoadModulessl_modulemodules/mod_ssl.so(7)将压缩包openssl.cnf.rar中openssl.cnf文件拷贝到C:programfilesapachegroupapache2bin下。然后C:programfilesapachegroupapache2在用以下命令创建证书binopensslreq-configbinopenssl.cnf-new-outmy-server.csrbinopensslrsa-inprivkey.pem-outmy-server.key binopensslx509-inmy-server.csr-outmy-server.cert-req-signkeymy-server.key-days4000binopensslx509-inmy-server.cert-outmy-server.der.crt-outformDER这时在Apache目录下创建了一些文件(my-server.der.crt,my-server.csr,my-server.key,.rnd,privkey.pem,my-server.cert)。将这些文件拷贝到目录conf/ssl如果目录ssl不存在,你必须先创建一个。(8)可以选择在语句块中添加SSLRequireSSL语句强制使用ssl最后重启一下Apache服务SSL补充1.首先要生成服务器端的私钥(key文件):openssl genrsa -des3 -out server.key 1024运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!去除key文件口令的命令:openssl rsa -in server.key -out server.key2.openssl req -new -key server.key -out server.csr -config openssl.cnf生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.3.对客户端也作同样的命令生成key及csr文件:openssl genrsa -des3 -out client.key 1024openssl req -new -key client.key -out client.csr -config openssl.cnf4.CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢.openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf5.用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:Openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnfOpenssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf现在我们所需的全部文件便生成了.另:client使用的文件有:ca.crt,client.crt,client.keyserver使用的文件有:ca.crt,server.crt,server.key.crt文件和.key可以合到一个文件里面,本人把2个文件合成了一个.pem文件(直接拷贝过去就行了) 1.3.2为用户提供密码修改服务根据附件中Apache密码修改.rar中提示操作。1.3.3外观(1)去掉#SVNIndexXSLT"/svnindex.xsl"#号标志(2)将附件中apache_svn_skin中三个文件放到C:ProgramFilesApacheGroupApache2htdocs下ArthurLin整理(有问题一起讨论arthurjava@163.com)2007-6-1subversion+apache配置注意:目前windows下的subversion只能跟Apache2.0.x配合,不能用于Apache2.2.x,除非你自己编译在所有的Subversion服务器配置方式中,基于Apache的是最灵活的。虽然配置起来有一点点复杂,但是它提供了其它方式所没有的好处:WebDAV基于Apache配置的Subversion服务器使用了被许多其它程序支持的WebDAV协议。举个例子,你可以在Windows的资源管理器中将这样的一个版本库挂载成一个“Webfolder”,然后像文件系统中的其它文件夹一样访问它。浏览版本库你可以在不安装Subversion客户端的情况下,使用浏览器来浏览版本库中的内容。这将使得更大范围的用户可以访问你的数据。用户验证你可以使用任何Apache支持的验证机制,包括SSPI和LDAP。安全Apache是非常的稳定和安全,因此你的版本库自然而然地拥有同样的安全性。包括SSL加密。2.安装过程2.1. 安装Apache安装Apache前,你要有一台运行Windows2000、WindowsXP+sp1或Windows2003的电脑。警告:请注意,没安装ServicePack1的WindowsXP将导致错误的网络数据从而破坏你的版本库!从http://httpd.apache.org/download.cgi下载最新版本的ApacheWeb服务器。确保你下载的版本大于2.0.54。2.0.54版本的Apache将不能与Subversion1.3.xx配合工作。而且,小于2.0.54的Apache也因为在windows上的编译存在一个bug而导致不能与subversion1.2配合使用。一旦你已经有了Apache2的安装程序,你可以双击它,它将引导你完成整个安装过程。请确保你输入正确的服务器URL(如果你的服务器没有DNS名称,你可以直接输入IP地址)。我建议你将Apache安装成forallUsers,onPort80,asaservice。注意:如果你已经有一个IIS或者其它的程序使用80端口,安装可能会失败。如果是这样,你可以到程序目录下的ApacheGroupApache2conf目录中找到文件httpd.conf,将其中的Listen80改成一个不用的端口,比如Listen81。然后重新运行这个安装程序,这次应该不会再有问题了。现在你可以在你的浏览器中键入http://loccalhost/,如果呈现了一个已经配置好的网站,那么你的Apache就安装成功了。警告:如果你将Apache安装成一个服务,它将以本地system帐户来运行。为Apache创建一个单独的用户来运行它将会更安全一些。请确保运行Apache的用户有版本库的完全访问权限(右键版本库目录->属性->安全)。要不然,用户将无法提交他们的更改。就算Apache以本机system来运行,你也要设置它能完全读写版本库目录。如果没有为Apache配置这个许可,用户将会得到"禁止访问"的错误信息,在Apache的错误日志中表现为错误500。2.2.安装Subversion从http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91(英文)或http://www.iusesvn.com/bbs/forumdisplay.php?fid=7(中文)下载最新版本的Subversion。 运行Subversion安装程序,如果安装程序能够识别你已经安装了Apache,那么你的安装基本上就OK了。如果它不能,那么你要做一些额外的步骤。注:如果你先安装Apache,再安装Subversion,正常情况下下面的工作(2.3配置前)Subversion安装程序已经帮你完成了使用资源管理器,进入Sibversion的安装目录(通常为c:programfilesSubversion),找到文件httpd/mod_dav_svn.so和mod_authz_svn.so,将它们拷贝到Apache的modules目录(通常为c:programfilesapachegroupapache2modules)。从Subversion的安装目录拷贝文件libdb43.dll到Apache的modules目录。使用如记事本之类的文本编辑器编辑Apache的配置文件(通常为c:programfilesapachegroupapache2confhttd.conf),修改以下内容:去掉以下行的注释(将开头的#删除):CODE:#LoadModuledav_fs_modulemodules/mod_dav_fs.so#LoadModuledav_modulemodules/mod_dav.so在LoadModule节的最后添加以下两行:CODE:LoadModuledav_svn_modulemodules/mod_dav_svn.soLoadModuleauthz_svn_modulemodules/mod_authz_svn.so2.3.配置现在,你已经安装了Apache和Subversion,但是Apache还不知道如果处理像TortoiseSVN一样的Subversion客户端。要让Apache知道哪个URL将被Subversion使用,你要像下面这样编辑Apache的配置文件(通常在c:programfilesapachegroupapache2confhttpd.conf):在配置文件的最后添加下面这些行:CODE:DAVsvnSVNParentPathD:SVNAuthTypeBasicAuthName"Subversionrepositories"AuthUserFileD:passwd#AuthzSVNAccessFileD:svnaccessfile Requirevalid-user这样配置表示:你所有的版本库将位于D:SVN目录下,要访问你的版本库可以使用这样的URL:http://MyServer/svn/,访问权限将由passwd文件中的用户名/密码来限制。要创建passwd文件,可以打开命令行(DOS窗口),将当前目录切换到apache2目录(通常为c:programfilesapachegroupapache2),然后打入以下命令以创建文件:CODE:binhtpasswd-cpasswd重启Apache服务。将你的浏览器指向http://MyServer/svn/MyNewRepository(MyNewRepository是你之前创建的Subversion版本库)。如果一切正常,你将被提示输入用户名密码,输入正确的用户名密码后你就可以看到版本库中的内容了。对你刚刚输入的apache配置作一些简短的说明:QUOTE:意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库DAVsvn告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块SVNListParentPathon在Subversion1.3及更高版本中,这个指示器使得Subversion列出由SVNParentPath指定的目录下所有的版本库SVNParentPathD:SVN告诉Subversion在目录D:SVN下寻找版本库AuthTypeBasic启用基本的验证,比如用户名/密码对AuthName"Subversionrepositories"当一个验证对话框弹出时,告诉用户这个验证是用来做什么的AuthUserFileD:passwd指定D:passwd用为密码文件用来验证用户的用户名及密码AuthzSVNAccessFileD:svnaccessfile指定D:svnaccessfile来限定各个用户或组在版本库中目录的访问权限Requirevalid-user限定用户只有输入正确的用户名及密码后才能访问这个路径---------------------------------------- 上面的配置仅仅是一个简单的示例。你还可以对Apache进行许许多多的配置。1如果你想让所有用户对版本库都有读的权限而只有特定的用户才有写的权限,你可以将这行CODE:Requirevalid-user改为CODE:Requirevalid-user2上面的配置使用了passwd文件将你所有的版本库作为一个单元来限定访问权限。如果你想获得更多的控制,如限定某个用户可以访问版本库中的哪个目录,可以把下面这行的#去掉:CODE:#AuthzSVNAccessFileD:svnaccessfile然后用文本编辑器创建一个Subversion授权文件。Apache将确保只有有效的用户可以访问你的/svn位置,然后将用户名传到AuthzSVNAccessFile模块,这样可以依据Subversion授权文件得到更精细的权限控制。注意,路径将被指定为[库:路径]或者简单的[路径]。如果你不明确指定一个库,访问规则将应用到由SVNParentPath指定的目录下所有的版本库中。一个授权文件例子可能像这样:CODE:[groups]admin=john,katedevteam1=john,rachel,sallydevteam2=kate,peter,markdocs=bob,jane,miketraining=zak#为所有库指定默认访问规则#所有人可以读,管理员可以写,危险分子没有任何权限[/]*=r@admin=rwdangerman=#允许开发人员可以完全访问他们的项目版本库[proj1:/]@devteam1=rw[proj2:/]@devteam2=rw[bigproj:/]@devteam1=rw@devteam2=rwtrevor=rw#文档编写人员对所有的docs目录有写权限[/trunk/doc]@docs=rw# 培训人员可以完全访问培训版本库[TrainingRepos:/]@training=rw2.4.使用SSL来保护你的服务器因为美国出口限制,默认安装的Apache服务器不支持SSL。但是你自己可以很容易地在其它地方下载到所需要的模块,然后安装它。首先你需要SSL的必需文件。你可以http://hunter.campbus.com/或这里找到相应的软件包(或者下载本主题的附件1: 附件:mod_ssl_etc.rar(2006-10-1615:30,595.45K)该附件被下载次数110)。然后只要将包解开将其中的mod_ssl.so拷到Apache的modules目录、openssl.exe、libeay32.dll、ssleay32.dll拷到bin目录、conf/ssl.conf拷到conf目录。在Apache的conf目录中用文本编辑器打开ssl.conf。将下面这些行用#注释掉:CODE:DocumentRoot"c:/apache/htdocs"ServerNamewww.example.com:443ServerAdminyou@example.comErrorLoglogs/error_logTransferLoglogs/access_log修改CODE:SSLCertificateFileconf/ssl.crt/server.crt为CODE:SSLCertificateFileconf/ssl/my-server.cert修改CODE:SSLCertificateKeyFileconf/ssl.key/server.key为CODE:SSLCertificateKeyFileconf/ssl/my-server.key修改CODE:SSLMutexfile:logs/ssl_mutex为CODE:SSLMutexdefault删除以下两行(如果有,我认为有错,删掉之后apache无法启动):CODE:打开Apache配置文件(httpd.conf),去掉这行的注释CODE:#LoadModulessl_modulemodules/mod_ssl.soOpenssl需要一个配置文件。你可以从这里下载一个可工作的版本http://tud.at/programm/openssl.cnf(或者本主题附件2: 附件:openssl.cnf.rar(2006-9-1019:11,1.21K)该附件被下载次数84)。将它保存到bin/openssl.cnf。下面你要创建一个SSL证书。你可以打开一个命令行窗口,然后cd到Apache安装目录(比如C:programfilesapachegroupapache2),敲入以下命令:CODE:binopensslreq-configbinopenssl.cnf-new-outmy-server.csr你将被问及一句口令短语。请注意,不要使用简单的几个词,而应该输入一整个句子,比如一篇诗词的一部份,越长越好。同样,你还要输入你的服务器URL。然后其它的问题都是可选问答的,不过我建议你也将它们填充。下一步,敲入以下命令:CODE:binopensslrsa-inprivkey.pem-outmy-server.key以及(注意,只有一行)CODE:binopensslx509-inmy-server.csr-outmy-server.cert-req-signkeymy-server.key-days4000这样将创建一个4000天后才过期的证书。最后敲入:CODE:binopensslx509-inmy-server.cert-outmy-server.der.crt-outformDER这些命令在Apache目录下创建了一些文件(my-server.der.crt,my-server.csr,my-server.key,.rnd,privkey.pem,my-server.cert)。将这些文件拷贝到目录conf/ssl(比如C:programfilesapachegroupapache2confssl),如果目录ssl不存在,你必须先创建一个。重启Apache服务。现在可以用类似这样的url来访问你的版本库了https://servername/svn/projectQUOTE:强制通过SSL来访问当你配置了SSL来提高版本库安全时,你可能想禁用无SSL的http访问方式,而只允许通过https访问。要达到这种效果,你要在块加入另外一个指示器SSLRequireSSL。一个示例块可能像这样:DAVsvnSVNParentPath D:SVNSSLRequireSSLAuthTypeBasicAuthName"Subversionrepositories"AuthUserFilepasswd#AuthzSVNAccessFilesvnaccessfileRequirevalid-user以上介绍的配置为Apache多库方式,即一个location可以同时为多个版本库服务,假设你的ip为192.168.0.1,在D:SVN目录下建了两个版本库,proj1和proj2可以分别用下面两个url来访问你的版本库CODE:http://192.168.0.1/svn/proj1CODE:http://192.168.0.1/svn/proj1还有一种配置方式为Apache单库方式,即一个location只能为一个版本库服务,配置时只要将上面的SVNParentPath改为SVNPath,同时将后面的路径由版本库的父目录改为版本库的目录如:CODE:SVNPathD:SVNproj1AuthTypeBasicAuthName"Subversionrepositories"AuthUserFileD:passwd#AuthzSVNAccessFileD:svnaccessfileRequirevalid-user

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭