基于Apache的服务器配置.docx

上传人:b****6 文档编号:12961100 上传时间:2023-06-09 格式:DOCX 页数:13 大小:23.80KB
下载 相关 举报
基于Apache的服务器配置.docx_第1页
第1页 / 共13页
基于Apache的服务器配置.docx_第2页
第2页 / 共13页
基于Apache的服务器配置.docx_第3页
第3页 / 共13页
基于Apache的服务器配置.docx_第4页
第4页 / 共13页
基于Apache的服务器配置.docx_第5页
第5页 / 共13页
基于Apache的服务器配置.docx_第6页
第6页 / 共13页
基于Apache的服务器配置.docx_第7页
第7页 / 共13页
基于Apache的服务器配置.docx_第8页
第8页 / 共13页
基于Apache的服务器配置.docx_第9页
第9页 / 共13页
基于Apache的服务器配置.docx_第10页
第10页 / 共13页
基于Apache的服务器配置.docx_第11页
第11页 / 共13页
基于Apache的服务器配置.docx_第12页
第12页 / 共13页
基于Apache的服务器配置.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于Apache的服务器配置.docx

《基于Apache的服务器配置.docx》由会员分享,可在线阅读,更多相关《基于Apache的服务器配置.docx(13页珍藏版)》请在冰点文库上搜索。

基于Apache的服务器配置.docx

基于Apache的服务器配置

基于Apache的服务器

一、简介

所有可能的服务器当中,Apache为基础的服务器是最灵活的,尽管配置有一点复杂,但是提供了其他服务器没有的便利:

1.WebDAV

TheApachebasedSubversionserverusestheWebDAVprotocolwhichissupportedbymanyotherprogramsaswell.Youcoulde.g.mountsucharepositoryasa“Webfolder”intheWindowsexplorerandthenaccessitlikeanyotherfolderinthefilesystem.

2.浏览版本库

可以将浏览器指向版本库的URL,无需安装Subversion客户端就可以浏览内容,这样可以扩大访问数据的用户圈。

3.认证

可以使用所有Apache支持的认证机制,包括SSPI和LDAP。

4.安全

因为Apache非常稳定和安全,你的版本库可以自动获得同样的安全性,包括SSL加密。

二、安装Apache

安装Apache的先决条件是有一台安装了Windows2000,WindowsXPSP1+,Windows2003,Vista或WindowsServer2008的计算机。

请注意,WindowsXP如果没有安装SP1将会导致不正常的网络传输,从而搞坏你的版本库!

1.从http:

//httpd.apache.org/download.cgi下载最新版本的Apache,请确认你下载的版本是2.2.x-1.3.xx的版本不能工作!

ThemsiinstallerforApachecanbefoundbyclickingonotherfiles,thenbrowsetobinaries/win32.Youmaywanttochoosethemsifileapache-2.2.x-win32-x86-openssl-0.9.x.msi(theonethatincludesOpenSSL).

2.一旦有了Apache2安装程序,可以双击它,然后它会指导你的安装过程。

请确认输入的服务器URL正确(如果你的服务器没有DNS名称,请直接输入IP地址)。

建议为所有用户在80端口安装Apache服务。

注意:

如果已经有了IIS或其他监听80端口的程序,安装会失败。

如果发生这种情况,直接到程序的安装目录\ApacheGroup\Apache2\conf,打开httpd.conf。

编辑文件的Listen80为其他可用的端口,例如Listen81,然后重新启动-这样就不会那个问题了。

3.现在可以测试Apache服务器是否正确运行,将浏览器指向http:

//localhost/-将会看到一个预先配置的网站。

小心:

如果你决定将Apache安装为服务,缺省情况以本地系统帐户运行会发出警告,更安全的方法是为Apache创建一个单独的运行帐户。

请确认Apache运行的帐户是版本库目录的访问控制列表(右键目录|属性|安全)中一个明确的条目,对目录有完全的控制能力,否则,用户不能提交他们的修改。

即使Apache运行于本地系统,你仍然需要这个条目(这种情况下将是SYSTEM帐户)。

如果没有配置Apache的此访问权限,你的用户会得到“拒绝访问(Accessdenied)”的错误信息,在Apache的错误日志中的错误代码是500。

三、安装Subversion

