<-
Apache HTTP 服务器 2.4 > 手册页:配置

配置-配置源树

configure脚本配置用于在特定平台上编译和安装Apache HTTP Server的源树。各种选项允许根据您的个人需求编译服务器。

此脚本(包含在源发行版的根目录中)仅在Unix和类Unix系统上编译。对于其他平台,请参阅平台文档。

支持Apache!

也可以看看

最佳

概要

您应该configure从发行版的根目录中调用脚本。

./configure [OPTION]... [VAR=VALUE]...

要指定环境变量(例如CCCFLAGS......),它们指定为 。有关 某些有用变量的说明,请参见下文VAR=VALUE

最佳

选件

配置选项

以下选项会影响其configure自身的行为 。

-C
--config-cache
这是别名 --cache-file=config.cache
--cache-file=FILE
测试结果将缓存在文件FILE中。默认情况下禁用此选项。
-h
--help [short|recursive]
输出帮助并退出。使用参数时,将short只显示特定于此软件包的选项。该参数 recursive显示所有包含的软件包的简短帮助。
-n
--no-create
configure脚本可以正常运行,但不会创建输出文件。这对于在生成用于编译的makefile之前检查测试结果很有用。
-q
--quiet
checking ...在配置过程中不要打印消息。
--srcdir=DIR
将目录DIR定义为源文件目录。默认值为所在目录configure或父目录。
--silent
如同 --quiet
-V
- 版
显示版权信息并退出。

安装目录

这些选项定义安装目录。安装树取决于所选的布局。

--prefix=PREFIX
PREFIX中安装与体系结构无关的文件。默认情况下,安装目录设置为 /usr/local/apache2
--exec-prefix=EPREFIX
EPREFIX中安装与体系结构相关的文件。默认情况下,安装目录设置为 PREFIX目录。

默认情况下,make install将安装所有文件 /usr/local/apache2/bin/usr/local/apache2/lib 等等。你可以指定一个安装前缀比其他 /usr/local/apache2使用--prefix,比如--prefix=$HOME

定义目录布局

--enable-layout=LAYOUT
配置源代码和构建脚本,以基于布局LAYOUT假定安装树。这使您可以分别指定Apache HTTP Server安装中每种文件类型的位置。该config.layout 文件包含几个示例配置,您还可以根据示例创建自己的自定义配置。此文件中的不同布局分为几<Layout FOO>...</Layout>部分,并按命名FOO。默认布局为Apache

微调安装目录

为了更好地控制安装目录,请使用以下选项。请注意,目录默认值 autoconf由相应的布局设置设置,并被相应的布局设置覆盖。

--bindir=DIR
DIR中安装用户可执行文件。用户可执行文件支持这样的程序htpasswddbmmanage等等。这对于网站管理员有用。默认情况下,DIR设置为 EPREFIX/bin
--datadir=DIR
DIR中安装与架构无关的只读数据。默认情况下datadir设置为 PREFIX/share。此选项由提供 autoconf且当前未使用。
--includedir=DIR
DIR中安装C头文件。默认情况下 includedir设置为 EPREFIX/include
--infodir=DIR
DIR中安装信息文档。默认情况下infodir设置为 PREFIX/info。该选项当前未使用。
--libdir=DIR
DIR中安装目标代码库。默认情况下 libdir设置为 EPREFIX/lib
--libexecdir=DIR
DIR中安装程序可执行文件(即共享模块) 。默认情况下libexecdir设置为 EPREFIX/modules
--localstatedir=DIR
DIR中安装可修改的单机数据。默认情况下localstatedir设置为 PREFIX/var。此选项由提供 autoconf且当前未使用。
--mandir=DIR
将手册文档安装在DIR中。默认情况下 mandir设置为 EPREFIX/man
--oldincludedir=DIR
DIR中为non-gcc安装C头文件。默认情况下oldincludedir设置为 /usr/include。此选项由提供 autoconf且当前未使用。
--sbindir=DIR
DIR中安装系统管理员可执行文件。这些是服务器程序,如httpdapachectlsuexec等,这些都需要运行Apache HTTP服务器。默认情况下 sbindir设置为 EPREFIX/sbin
--sharedstatedir=DIR
DIR中安装与架构无关的可修改数据。默认情况下sharedstatedir设置为 PREFIX/com。此选项由提供 autoconf且当前未使用。
--sysconfdir=DIR
安装只读像服务器配置文件单机数据httpd.confmime.types在等 DIR。默认情况下sysconfdir设置为 PREFIX/conf

系统类型

这些选项用于交叉编译Apache HTTP Server以在另一个系统上运行。在正常情况下,在同一系统上构建和运行服务器时,将不使用这些选项。

--build=BUILD
定义在其上构建工具的系统的系统类型。它默认为脚本的结果 config.guess
--host=HOST
定义将在其上运行服务器的系统的系统类型。 HOST默认为BUILD
--target=TARGET
配置系统类型TARGET的编译器 。默认为HOST。该选项由autoconfApache HTTP Server 提供,并非必需。

可选功能

这些选项用于微调HTTP服务器将具有的功能。

