<-
Apache HTTP 服务器 2.4 > 为Microsoft Windows编译Apache

为Microsoft Windows编译Apache

在开始编译Apache HTTP Server(httpd)之前,需要考虑许多重要点。开始之前,请参阅在Microsoft Windows上使用Apache HTTP Server

可以使用基于cmake的构建系统在Windows上构建httpd,也可以使用httpd开发人员维护的Visual Studio项目文件构建httpd。基于cmake的生成系统直接支持Visual Studio的更多版本,但当前具有相当大的功能限制。

支持Apache!

也可以看看

最佳

使用随附的Visual Studio项目文件构建httpd

要求

编译Apache需要正确安装以下环境:

从Unix源码构建

Apache HTTP Server项目的策略是仅发布Unix源。可供下载的Windows源软件包已由志愿者提供,可能并非每个版本都可用。您仍然可以通过Unix源tarball在Windows上构建服务器,仅需执行几个附加步骤。

  1. 下载并解压缩最新版本的Unix源tarball。
  2. 下载并解压缩最新版本的APR,AR-Util和APR-Iconv的Unix源tarball,并将这些源放在目录httpd-2.xx \ srclib \ apr,httpd-2.xx \ srclib \ apr-util和httpd- 2.xx \ srclib \ apr-iconv
  3. 打开命令提示符并CD到httpd-2.xx文件夹
  4. 在提示符下运行行尾转换实用程序;

perl srclib\apr\build\lineends.pl

现在,您可以使用IDE在Visual Studio开发环境中构建服务器。除非您按照以下说明导出.mak文件,否则无法从Unix源进行服务器的命令行构建。

命令行构建

Makefile.win是顶级Apache Makefile。要在Windows上编译Apache,只需使用以下命令之一来构建releaseor debug风味:

nmake /f Makefile.win _apacher

nmake /f Makefile.win _apached

这两个命令都将编译Apache。后者将禁用对结果文件的优化,从而使单步执行代码查找错误和查找问题更加容易。

您可以使用其他make(环境)变量DBD_LIST和DBM_LIST添加apr-util dbd和dbm提供程序选项,请参见上面有关[Optional]数据库库的注释。查看Makefile.win中的初始注释,以获取调用构建时可以提供的其他选项。

Developer Studio Workspace IDE构建

还可以使用VC ++的Visual Studio开发环境来编译Apache。为了简化此过程,提供了Visual Studio工作区Apache.dsw。该工作空间.dsp 提供了完整的Apache二进制发行版所需的全部工作项目列表。它包括项目之间的依赖关系,以确保它们以适当的顺序构建。

打开Apache.dsw工作区,然后选择 InstallBinReleaseDebug根据需要构建)作为“活动项目”。InstallBin导致所有相关项目被构建,然后调用Makefile.win以移动已编译的可执行文件和dll。您可以INSTDIR=通过更改InstallBin的设置,常规标签,构建命令行条目来个性化 选择。INSTDIR默认为 /Apache2目录。如果只希望测试编译(不安装),则可以构建BuildBin项目。

.dsp项目文件分布在Visual Studio 6.0(98)格式。Visual C ++ 5.0(97)将识别它们。Visual Studio 2002(.NET)和更高版本的用户必须将Apache.dsw加号.dsp文件转换为Apache.sln加号 .msproj文件。.msproj 如果源.dsp文件更改,请确保再次重新转换文件!这真的很简单,只需Apache.dsw再次在VC ++ 7.0 IDE中打开并重新转换即可。

.dsp文件的.vcproj转换中存在缺陷。对于包含长引号/ D'efines且包含空格的RC标志,devenv.exe将误解析/ D标志。命令:

perl srclib\apr\build\cvtdsp.pl -2005

