关闭

关闭

关闭

封号提示

内容

首页 在Microsoft Windows中使用Apache - Apache 2

在Microsoft Windows中使用Apache - Apache 2.pdf

在Microsoft Windows中使用Apache - Ap…

1mL卡路里 2013-10-22 评分 0 浏览量 0 0 0 0 暂无简介 简介 举报

简介:本文档为《在Microsoft Windows中使用Apache - Apache 2pdf》,可适用于游戏领域,主题内容包含<<BacktomanChinaUnixnetApacheHTTPServer版本  致谢|本篇译者:金步国(其他作品)|本页最后更新:年月日查看最符等。

<<BacktomanChinaUnixnetApacheHTTPServer版本  致谢|本篇译者:金步国(其他作品)|本页最后更新:年月日查看最新版本|电信镜象|网通镜象|教育网镜象在MicrosoftWindows中使用Apache此文档阐述了如何在MicrosoftWindows平台上安装、配置和运行Apache。如果你发现了bug或者希望以其他方式作出贡献请使用我们的bug报告页面(http:httpdapacheorgbugreporthtml)。本文档的大多数内容假定你是从一个二进制发布版安装Apache到Windows上。如果你想自己编译Apache(可能有助于开发和跟踪bugs)参看编译Windows下的Apache(wincompilinghtml)。基于当前的Windows版本状况本文档使用到的缩写及其意义解释包括:WindowsNT:指所有基于NT核心的MicrosoftWindows操作系统的版本包括WindowsNT,Windows,WindowsXP,WindowsNETServer及后续版本。Windowsx:指所有定位于家庭使用的MicrosoftWindows操作系统的版本包括Windows,Windows,WindowsME。对操作系统的要求Apache被设计为在WindowsNT上运行。它的二进制安装程序只能在x处理器上运行比如Intel和AMD的芯片。Apache可能也能够运行在Windowsx上但是并没有经过测试也不建议在实际工作的系统上这样使用。任何情况下都必须确保TCPIP网络协议已经安装。如果在Windows上运行必须安装"Winsock"升级补丁。"Winsock"forWindows可以在这里(http:wwwmicrosoftcomwindowsdownloadscontentsWUAdminToolsSWUNetworkingToolsWSocketsDefaultasp)下载。如果在NT上运行建议安装ServicePack因为ServicePack有众所周知的TCPIP和Winsock完整性的问题在以后的ServicePack中解决了这些问题。下载ApacheforWindows关于Apache最新版本的有关信息可以在http:httpdapacheorgdownloadcgi(http:httpdapacheorgdownloadcgi)上找到。那里会列出当前发行版本、所有最近的alpha和beta测试版本以及镜像web站点和匿名ftp服务器的信息。你应该下载带有msi扩展名的ApacheforWindows版本。这是一个单一的MicrosoftInstaller文件包含了Apache可以立即安装并运行。还有一个单独的zip文件只打包了源码可以用MicrosoftVisualC(VisualStudio)工具来编译。安装ApacheforWindowsApache的安装需要有MicrosoftInstaller或更高版本。在Windowsx中你可以从这里(http:wwwmicrosoftcomdownloadsreleaseaspReleaseID=)升级MicrosoftInstaller到在WindowsNT和中的升级版在这里(http:wwwmicrosoftcomdownloadsreleaseaspReleaseID=)。WindowsXP不需要这个升级。注意使用这个安装包不能在同一个机器上安装两套Apache。但是在同一个机器上安装一个系列和一个系列的Apache则没有问题。如果你需要在同一个机器上安装两套不同的版本则必须用代码编译和安装Apache(wincompilinghtml)运行已下载的上述Apachemsi文件。安装程序会要求提供下列信息:NetworkDomain你的服务器已经或者将要注册的DNS域名。比如你的服务器的全称DNS域名是servermydomainnet你应当在这里输入:mydomainnet在MicrosoftWindows中使用Apache-Apache中文版参考手册http:manchinaunixnetnewsoftApacheMenualCNnew第页共页:ServerName你的服务器的全称DNS域名如上情况你应当在这里输入:servermydomainnetAdministrator'sEmailAddress服务器管理员的email地址。这个地址将会在默认的出错页面上显示给客户端。ForwhomtoinstallApache如果你希望Apache在端口监听并被安装为服务(即使无人登陆Apache仍将运行)就选择"forAllUsers,onPort,asaServiceRecommended"如果你希望将Apache安装为个人试验使用或者已经有一个运行于端口的WWW服务器就选择"onlyfortheCurrentUser,onPort,whenstartedManually"。Theinstallationtype选择Typical会安装除开发模块需要使用的源码和库以外的所有内容。选择Custom可以自定义安装哪些项目。完整安装大约需要MB磁盘空间这其中并不包含你的网站文件所用空间。Wheretoinstall安装Apache的文件夹默认为C:ProgramFilesApacheGroup文件夹下的Apache子文件夹。安装期间Apache将会配置你所选择的安装目录下的conf文件夹中的文件。但是如果那个目录下已有同名文件存在原有文件将不会被覆盖而相应的新文件将会被加上default扩展名。所以举例来说如果confhttpdconf已经存在那么不会对它做任何改变而新版本confhttpdconf的内容将会被写入文件confhttpdconfdefault。安装完成以后你应该检查default文件中的内容看看有没有不同如果必要更新你原有的配置文件。而且如果你已经有一个名为htdocsindexhtml的文件它不会被覆盖掉(也不会安装indexhtmldefault文件)。这意味着你在一个旧版本Apache上安装新版本是安全的(但是你必须在安装之前首先停掉原有服务器然后在安装完成后重新启动它)。安装Apache以后你应该编辑conf目录下的配置文件。这些文件已在安装期间被配置好以便Apache能够从安装目录运行文档目录被配置为安装目录下的子目录htdocs。在你开始真正使用之前还有很多选项需要设置。但是为了尽快开始可以使用安装时自动配置的配置文件。配置ApacheforWindows与Unix系统下的版本一样Apache使用conf目录下的文件进行配置但是Windows版本有几个不同的指令参见指令索引(moddirectiveshtml)察看全部可用指令。ApacheforWindows主要的不同点是:因为ApacheforWindows是多线程的它并不像Unix版本那样为每个请求使用一个单独的进程。而是通常运行两个Apache进程:一个父进程和一个处理请求的子进程。在子进程内部由多个单独的线程来处理每个请求。因此与进程管理相关的指令是不同的:MaxRequestsPerChild就像Unix版本中的指令一样这条指令控制一个进程退出前将为多少个请求提供服务。然而与Unix不同的是一个进程将为所有请求而不是只为一个请求服务因此如果设置这条指令建议将它设为一个很大的值。默认设置MaxRequestsPerChild使得进程从不退出。警告:启动新的子进程时将会重新读入服务器配置文件。如果你修改了httpdconf新的子进程将有可能不能启动或者可能得到预期之外的结果。ThreadsPerChild是一条新的指令用来告诉服务器应该使用多少个线程指明了服务器可以立刻处理的最大连接数如果你的站点有大量的点击请确认你设置了足够大的值。推荐的默认设置是ThreadsPerChild。接收文件名作为参数的指令必须使用Windows文件名而不是Unix文件名。但是因为Apache内部使用Unix风格的名字你必须使用正斜杠而不是反斜杠。可以使用盘符如果省略盘符将假定使用Apache可执行文件所在盘符。ApacheforWindows具有运行时装入模块的能力不需要重新编译。如果Apach在正常情况下编译它会在Apachemodules目录下安装许多可选模块。要激活它们或其他模块必须使用新的LoadModule指令。举例来说要激活状态模块使用下列指令(除了accessconf中的状态激活指令在MicrosoftWindows中使用Apache-Apache中文版参考手册http:manchinaunixnetnewsoftApacheMenualCNnew第页共页:以外):LoadModulestatusmodulemodulesmodstatusso也可使用创建可加载模块(modmodsohtml#creating)中的信息。Apache也可以加载ISAPI(InternetServerApplicationsProgrammingInterface)扩展例如被MicrosoftIIS服务器和其他一些Windows服务器所使用的。这里有更多相关信息(modmodisapihtml)。注意Apache不能加载ISAPI过滤器。当运行CGI脚本时Apache查找脚本解释器是由ScriptInterpreterSource指令配置的。由于在Windows下管理具有像htaccess这样名字的文件是很困难的你会发现在配置文件中使用AccessFilename指令改变它的文件名是很有用的。在WindowsNT上Apache启动时发生的错误将会记入Windows事件日志(eventlog)。这个机制将在Apache尚不能使用errorlog文件的时候运作。你可以通过"事件查看器"的MMC接口查看Windows事件日志。注意在Windowsx上不存在事件日志机制因此无法记录启动错误。以服务方式运行ApacheforWindowsApache仅能够在WindowsNT上作为服务运行。你可以选择在安装Apache时自动将其安装为一个服务。如果你选择"forallusers"那么Apache将会被安装为服务。如果你选择了"onlyfortheCurrentUser"你可以在安装后手动将Apache注册为服务。注意你必须是Administrators组的成员才能成功注册服务。使用ApacheServiceMonitor工具可以查看和管理你所在网络上的所有机器上安装的Apache服务的状态。为了能够使用这个工具管理Apache服务你必须首先自动或手动安装Apache服务。你可以在Apache安装目录的bin子目录下使用如下命令将Apache安装为WindowsNT服务:apachekinstall如果你想指定服务的名称可以使用下面的命令。当你在同一机器上安装多个Apache服务时你必须为它们指定不同的名字。apachekinstalln"服务名"如果你想为不同名称的服务使用不同的配置文件则安装时需要指定配置文件:apachekinstalln"服务名"f"c:filesmyconf"如果你使用的是第一个命令也就是除kinstall外没有其它命令行参数那么被安装的服务名称将是:Apache配置文件将使用confhttpdconf。要移除一个Apache服务很简单:apachekuninstall或者使用下述命令移除特定名称的Apache服务:apachekuninstalln"服务名"通常启动、重启、关闭Apache服务的方法是使用ApacheServiceMonitor工具另外也可以使用控制台命令:NETSTARTApache和NETSTOPApache或者通过Windows服务控制面板。在启动Apache服务之在MicrosoftWindows中使用Apache-Apache中文版参考手册http:manchinaunixnetnewsoftApacheMenualCNnew第页共页:前你应当使用下面的命令检查一下配置文件的正确性:apachen"服务名"t你可以通过命令行开关来控制Apache服务。要启动一个已经安装的Apache服务可以使用:apachekstart要停止一个已经安装的Apache服务可以使用:apachekstop或apachekshutdown要重启一个运行中的Apache服务强制它重新读取配置文件可以使用:apachekrestart默认情况下Apache服务将被注册为以本地系统用户(LocalSystem帐号)身份运行。LocalSystem帐号没有网络权限不能通过任何Windows安全机制访问网络包括文件系统、命名管道、DCOM或secureRPC但是它对于本地资源却拥有广泛的特权。永远不要把网络权限授予LocalSystem帐号!如果你需要Apache能够访问网络资源最好按照下述方法为Apache另外建立一个单独的帐号。你应该建立一个单独的帐号来运行Apache服务。特别是在必须通过Apache访问网络资源的时候我们更加强烈建议你这样做。创建一个普通域用户帐号并牢记对应的密码。授予这个新建的帐号作为服务登陆和作为操作系统一部分运行权限。在WindowsXP上你可以使用"组策略"或通过"本地安全策略"的MMC接口来完成这个操作。确认新建的帐号是Users组的一个成员。确认新建的帐号具有读取和执行(RX)所有文档和脚本目录(例如:htdocs和cgibin)的权限。确认新建的帐号对Apache的logs目录具有读写删除(RWD)的权限。确认新建的帐号对Apacheexe二进制文件具有读取和执行(RX)的权限。一个很好的实践经验是赋予运行Apache服务的用户读取和执行(RX)整个Apache目录的权限并且对logs子目录具有读写删除(RWD)的权限。如果你允许使用这个帐号作为一个用户和服务登录你就可以用这个帐号登录上去测试执行脚本、读取web页的权限还可以通过控制台窗口启动Apache。如果这样工作正常你又执行了上述的操作那么Apache就能够正常地作为服务运行了。错误代码是一个很好的提示说明你需要检查"登陆为"选项因为服务器不能访问必要的网络资源。当启动Apache服务时你可能会遇到一个来自Windows服务管理器的错误信息。例如如果你想使用控制面板中的服务小程序启动Apache可能会得到下面这条信息:CouldnotstarttheApacheserviceonCOMPUTERErrorTheprocessterminatedunexpectedly在MicrosoftWindows中使用Apache-Apache中文版参考手册http:manchinaunixnetnewsoftApacheMenualCNnew第页共页:只要启动Apache出错你就会得到这个错误信息。为了弄清是什么引起了错误你应该遵循作为控制台程序运行Apache(#wincons)中的建议。对于让Apache在Windowsx下以类似WindowsNT服务的方式运行有一些支持。都是高度试验性的即使能够工作Apache软件基金会将不会证实其可靠性和未来的支持。继续进行你自己的冒险吧!这两种"服务"有相当大的区别:如果你输入下列命令Apache会尝试启动如果成功他将在后台运行:Apachen"服务名"kstart例如通过桌面的快捷方式运行如果服务启动成功一个控制台窗口会快速闪过并立刻消失。如果启动时Apache检测到比如httpdconf文件中有不正确的设置这样的问题则控制台窗口会保持可见。这样将显示一个有助于追踪错误原因的错误信息。Windowsx不支持NETSTART或者NETSTOP命令因此你在命令中必须使用Apache的服务控制选项。你可能希望为每个命令设置一个快捷方式以便你能够只需要从开始菜单或者桌面一点就能执行所需的操作。Apache和Windowsx没有提供让Apache服务以特定的具有网络权限的用户身份运行的支持。实际上Windowsx在本地机器上根本没有提供安全性。这就是Apache软件基金会从不支持使用Windowsx作为公用httpd服务器的原因。这个便利存在的唯一目的是协助用户开发web内容和学习Apache服务器或者也许在一个安全的、私有的网络上充当intranet服务器。作为控制台程序运行Apache虽然通常推荐将Apache作为服务来运行但是在某些情况下从命令行运行反而更加容易。在Windowsx上从命令行运行Apache是推荐的方法因为这些系统中缺乏可靠的服务支持。可以使用下列命令将Apache作为控制台程序从命令行运行:apacheApache将会一直保持运行直到被CtlC组合键中断。你还可以在安装后通过开始按钮>程序>ApacheHTTPServerxx>ControlApacheServer在控制台中运行Apache。这将会打开一个控制台窗口并在其中启动Apache。如果你没有将Apache安装为服务该窗口将一直保持打开直到被CtlC组合键中断并在几秒钟后退出。如果你已经将Apache安装为服务那么那个快捷方式将会启动服务如果Apache服务已经启动了则什么也不做。你可以在另外一个控制台窗口中输入以下命令停止正在运行的Apache服务:apachekshutdown这种方法比使用CtlC组合键更好因为它可以让Apache完成所有当前的操作并且优雅的清理所占用的资源。Apache可以被从新启动这将导致它重新读取配置文件重启前所有正在进行的操作都将不被打断的完成。可以使用下面的命令重启Apache:apachekrestart请熟悉Unix版本Apache的用户注意这些命令对应于Unix命令killTERMpid和killUSRpid。命令中之所以使用k选项就是为了提醒用户这是源自Unix下的kill命令。如果Apache控制台窗口在启动后出乎意料的立即关闭请打开一个新的控制台窗口切换到Apache的安装目录下bin子目录中运行apache命令并读取错误信息。然后再到日志目录中查看errorlog文件以寻找可能的配置错误。如果你的Apache采用的是默认安装这些命令应当是:c:在MicrosoftWindows中使用Apache-Apache中文版参考手册http:manchinaunixnetnewsoftApacheMenualCNnew第页共页:cd"ProgramFilesApacheGroupApachebin"apache等候Apache停止或者使用CtlC组合键然后输入下列内容:cdlogsmore<errorlog可以在命令行中为Apache指定一个配置文件有两种方法可以在命令行中指定配置文件:f可以指定一个绝对路径或相对路径的配置文件:apachef"c:myserverfilesanotherconfigconf"或apacheffilesanotherconfigconfn可以指定已安装的Apache服务所使用的配置文件:apachen"服务名"在这两种情况下必须在配置文件中设置正确的ServerRoot值。如果你没有使用f或n指定配置文件的路径Apache将会使用硬编码在服务器内的路径比如:confhttpdconf。这个内置的路径是相对于安装目录的要想检查这个内置的路径你可以通过V开关调用Apache查看名为SERVERCONFIGFILE的变量值:apacheVApache将会按照下列顺序检查ServerRoot值:通过C命令行开关指定的ServerRoot值。通过d命令行开关指定的值。当前工作目录。安装二进制文件时在注册表中登记的项目。编译进二进制文件的值该值默认为:apache你可以使用apacheV命令查看显示出来的HTTPDROOT变量的值。在安装过程中将会在注册表中新建一个版本特定的注册表键。这个键的位置取决于安装类型。如果你选择的是"forallusers"那么将位于HKEYLOCALMACHINE分支下如下所示:HKEYLOCALMACHINESOFTWAREApacheGroupApache如果你选择的是"forthecurrentuseronly"那么将位于HKEYCURRENTUSER分支下其中的内容取决于当前登陆的用户如下所示:HKEYCURRENTUSERSOFTWAREApacheGroupApache这个键已经被编译进了服务器使得你可以测试新版本而又不影响老版本。当然你必须注意不要在同一个目录中安装两个不同的版本。如果你没有使用二进制安装在某些情况下Apache将会抱怨注册表键丢失。如果在这种情况下服务器仍然可以找到正确的配置文件那么就可以安全的忽略它。这个注册表键其实就是包含conf子目录的ServerRoot目录。Apache将要从中读取httpdconf文件。如果在MicrosoftWindows中使用Apache-Apache中文版参考手册http:manchinaunixnetnewsoftApacheMenualCNnew第页共页:该配置文件中又包含了一个ServerRoot指令并且指向的目录与注册表中登记的不同Apache将以配置文件中的指令为准。如果你复制了配置文件或者整个Apache目录到一个新的位置你要千万记得修改httpdconf中的ServerRoot指令使其指向正确的位置。安装的测试启动Apache运行以后(不管是控制台窗口还是作为服务)它会在端口上进行监听(除非你改变了配置文件中的Listen指令。要连接到服务器访问默认页面启动一个浏览器并输入下列URL:http:localhost应该出现一个欢迎页面并且页面上有到Apache用户手册的链接。如果什么都没有发生或是得到了一个错误检查logs子文件夹中的errorlog文件。如果你的主机没有联网或者DNS配置有严重问题你也许需要输入这样的URL:http:如果你将Apache配置为在非端口监听(比如:)你应当使用下面的URL明确指定端口:http::一旦你的基本配置可以工作了你应该编辑conf目录下的文件来恰当地配置Apache。此外如果你改变了作为NT服务运行的Apache的配置你应该首先尝试从命令行启动来保证能够正确地启动Apache服务。因为Apache不能与其他TCPIP应用程序共享同一端口你可能需要先停止或者卸载或者重新配置某些特定的服务。这包括(但不限于)别的web服务器和BlackIce那样的防火墙。如果你只能在禁止其他服务的情况下启动Apache那么需要重新配置Apache或者其他程序使它们不监听同一个TCPIP端口。本文允许自由使用、分发、转载但必须保留译者署名详见:译者声明。在MicrosoftWindows中使用Apache-Apache中文版参考手册http:manchinaunixnetnewsoftApacheMenualCNnew第页共页:

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +1积分

资料评分:

/7
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部

举报
资料