<-
Apache HTTP 服务器 2.4 > 编译安装

编译安装

本文档仅涵盖Unix和类似Unix的系统上Apache HTTP Server的编译和安装。有关在Windows上进行编译和安装的信息,请参阅将Apache HTTP Server与Microsoft Windows一起使用为Microsoft Windows编译Apache。对于其他平台,请参阅平台文档。

Apache httpd使用libtoolautoconf 创建类似于许多其他开源项目的构建环境。

如果要从一个次要版本升级到另一个(例如,从2.4.8 升级到2.4.9),请跳至升级部分。

支持Apache!

也可以看看

最佳

急躁的概述

在Fedora / CentOS / Red Hat Enterprise Linux上安装
sudo yum install httpd
sudo systemctl enable httpd
sudo systemctl start httpd
这些发行版的较新版本使用 dnf而不是yum。有关特定于平台的说明,请参阅Fedora项目的文档
在Ubuntu / Debian上安装
sudo apt install apache2
sudo service apache2 start
有关平台特定的说明,请参见Ubuntu文档
从源安装
下载 http://httpd.apache.org/download.cgi下载最新版本
提取 $ gzip -d httpd-NN.tar.gz
$ tar xvf httpd-NN.tar
$ cd httpd-NN
配置 $ ./configure --prefix=PREFIX
编译 $ make
安装 $ make install
定制 $ vi PREFIX/conf/httpd.conf
测试 $ PREFIX/bin/apachectl -k start

NN必须替换为当前版本号,并且PREFIX必须替换为应在其下安装服务器的文件系统路径。如果 未指定PREFIX,则默认为 /usr/local/apache2

从编译和安装Apache httpd的要求开始,下面将更详细地描述编译和安装过程的每个部分。

在这里看不到您喜欢的平台吗?快来帮助我们改进此文档。
最佳

要求

构建Apache httpd存在以下要求:

APR和APR-Util
确保已在系统上安装APR和APR-Util。如果不这样做,或者宁愿不要使用系统提供的版本,同时下载APR和APR-的Util从最新版本的Apache APR,解开他们进入/httpd_source_tree_root/srclib/apr/httpd_source_tree_root/srclib/apr-util (确保目录名称不具有版本号;例如,则APR分发必须位于/ httpd_source_tree_root / srclib / apr /)下,并使用 ./configure--with-included-apr 选项。在某些平台上,您可能必须安装相应的-dev程序包,以允许httpd针对已安装的APR和APR-Util副本进行构建。
Perl兼容的正则表达式库(PCRE)
该库是必需的,但不再与httpd捆绑在一起。从http://www.pcre.org下载源代码,或安装端口或软件包。如果您的构建系统找不到PCRE构建安装的pcre-config脚本,请使用--with-pcre参数指向它。在某些平台上,您可能必须安装相应的-dev 软件包,以允许httpd根据已安装的PCRE副本进行构建。
磁盘空间
确保您至少有50 MB的可用临时磁盘空间。安装后,服务器大约占用10 MB的磁盘空间。实际的磁盘空间要求将根据您选择的配置选项,任何第三方模块以及服务器上的一个或多个网站的大小而有很大不同。
ANSI-C编译器和构建系统
确保已安装ANSI-C编译器。在GNU C编译器(GCC)自由软件基金会(FSF) 的建议。如果您没有GCC,则至少要确保供应商的编译器符合ANSI。此外,您PATH必须包含基本的构建工具,例如make
精确计时
HTTP协议的元素表示为一天中的时间。因此,是时候研究在系统上设置一些时间同步功能了。通常 基于网络时间协议(NTP)来使用ntpdatexntpd程序。有关NTP软件和公共时间服务器的更多详细信息,请参见NTP主页
Perl 5 [可选]
对于某些支持脚本,例如apxsdbmmanage(用Perl编写),则需要Perl 5解释器(版本5.003或更高版本已足够)。如果configure脚本未找到Perl 5解释器 ,则将无法使用受影响的支持脚本。当然,您仍然可以构建和使用Apache httpd。
最佳

下载

可以从Apache HTTP Server下载站点下载Apache HTTP Server,该站点列出了多个镜像。在类似Unix的系统上使用Apache的大多数用户,最好下载并编译源代码版本。构建过程(如下所述)很容易,它使您可以自定义服务器以满足自己的需要。另外,二进制版本通常不是最新的源版本。如果您确实下载了二进制文件,请按照INSTALL.bindist发行版中文件中的说明进行操作。

下载后,重要的是要验证您是否具有完整且未修改的Apache HTTP Server版本。这可以通过针对PGP签名测试下载的tarball来完成。下载页面上提供了有关如何执行此操作的详细信息,并提供了描述PGP用法的扩展示例。

最佳

提取

从Apache HTTP Server压缩包中提取源代码是一个简单的解压缩过程,然后解压缩:

$ gzip -d httpd-NN.tar.gz
$ tar xvf httpd-NN.tar

这将在当前目录下创建一个新目录,其中包含分发的源代码。cd在继续编译服务器之前,应先 进入该目录。

最佳

配置源树

下一步是为您的特定平台和个人需求配置Apache源代码树。这是使用configure发行版根目录中包含的脚本完成的。(开发人员必须下载并下载未发布版本的Apache源代码树 autoconflibtool并且buildconf在继续下一步之前,它们必须能够运行。对于正式发行版,这不是必需的。)