一般语法

通常,您可以使用以下语法来启用或禁用功能:

--disable-FEATURE
不包括FEATURE。这与相同 。--enable-FEATURE=no
--enable-FEATURE[=ARG]
包括特征。为默认值ARGyes
--enable-MODULE=shared
相应的模块将构建为DSO模块。默认情况下,启用的模块是动态链接的。
--enable-MODULE=static
相应的模块将被静态链接。

注意

configure即使foo不存在也不会抱怨 ,因此您需要仔细输入。 --enable-foo

选择要编译的模块

大多数模块默认编译并已被明确或通过使用关键字禁用few (见--enable-modules--enable-mods-shared 并且--enable-mods-static下面进一步解释)或--enable-modules=none作为一组被去除。

其他模块默认情况下不编译,并已被明确或通过使用关键字启用allreallyall可用。

要找出默认情况下编译的模块,请运行 ./configure -h./configure --help 并在下面查看Optional Features。假设您对mod_example1和 感兴趣mod_example2,您会看到以下内容:

Optional Features:
  ...
  --disable-example1     example module 1
  --enable-example2      example module 2
  ...

然后mod_example1默认情况下启用了,然后您将--disable-example1不对其进行编译。 mod_example2默认情况下是禁用的,您将使用--enable-example2 它进行编译。

多处理模块

多处理模块(MPM)实现服务器的基本行为。为了使服务器正常运行,单个MPM必须处于活动状态。可用的MPM列表显示在 模块索引页面上

MPM可以构建为DSO,用于动态加载或与服务器静态链接,并且可以使用以下选项启用:

--with-mpm=MPM

选择服务器的默认MPM。如果MPM是作为DSO模块构建的(请参阅参考资料--enable-mpms-shared),则此伪指令选择将在默认配置文件中加载的MPM。否则,此伪指令选择唯一可用的MPM,它将被静态链接到服务器中。

如果省略此选项,则将使用操作系统的默认MPM

--enable-mpms-shared=MPM-LIST

启用MPM列表作为动态共享模块。必须使用LoadModule指令动态加载这些模块之一 。

MPM-LIST是用引号引起来的MPM名称的空格分隔列表。例如:

--enable-mpms-shared='prefork worker'

另外,您可以使用special关键字all,它将选择支持当前平台上动态加载的所有MPM并将其构建为DSO模块。例如:

--enable-mpms-shared=all

第三方模块

要添加其他第三方模块,请使用以下选项:

--with-module=module-type:module-file[, module-type:module-file]

将一个或多个第三方模块添加到静态链接的模块列表中。模块源文件module-file 将在 Apache HTTP服务器源树的子目录中搜索。如果未找到,则认为模块文件是绝对文件路径,并尝试将源文件复制到 模块类型子目录中。如果该子目录不存在,则将创建该子目录并使用标准填充 。modules/module-typeconfigureMakefile.in

此选项对于添加由一个源文件组成的小型外部模块很有用。对于更复杂的模块,您应该阅读供应商的文档。

注意

如果要构建DSO模块而不是静态链接,请使用apxs

累积和其他选择

--enable-maintainer-mode
打开调试和编译时间警告,并加载所有已编译模块。
--enable-mods-shared=MODULE-LIST

定义要启用并构建为动态共享模块的模块列表。这意味着必须使用LoadModule指令动态加载这些模块 。

MODULE-LIST是用引号括起来的模块名称的空格分隔列表。模块名称不带前面的mod_。例如:

--enable-mods-shared='headers rewrite dav'

此外,您可以使用特殊的关键字reallyallallmostfew。例如,

--enable-mods-shared=most

将编译大多数模块并将其构建为DSO模块,

--enable-mods-shared=few

只会编译非常基本的模块集。

默认设置为most

LoadModule所选模块的指令将在主配置文件中自动生成。默认情况下,所有这些指令都将被注释掉,除了配置--enable-foo参数要求或明确选择的模块之外。您可以通过激活或停用中的LoadModule指令 来更改已加载模块的集合httpd.conf。另外,LoadModule可以通过configure选项激活所有内置模块的 指令 --enable-load-all-modules

--enable-mods-static=MODULE-LIST
此选项的行为类似于--enable-mods-shared,但是将静态链接给定的模块。这意味着,这些模块在运行时将始终存在httpd。不需要加载它们LoadModule
--enable-modules=MODULE-LIST
此选项的行为类似于--enable-mods-shared,并且还将动态链接给定的模块。special关键字none禁用所有模块的构建。
--enable-v4-mapped
允许IPv6套接字处理IPv4连接。
--with-port=PORT
这定义了httpd将侦听的端口。生成配置文件时使用此端口号 httpd.conf。默认值为80。
--with-program-name
定义备用可执行文件名称。默认值为 httpd

可选包装

这些选项用于定义可选软件包。

一般语法

通常,您可以使用以下语法来定义可选程序包:

--with-PACKAGE[=ARG]
使用包PACKAGE。为默认值 ARGyes
--without-PACKAGE
不要使用包PACKAGE。这与相同 。该选项由Apache HTTP Server 提供 但不是很有用。--with-PACKAGE=noautoconf

