• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 编译安装

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

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

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

    急躁的概述

    在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
    
    从源安装
    下载从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服务器维基,并应反映这些第三方发行的当前状态。但是,您将需要熟悉特定平台的软件包管理和安装过程。

    上篇:Apache2.4 新特性

    下篇:启动Apache