DownloadthelatestversionoftheSubversionWin32binariesforApache.BesuretogettherightversiontointegratewithyourversionofApache,otherwiseyouwillgetanobscureerrormessagewhenyoutrytorestart.IfyouhaveApache2.2.xgotohttp:

//subversion.tigris.org/servlets/ProjectDocumentList?

folderID=8100.

1.运行Subversion安装程序,并根据指导安装,如果Subversion认识到你安装了Apache,就基本完成了工作,如果它没有找到Apache服务器,还需要额外的步骤。

2.使用Windwos资源管理器,来到Subversion的安装目录(通常是c:

\programfiles\Subversion),找到文件/httpd/mod_dav_svn.so和mod_authz_svn.so,复制这些文件到Apache的模块目录(通常是c:

\programfiles\apachegroup\apache2\modules)。

3.从Subversion安装目录将/bin/libdb*.dll和/bin/intl3_svn.dll复制到Apache的bin目录。

4.使用记事本之类的文本编辑器修改Apache的配置文件(通常是C:

\ProgramFiles\ApacheGroup\Apache2\conf\httpd.conf),做出如下修改:

去掉以下几行的注释(删除'#'标记):

#LoadModuledav_fs_modulemodules/mod_dav_fs.so

#LoadModuledav_modulemodules/mod_dav.so

将以下两行到LoadModule节的末尾。

LoadModuledav_svn_modulemodules/mod_dav_svn.so

LoadModuleauthz_svn_modulemodules/mod_authz_svn.so

四、配置

现在已经配置了Apache和Subversion,但是Apache不知道如何处理Subversion客户端,例如TortoiseSVN。

为了让Apache知道哪个URL是用作Subversion版本库,需要使用任意文本编辑器(例如记事本)编辑Apache的配置文件(通常是c:

\programfiles\apachegroup\apache2\conf\httpd.conf):

1.Attheendoftheconfigfileaddthefollowinglines:

2.

3.DAVsvn

4.SVNListParentPathon

5.SVNParentPathD:

\SVN

6.#SVNIndexXSLT"/svnindex.xsl"

7.AuthTypeBasic

8.AuthName"Subversionrepositories"

9.AuthUserFilepasswd

10.#AuthzSVNAccessFilesvnaccessfile

11.Requirevalid-user

12.

ThisconfiguresApachesothatallyourSubversionrepositoriesarephysicallylocatedbelowD:

\SVN.TherepositoriesareservedtotheoutsideworldfromtheURL:

http:

//MyServer/svn/.Accessisrestrictedtoknownusers/passwordslistedinthepasswdfile.

刚才输入的简短解释(表4.1设置Apache的httpd.conf):

设置

解释

意思是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

指定只有输入了正确的用户/密码的用户可以访问URL

五、多版本库

如果你使用SVNParentPath指示,你就不必在每次添加新Subversion版本库时修改Apache的配置文件,只需要在第一个版本库所在的位置建立新的版本库就可以了。

在我的公司,我可以使用SMB(普通的windows文件访问)直接访问服务器的文件夹,所以我直接在那里创建一个目录,运行TortoiseSVN命令TortoiseSVN→在此创建版本库...,然后一个新的项目建立了...

如果你使用Subversion1.3或更高版本,可以使用SVNListParentPathon指示,这样当你使用浏览器访问父路径而不是具体某个版本库时Apache就会显示所有版本库列表。

六、路径为基础的授权

mod_authz_svn模块可以根据用户名和路径实现细粒度的权限控制,它对Apache服务器有效,在Subversion1.3以上版本的svnserve中也实现了基于路径的授权。

举例:

[groups]

admin=john,kate

devteam1=john,rachel,sally

devteam2=kate,peter,mark

docs=bob,jane,mike

training=zak

#DefaultaccessruleforALLrepositories

#Everyonecanread,adminscanwrite,DanGermanisexcluded.

[/]

*=r

@admin=rw

dangerman=

#Allowdeveloperscompleteaccesstotheirprojectrepos

[proj1:

/]

@devteam1=rw

[proj2:

/]

@devteam2=rw

[bigproj:

/]

@devteam1=rw

@devteam2=rw

trevor=rw

#Givethedocpeoplewriteaccesstoallthedocsfolders

[/trunk/doc]