会将/ D标志转换为RC标志,以使用其他可解析语法;不幸的是,Visual Studio 97或其导出的.mak文件不支持此语法。这些/ D标志用于将对mod_apachemodule.so文件的详细说明传递到共享的.rc资源版本标识符版本。
使用OpenSSL 1.1.0及更高 版本进行构建由于从版本1.1.0开始的OpenSSL的构建结构不同,您将需要将受cvtdsp.pl影响的dsp文件转换为APR 1.6或更高版本。命令:

perl srclib\apr\build\cvtdsp.pl -ossl11

的Visual Studio 2002(.NET)和更高版本的用户也应该使用Build菜单,配置管理器对话框中取消选中这两个DebugRelease解决方案的模块absmod_deflatemod_ssl组件,以及每个组件开始apr_db*。这些模块是通过调用nmake或由IDE直接与BinBuild目标构建的,如果srclib目录openssl和/或 目录zlib存在,则 目标根据条件DBD_LISTDBM_LIST环境变量的设置有条件地构建这些模块。

导出命令行.mak文件

导出的.mak文件带来了更大的麻烦,但是Visual C ++ 5.0用户需要使用它们来构建mod_ssl,abs(ab具有SSL支持)和/或 mod_deflate。.mak文件还支持更广泛的C ++工具链发行版,例如Visual Studio Express。

必须首先构建所有项目才能创建所有动态自动生成的目标,以便可以正确解析依赖项。使用BuildAll目标从Visual Studio 6.0(98)IDE内构建整个项目,然后对所有makefile使用“项目菜单导出”(选中“ withdepends”)。运行以下命令将绝对路径更正为相对路径,以便它们将建立在任何地方:

perl srclib\apr\build\fixwin32mak.pl

您必须从 httpd源树的顶级目录中键入此命令。当前目录及以下目录中的每个 文件.mak.dep项目文件都将得到更正,并调整时间戳以反映.dsp

务必查看生成的.mak,并.dep 为平台SDK或其他地方,该机的具体文件路径的文件。在DevStudio\Common\MSDev98\bin\(VC6)目录包含一个sysincl.dat文件,该文件列出了所有的异常。更新此文件(包括正斜杠和反斜杠路径,例如 sys/time.hsys\time.h),以忽略此类较新的依赖项。在分布式.mak文件中包含本地安装路径 将导致构建完全失败。

如果您提供修改项目文件的补丁,则我们必须以Visual Studio 6.0格式提交项目文件。更改应该很简单,并且所有Visual Studio环境都可以识别出最少的编译和链接标志。

安装

编译Apache之后,需要将其安装在其服务器根目录中。默认值为\Apache2同一驱动器的 目录。

要将所有文件自动生成并安装到所需的文件夹 dir中,请使用以下 nmake命令之一:

nmake /f Makefile.win installr INSTDIR=dir
nmake /f Makefile.win installd INSTDIR=dir

目录参数INSTDIR提供的安装目录; 如果要\Apache22在当前驱动器的Apache中安装Apache,则可以省略。

关于从开发树构建Apache的警告

请注意,只有.dsp文件在release 两次构建之间维护。该.mak文件不进行再生,由于审阅者的时间极大的浪费。因此,除非您自己从项目中导出所有文件,否则您不能依靠上述NMAKE 命令来构建修订的.dsp项目文件.mak。如果您在Microsoft Developer Studio环境中进行构建,则没有必要。
最佳

用cmake构建httpd

此构建机制的主要文档README.cmake在源代码分发的 文件中。请参阅该文件以获取详细说明。

使用cmake构建httpd需要分别构建APR和APR-util。README.cmake有关说明,请参阅其文件。

基于cmake的构建的主要限制是从APR-util项目继承的,由于它们对httpd的影响,下面列出了这些限制:

可用语言: zh  |  fr  |  KO 

最佳

注释

注意:
这不是“问答”部分。此处放置的评论应指向有关改进文档或服务器的建议,如果实施或被认为无效/偏离主题,我们的主持人可以将其删除。有关如何管理Apache HTTP Server的问题,应直接指向我们的IRC频道#httpd(位于Freenode上),或发送至我们的邮件列表
目前,此页面已禁用评论。