要使用所有默认选项配置源树,只需键入./configure。要更改默认选项,请configure接受各种变量和命令行选项。

最重要的选项是--prefix 以后要安装Apache 的位置,因为必须配置Apache才能使该位置正常工作。使用其他配置选项,可以对文件的位置进行更精细的控制。

同样在这一点上,您可以通过启用和禁用模块来指定要包含在Apache中的功能。Apache默认随附了多种模块。它们将被编译为 共享对象(DSO),可以在运行时加载或卸载。您也可以使用option选择静态编译模块 。--enable-module=static

使用选项启用其他模块 ,其中 module是删除字符串的模块名称, 并且所有下划线都转换为破折号。同样,您可以使用该选项禁用模块 。使用这些选项时要小心,因为如果您指定的模块不存在,则不会发出警告。它只会忽略该选项。--enable-modulemod_--disable-moduleconfigure

另外,有时有必要向 configure脚本提供有关编译器,库或头文件的位置的其他信息。这可以通过将环境变量或命令行选项传递到来完成configure。有关更多信息,请参见 configure手册页。或configure使用--help选项调用 。

为了简短地了解您所拥有的可能性,下面是一个典型示例,该示例/sw/pkg/apache使用特定的编译器和标志以及两个附加模块mod_ldap和 来为安装树编译Apache mod_lua

$ CC="pgcc" CFLAGS="-O2" \
./configure --prefix=/sw/pkg/apache \
--enable-ldap=shared \
--enable-lua=shared

configure运行时,将需要几分钟的时间来测试系统上功能的可用性,并生成Makefile文件,这些文件随后将用于编译服务器。

手册页configure上提供了所有不同选项的详细信息configure

最佳

建立

现在,您只需运行以下命令即可构建构成Apache软件包的各个部分:

$ make

在这里请耐心等待,因为基本配置需要花费几分钟的时间进行编译,而且时间会因硬件和启用的模块数量而异。

最佳

安装

现在是时候通过运行以下命令在配置的安装PREFIX(请参见--prefix上面的选项)下安装软件包:

$ make install

由于PREFIX通常是具有受限写许可权的目录,因此此步骤通常需要root特权 。

如果要升级,安装将不会覆盖您的配置文件或文档。

最佳

定制

接下来,您可以通过编辑自定义您的Apache HTTP服务器的配置文件PREFIX/conf/

$ vi PREFIX/conf/httpd.conf

请查看下面的Apache手册, PREFIX/docs/manual/或访问http://httpd.apache.org/docs/2.4/获取本手册的最新版本以及可用配置指令的完整参考。

最佳

测试

现在,您可以通过立即运行以下命令来启动 Apache HTTP服务器:

$ PREFIX/bin/apachectl -k start

然后,您应该能够通过URL请求第一个文档http://localhost/。您看到的网页位于下方DocumentRoot,通常为PREFIX/htdocs/。然后通过运行再次停止服务器:

$ PREFIX/bin/apachectl -k stop

最佳

升级中

升级的第一步是阅读发行公告和CHANGES源代码分发中的文件,以查找可能影响您网站的任何更改。在主要版本之间进行更改时(例如,从2.0到2.2或从2.2到2.4),在编译时和运行时配置中可能会存在重大差异,需要手动调整。还需要升级所有模块,以适应模块API中的更改。

从一个次要版本升级到下一个版本(例如,从2.2.55升级到2.2.57)更加容易。该make install 过程不会覆盖您现有的任何文档,日志文件或配置文件。此外,开发人员会尽一切努力避免configure在次要版本之间对选项,运行时配置或模块API进行不兼容的更改 。在大多数情况下,您应该能够使用相同的configure命令行,相同的配置文件,并且所有模块都应继续工作。

要跨次要版本进行升级,请首先config.nicebuild已安装服务器的目录中或旧安装的源树的根目录中找到文件 。这将包含configure您用来配置源代码树的确切 命令行。然后,要从一个版本升级到另一个版本,只需将config.nice文件复制到新版本的源树中,对其进行编辑以进行所需的更改,然后运行:

$ ./config.nice
$ make
$ make install
$ PREFIX/bin/apachectl -k graceful-stop
$ PREFIX/bin/apachectl -k start

在投入生产之前,应始终在环境中测试任何新版本。例如,您可以通过使用--prefix不同的端口(通过调整Listen指令)在旧版本旁边安装和运行新版本,以测试是否存在任何不兼容性,然后再进行最终升级。

您可以向传递其他参数config.nice,这些参数将附加到原始configure 选项中:

$ ./config.nice --prefix=/home/test/apache --with-port=90

最佳

第三方套餐

大量的第三方提供了自己的Apache HTTP Server打包发行版,以便在特定平台上进行安装。这包括各种Linux发行版,各种第三方Windows软件包,Mac OS X,Solaris等。

我们的软件许可证不仅允许而且鼓励这种重新分配。但是,这确实会导致服务器安装的配置布局和默认设置可能与文档中所述有所不同。尽管很不幸,但这种情况不太可能很快改变。

一个这些第三方分布的描述保持在HTTP服务器维基,并应反映这些第三方发行的当前状态。但是,您需要熟悉特定平台的软件包管理和安装过程。

可用语言: de  |  zh  |  es  |  fr  |  ja  |  ko  |  TR 

最佳

注释

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