@docs=rw

#Givetraineeswriteaccessinthetrainingrepositoryonly

[TrainingRepos:

/]

@training=rw

请注意,检查每一条路径是一件消耗极大的操作,特别是修订版本日志,服务器会检查在每一个修订版本的每一条路径是否可读,对于影响很多文件的修订将会花费很多时间。

认证和授权是不同的处理过程,如果用户希望获得对版本库的访问,他需要通过全部检查,即通常的认证需求和访问控制文件的授权需求。

七、使用Windows域认证

需要为每个用户在passwd文件中创建用户名/密码条目,如果(因为安全原因)他们希望周期性的修改他们的密码,你需要手动的做出修改。

但是对于此问题有另一个解决方案-至少是你在使用域控制器的LAN中访问版本库时:

mod_auth_sspi!

最初的SSPI是由Syneapps提供的,包括源代码。

但是它的开发已经终止。

不过不要失望,社区重新拾起代码并进行了改进,它现在的新主页在SourceForge。

下载此匹配的Apache版本的模块,将文件mod_auth_sspi.so复制到Apache的modules目录。

编辑Apache的配置文件:

增加一行

LoadModulesspi_auth_modulemodules/mod_auth_sspi.so

到LoadModule节。

确认你在下行之前插入此行

LoadModuleauth_modulemodules/mod_auth.so

为了让Subversion领域使用此认证类型,你需要将

AuthTypeBasic

修改为

AuthTypeSSPI

并且在中增加

SSPIAuthOn

SSPIAuthoritativeOn

SSPIDomain

SSPIOmitDomainon

SSPIUsernameCaselower

SSPIPerRequestAuthon

SSPIOfferBasicOn

如果你没有域控制器,可以将域控制器的名称置为

当使用SSPI认证时,没有必要再使用AuthUserFile行定义密码文件,Apache使用Windows域验证你的用户名和密码,你需要更新svnaccessfile中的用户列表来引用DOMAIN\username。

重要

TheSSPIauthenticationisonlyenabledforSSLsecuredconnections(https).Ifyou'reonlyusingnormalhttpconnectionstoyourserver,itwon'twork.

ToenableSSLonyourserver,seethechapter:

“用SSL使服务器更安全”一节

提示

Subversion的AuthzSVNAccessFile文件对用户名大小写敏感(JUser与juser不同)。

在微软的世界,Windows域和用户名不是大小写敏感。

即使如此,一些网络管理员还是喜欢创建首字母大写的用户帐号(例如JUser)。

使用SSPI的一个问题是用户名和密码是用户在提示输入时发送到Subversion的,而IE经常会不管你的帐户是如何建立的都会自动发送你的用户名。

结果就是你必须为每个用户在AuthzSVNAccessFile中至少创建两个条目:

一个小写的条目和一个与IE传递给Apache一样的条目,你也需要训练你的用户在通过TortoiseSVN输入访问版本库的凭证时使用小写字母。

Apache的错误和访问日志是你最好的朋友,例如帮助你检测传递给Subversion的AuthzSVNAccessFile模块的用户名,你或许需要试验svnaccessfile中用户字符串的精确格式(例如DOMAIN\user还是DOMAIN//user)来使一切工作正常。

八、多重认证源

也可以为Subversion使用不止一个的认证源,为此,你需要将每一种认证设置为non-authoritative,这样Apache会在多个源检查用户名/密码。

一个常见的场景就是同时使用Windows域和passwd文件认证,这样你可以为没有Windows域帐户的用户提供访问SVN的权限。

ToenablebothWindowsdomainandpasswdfileauthentication,addthefollowingentrieswithintheblockofyourApacheconfigfile:

AuthBasicAuthoritativeOff

SSPIAuthoritativeOff

HereisanexampleofthefullApacheconfigurationforcombinedWindowsdomainandpasswdfileauthentication:

DAVsvn

SVNListParentPathon

SVNParentPathD:

\SVN

AuthName"Subversionrepositories"

AuthzSVNAccessFilesvnaccessfile.txt

#NTDomainLogins.

AuthTypeSSPI

SSPIAuthOn

SSPIAuthoritativeOff

SSPIDomain

SSPIOfferBasicOn

#HtpasswdLogins.

AuthTypeBasic

AuthBasicAuthoritativeOff

AuthUserFilepasswd

Requirevalid-user

九、用SSL使服务器更安全

1.安装需要东西,下面是我们要用到的,先下载下来:

1).apache_2.0.59-win32-x86-no_ssl.msi

