Apache HTTP Server 版本 2.4
configure
脚本用于配置源代码树,以便在您的特定平台上编译和安装 Apache HTTP Server。各种选项允许编译与您的个人需求相对应的服务器。
此脚本包含在源代码发行版的根目录中,仅用于在 Unix 和类 Unix 系统上进行编译。对于其他平台,请参阅 平台 文档。
您应该从发行版的根目录中调用 configure
脚本。
./configure [OPTION]... [VAR=VALUE]...
要分配环境变量(例如 CC
、CFLAGS
...),请将其指定为 VAR=VALUE
。有关一些有用变量的描述,请参阅 下文。
以下选项会影响 configure
本身的行为。
-C
--config-cache
--cache-file=config.cache
的别名--cache-file=FILE
-h
--help [short|recursive]
short
仅显示特定于此包的选项。参数 recursive
显示所有包含包的简短帮助。-n
--no-create
configure
脚本正常运行,但不会创建输出文件。这对于在生成用于编译的 makefile 之前检查测试结果很有用。-q
--quiet
checking ...
消息。--srcdir=DIR
configure
所在的目录或父目录。--silent
--quiet
相同这些选项定义安装目录。安装树取决于所选布局。
--prefix=PREFIX
/usr/local/apache2
。--exec-prefix=EPREFIX
默认情况下,make install
将在 /usr/local/apache2/bin
、/usr/local/apache2/lib
等中安装所有文件。您可以使用 --prefix
指定除 /usr/local/apache2
之外的安装前缀,例如 --prefix=$HOME
。
--enable-layout=LAYOUT
config.layout
文件包含几个示例配置,您还可以按照示例创建自己的自定义配置。此文件中的不同布局分组到 <Layout FOO>...</Layout>
部分中,并按名称引用,如 FOO
中所示。默认布局为 Apache
。为了更好地控制安装目录,请使用以下选项。请注意,目录默认值由 autoconf
设置,并被相应的布局设置覆盖。
--bindir=DIR
htpasswd
、dbmmanage
等,这些程序对站点管理员很有用。默认情况下,DIR 设置为 EPREFIX/bin
。--datadir=DIR
datadir
设置为 PREFIX/share
。此选项由 autoconf
提供,目前未使用。--includedir=DIR
includedir
设置为 EPREFIX/include
。--infodir=DIR
infodir
设置为 PREFIX/info
。此选项目前未使用。--libdir=DIR
libdir
设置为 EPREFIX/lib
。--libexecdir=DIR
libexecdir
设置为 EPREFIX/modules
。--localstatedir=DIR
localstatedir
设置为 PREFIX/var
。此选项由 autoconf
提供,目前未使用。--mandir=DIR
mandir
设置为 EPREFIX/man
。--oldincludedir=DIR
oldincludedir
设置为 /usr/include
。此选项由 autoconf
提供,目前未使用。--sbindir=DIR
httpd
、apachectl
、suexec
等,这些程序是运行 Apache HTTP Server 所必需的。默认情况下,sbindir
设置为 EPREFIX/sbin
。--sharedstatedir=DIR
sharedstatedir
设置为 PREFIX/com
。此选项由 autoconf
提供,目前未使用。--sysconfdir=DIR
httpd.conf
、mime.types
等。默认情况下,sysconfdir
设置为 PREFIX/conf
。这些选项用于交叉编译 Apache HTTP Server 以在另一个系统上运行。在正常情况下,当在同一系统上构建和运行服务器时,不会使用这些选项。
--build=BUILD
config.guess
的结果。--host=HOST
--target=TARGET
autoconf
提供,对于 Apache HTTP Server 来说不是必需的。这些选项用于微调您的 HTTP 服务器将具有的功能。
通常,您可以使用以下语法来启用或禁用功能
--disable-FEATURE
--enable-FEATURE=no
相同。--enable-FEATURE[=ARG]
yes
。--enable-MODULE=shared
--enable-MODULE=static
configure
也不会抱怨 --enable-foo
,因此您需要仔细输入。大多数模块默认情况下都会编译,必须显式禁用或使用关键字 few
(有关更多说明,请参阅下面的 --enable-modules
、--enable-mods-shared
和 --enable-mods-static
)或 --enable-modules=none
作为一组删除。
其他模块默认情况下不会编译,必须显式启用或使用关键字 all
或 reallyall
才能使用。
要找出哪些模块默认情况下会编译,请运行 ./configure -h
或 ./configure --help
,并在 可选功能
下查看。假设您对 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 将被静态链接到服务器中。
如果省略此选项,将使用您的操作系统的 默认 MPM。
--enable-mpms-shared=MPM-LIST
将 MPM 列表启用为动态共享模块。必须使用 LoadModule
指令动态加载这些模块之一。
MPM-LIST 是一个用引号括起来的以空格分隔的 MPM 名称列表。例如
--enable-mpms-shared='prefork worker'
此外,您可以使用特殊关键字 all
,它将选择当前平台上支持动态加载的所有 MPM,并将它们构建为 DSO 模块。例如
--enable-mpms-shared=all
要添加其他第三方模块,请使用以下选项
--with-module=module-type:module-file[, module-type:module-file]
将一个或多个第三方模块添加到静态链接模块列表中。模块源文件 module-file
将在 Apache HTTP 服务器源代码树的 modules/module-type
子目录中搜索。如果在那里找不到,configure
会认为 module-file 是一个绝对文件路径,并尝试将源文件复制到 module-type 子目录中。如果子目录不存在,它将被创建并填充一个标准的 Makefile.in
。
此选项对于添加由一个源文件组成的较小的外部模块很有用。对于更复杂的模块,您应该阅读供应商的文档。
apxs
。--enable-maintainer-mode
--enable-mods-shared=MODULE-LIST
定义要启用并构建为动态共享模块的模块列表。这意味着这些模块必须使用 LoadModule
指令动态加载。
MODULE-LIST 是一个用引号括起来的以空格分隔的模块名称列表。模块名称不带前面的 mod_
。例如
--enable-mods-shared='headers rewrite dav'
此外,您可以使用特殊关键字 reallyall
、all
、most
和 few
。例如,
--enable-mods-shared=most
将编译大多数模块并将它们构建为 DSO 模块,
--enable-mods-shared=few
将只编译一组非常基本的模块。
默认集是 most
。
所选模块的 LoadModule
指令将在主配置文件中自动生成。默认情况下,所有这些指令都将被注释掉,除了那些必需的模块或由配置 --enable-foo
参数显式选择的模块。您可以通过激活或停用 httpd.conf
中的 LoadModule
指令来更改加载的模块集。此外,所有构建模块的 LoadModule
指令可以通过配置选项 --enable-load-all-modules
激活。
--enable-mods-static=MODULE-LIST
--enable-mods-shared
,但会将给定的模块静态链接。这意味着这些模块在运行 httpd
时始终存在。它们不需要使用 LoadModule
加载。--enable-modules=MODULE-LIST
--enable-mods-shared
,并且还会将给定的模块动态链接。特殊关键字 none
将禁用所有模块的构建。--enable-v4-mapped
--with-port=PORT
httpd
将监听的端口。此端口号用于生成配置文件 httpd.conf
。默认值为 80。--with-program-name
httpd
。这些选项用于定义可选包。
通常,您可以使用以下语法来定义可选包
--with-PACKAGE[=ARG]
yes
。--without-PACKAGE
--with-PACKAGE=no
相同。此选项由 autoconf
提供,但对于 Apache HTTP 服务器来说不是很有用。--with-apr=DIR|FILE
configure
apr-config
脚本的路径。您可以设置绝对路径和名称或安装的 APR 的目录。apr-config
必须存在于此目录或子目录 bin
中。--with-apr-util=DIR|FILE
configure
apu-config
脚本的路径。您可以设置绝对路径和名称或安装的 APU 的目录。apu-config
必须存在于此目录或子目录 bin
中。--with-ssl=DIR
mod_ssl
已启用,configure
将搜索已安装的 OpenSSL。您可以设置 SSL/TLS 工具包的目录路径。--with-z=DIR
zlib
库(例如,当 mod_deflate
启用时),configure
将自动搜索已安装的 zlib
库。您可以设置压缩库的目录路径。Apache HTTP 服务器的几个功能,包括 mod_authn_dbm
和 mod_rewrite
的 DBM RewriteMap
使用简单的键值数据库来快速查找信息。SDBM 包含在 APU 中,因此此数据库始终可用。如果您想使用其他数据库类型,请使用以下选项来启用它们
--with-gdbm[=path]
configure
将在通常的搜索路径中搜索 GNU DBM 安装的包含文件和库。显式 path 将导致 configure
在 path/lib
和 path/include
中搜索相关文件。最后,path 可以指定以冒号分隔的特定包含和库路径。--with-ndbm[=path]
--with-gdbm
相似,但搜索 New DBM 安装。--with-berkeley-db[=path]
--with-gdbm
相似,但搜索 Berkeley DB 安装。DBM 选项由 APU 提供,并传递到其配置脚本。当使用由 --with-apr-util
定义的已安装 APU 时,它们是无用的。
您可以将多个 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
suexec
目标用户的最低 GID。默认值为 100。--with-suexec-logfile
suexec
日志文件的名称。默认情况下,日志文件名为 suexec_log
,位于 --logfiledir
中。--with-suexec-safepath
suexec
启动的进程要设置的环境变量 PATH
的值。默认值为 /usr/local/bin:/usr/bin:/bin
。--with-suexec-userdir
suexec
访问的可执行文件。当您想将 suexec
与特定于用户的目录(如 mod_userdir
提供的目录)一起使用时,此设置是必需的。默认值为 public_html
。--with-suexec-uidmin
suexec
目标用户的最低 UID。默认值为 100。--with-suexec-umask
suexec
启动的进程的 umask
。它默认为您的系统设置。有一些有用的环境变量可以覆盖 configure
做出的选择,或者帮助它找到具有非标准名称或位置的库和程序。
CC
CFLAGS
CPP
CPPFLAGS
-Iincludedir
,如果您在非标准目录 includedir 中有头文件。LDFLAGS
-Llibdir
,如果您在非标准目录 libdir 中有库。