具体套餐

--with-apr=DIR|FILE
Apache可移植运行时(APR)是在httpd源分布的一部分,并且将自动与HTTP服务器构建在一起。如果要使用已安装的APR,则必须告诉脚本configure路径 apr-config。您可以将绝对路径和名称或目录设置为已安装的APR。apr-config必须存在于此目录或子目录中 bin
--with-apr-util=DIR|FILE
Apache可移植运行时实用程序(APU)是httpd源分发的一部分,将与HTTP服务器一起自动构建。如果要使用已经安装的APU,则必须告诉脚本configure路径 apu-config。您可以为安装的APU设置绝对路径和名称或目录。apu-config必须存在于此目录或子目录中 bin
--with-ssl=DIR
如果mod_ssl已启用,则configure 搜索已安装的OpenSSL。您可以将目录路径设置为SSL / TLS工具包。
--with-z=DIR
configurezlib如果您的源配置需要一个已安装的库,则会自动搜索 (例如,mod_deflate启用时)。您可以将目录路径设置为压缩库。

Apache HTTP Server的若干功能(包括 mod_authn_dbmmod_rewrite的DBM) RewriteMap使用简单的键/值数据库来快速查找信息。SDBM包含在APU中,因此该数据库始终可用。如果要使用其他数据库类型,请使用以下选项启用它们:

--with-gdbm[=path]
如果未指定路径configure将在通常的搜索路径中搜索GNU DBM安装的包含文件和库。一个明确的 路径会导致configure在查找 path/libpath/include办理相关文件。最后,该路径可以指定由冒号分隔的特定包含和库路径。
--with-ndbm[=path]
与相似--with-gdbm,但搜索新的DBM安装。
--with-berkeley-db[=path]
与相似--with-gdbm,但搜索Berkeley DB安装。

注意

DBM选项由APU提供,并传递到其配置脚本。当使用已定义的已安装的APU时,它们将无用--with-apr-util

您可以将不止一种DBM实现与HTTP服务器一起使用。每次都会在运行时配置中配置适当的DBM类型。

支持计划的选项

--enable-static-support
构建支持二进制文件的静态链接版本。这意味着,将集成所有必需的库来构建独立的可执行文件。否则,默认情况下将动态链接支持二进制文件。
--enable-suexec
使用此选项启用suexec,它允许您为生成的进程设置uid和gid。除非您了解在服务器上运行suid二进制文件的所有安全隐患,否则不要使用此选项。下面suexec介绍了其他配置选项。

通过使用以下选项,可以创建单个支持程序的静态链接二进制文件:

--enable-static-ab
构建的静态链接版本ab
--enable-static-checkgid
构建的静态链接版本checkgid
--enable-static-htdbm
构建的静态链接版本htdbm
--enable-static-htdigest
构建的静态链接版本htdigest
--enable-static-htpasswd
构建的静态链接版本htpasswd
--enable-static-logresolve
构建的静态链接版本logresolve
--enable-static-rotatelogs
构建的静态链接版本rotatelogs

suexec 配置选项

以下选项用于微调的行为suexec。有关 更多信息,请参见配置和安装suEXEC

--with-suexec-bin
这定义了suexec二进制文件的路径。默认值为--sbindir(请参阅安装目录的微调)。
--with-suexec-caller
这定义了允许呼叫的用户suexec。它应与httpd正常运行的用户相同 。
--with-suexec-docroot
这定义了目录树,在该目录树下suexec允许可执行文件访问。默认值为 --datadir/htdocs
--with-suexec-gidmin
将其定义为允许作为目标用户的最低GID suexec。默认值为100。
--with-suexec-logfile
这定义了suexec日志文件的文件名。默认情况下,日志文件被命名suexec_log并位于中 --logfiledir
--with-suexec-safepath
定义PATH要为所启动的进程设置的环境变量的值suexec。默认值为/usr/local/bin:/usr/bin:/bin
--with-suexec-userdir
这定义了用户目录下的子目录,该子目录包含所有suexec允许访问的可执行文件。当您要suexec与特定于用户的目录(由提供mod_userdir)一起使用时,此设置是必需的 。默认值为 public_html
--with-suexec-uidmin
将此定义为允许作为目标用户的最低UID suexec。默认值为100。
--with-suexec-umask
设置umask由开始的进程 suexec。默认为您的系统设置。
最佳

环境变量

有一些有用的环境变量可以覆盖由其做出的选择, configure或帮助其查找具有非标准名称或位置的库和程序。

CC
定义用于编译的C编译器命令。
CFLAGS
设置要用于编译的C编译器标志。
CPP
定义要使用的C预处理程序命令。
CPPFLAGS
设置C / C ++预处理器标志,例如, 如果您在标头的非标准目录中包含标头,请设置。-Iincludedir
LDFLAGS
设置链接器标志,例如,如果您的库位于非标准目录libdir中-Llibdir

可用语言: zh  |  fr  |  ko  |  TR 

最佳

注释

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