2).Apache_2.0.59-Openssl_0.9.8b-Win32.zip  

3)f

2.相关安装:

直接安装apache_2.0.59-win32-x86-no_ssl.msi,用官方的这份安装文件的话,可以用monitor帮你装成Windows服务,这样就能设定开机时自动启动web服务器了。

安装时会要你填入相关的讯息,建议SeverName用IP地址。

同时也留意一下你把apache装在哪个目录下(比方说C:

Apache2,安装文件会生成Apache2文件夹,假如你安装在C:

下)。

如果你的apache服务已经启动(可以看右下角的工具列图示),请先将它stop,然后找个地方解开2,我们需要把解开后的bin目录下的Apache.exe、ssleay32.dll、libeay32.dll及openssl.exe放到你apache安装目录下的bin目录里,替换掉原本的apache.exe。

解压出来然后再将2解开后的conf目录下的ssl.conf也复制一份到你自己apache目录(如C:

Apache2)下的conf目录里。

还有modules目录下的mod_ssl.so也要放到apache目录下的modules目录里。

在Httpd.conf文件中找到#LoadModulessl_modulemodules/mod_ssl.so,把前面的#号删除。

3.配置ssl.conf文件:

在ssl.conf里找到下列这段叙述,然后把它改成你的设定:

(用文本编辑器,如记事本打开)

#Generalsetupforthevirtualhost

DocumentRoot"你的网页根目录,可以找httpd.conf文件下的DocumentRoot"

ServerName你的domainname或者直接用IP地址:

443

ServerAdmin你的Email地址,我就随便填的admin@TCLHN.com

ErrorLoglogs/error_log

TransferLoglogs/access_log

查看ssl.conf文件里是不是有这几行:

SSLCertificateFileconf/ssl.crt/server.crt

SSLCertificateKeyFileconf/ssl.key/server.key

SSLCertificateChainFileconf/ssl.crt/ca.crt

我这里是把ssl.conf里的及注解掉,这就要看你要不要再去httpd.conf里defineSSL了,嫌麻烦就注解掉。

4.生成证书文件:

我们要产生用SSL连接(HTTPS)时所需要加密的key及身份验证用的CA。

切换至Apache2的bin目录下,把f置其中。

把f文件拖到文本编辑器中打开,修改[CA_default]内的字段如下。

dir=ssl

certs=$dir\\certs

crl_dir=$dir\\crl

database=$dir\\index.txt

new_certs_dir=$dir

certificate=$dir\\cacert.pem

serial=$dir\\serial

crl=$dir\\crl.pem

private_key=$dir\\privkey.pem

RANDFILE=$dir\\privkey.rnd

还有别忘了把这个文件的x509extensions这一行在开头加上#把它注解掉。

然后在Apache2的bin目录下建立一个ssl资料夹,在里面新增两个文件:

index.txt及serial,index.txt让它保留空白即可,然后serial文件输入01。

然后在命令行模式下(「开始」->「运行」输入cmd,然后用cd指令切到Apache2的bin)依次输入下列命令:

1.生成CAprivatekey,它会要求你输入密码,记住了,以后还要用到。

opensslgenrsa-des3-outssl/ca.key1024

2.生成CArequirecert,按照它的说明填入对应资料

opensslreq-configf-new-keyssl/ca.key-outssl/ca.csr

3.生成CApubliccert.

opensslx509-days3650-req-signkeyssl/ca.key-inssl/ca.csr-outssl/ca.crt

4.生成Serverprivatekey

opensslgenrsa-outssl/server.key1024

5.生成Serverrequirecert,这里跟上面填入相同的资料

opensslreq-configf-new-keyssl/server.key-out ssl/server.csr

6.生成Serverpublickey

opensslca-configf-days3650-certssl/ca.crt-keyfilessl/ca.key-inssl/server.csr-outssl/server.crt

注意:

在上边两步填写资料时,CommonName(eg,yourwebsitesdomainname)[]要填的和httpd.conf中的一样,否则会出错,在Apach

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2