环境变量
| 可以通过指定某些环境变量来修改configure脚本的默认选择,或者帮助configure脚本找到名字和/或位置不标准的库和程序
|
CC
| C编译器
|
CFLAGS
| C编译器的flags
|
CPP
| C预处理程序
|
CPPEFAGS
| C/C++预处理程序flags
|
LDFLAGS
| 连接器flags
|
配置选项
| |
-C
| |
--config-cache
| 等价于 --cache-file=config.cache
|
--cache-file=FILE
| 在FILE文件中缓存测试结果(默认禁用)。
|
-h
| |
--help [=short|recursive]
| 显示帮助信息然后退出。使用short参数将只显示正在运行的当前脚本的选项,而不能列出适用于Apache配置脚本所运行的外部配置脚本的选项。使用recursive参数将显示所有程序包的简短描述。
|
-n
| |
--no-create
| configure脚本运行结束后不输出结果文件,常用于正式编译前的测试
|
-q
| |
--quiet
| 不显示脚本工作期间输出的"checking ..."消息
|
--srcdir=DIR
| 指定源代码所在目录DIR 。[configure脚本所在目录或父目录]
|
--silent
| 等价于 --quiet
|
-V
| |
--version
| 显示版权信息后退出。
|
安装目录
| 这些选项控制着安装目录的结构。安装目录的结构取决于所选择的布局。方括号"[]"内是默认值。
|
--prefix=PREFIX
| 体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录。[/usr/local/apache2]
|
--exec-prefix=EPREFIX
| 体系相关文件的顶级安装目录EPREFIX ,把体系相关的文件安装到不同的位置可以方便地在不同主机之间共享体系相关的文件。[PREFIX]
默认情况下,make install 将会把所有文件分别安装到/usr/local/apache2/bin , /usr/local/apache2/lib 目录下。可以用 --prefix 指定一个不同于/usr/local/apache2的安装前缀,比如:--prefix=$HOME 。
|
定义一个目录局
| |
--enable-layout=LAYOUT
| 使用名为LAYOUT的布局配置所有源代码和编译脚本。这样就允许你在安装Apache时分别指定不同文件的安装位置。config.layout文件中包含了默认布局的示例,你可以根据它创建你自己的布局。这个文件中的不同布局使用...段进行分组,其中的FOO就是布局名。默认的布局是Apache 。
|
安装目录微调
| 可以使用下面的选项微调安装目录。下列选项的默认值由autoconf自动设置并在方括号"[]"内说明。
|
--bindir=DIR
| 用户可执行目录DIR 。用于存放对网站管理员很有帮助的htpasswd, dbmmanage之类的支持程序。
[EPREFIX/bin]
|
--datadir=DIR
| Web服务器只读的体系无关数据目录DIR 。虽然autoconf提供了该选项,但Apache并未使用它。
[PREFIX/share]
|
--includedir=DIR
| Apache的C头文件目录DIR 。
[EPREFIX/include]
|
--infodir=DIR
| 信息文档目录DIR 。虽然autoconf提供了该选项,但Apache并未使用它。
[PREFIX/info]
|
--libdir=DIR
| 对象代码库目录DIR 。
[EPREFIX/lib]
|
--libexecdir=DIR
| 程序可执行目录DIR ,也就是动态加载模块目录。
[EPREFIX/libexec]
|
--localstatedir=DIR
| 可写的单一机器数据目录DIR 。虽然autoconf提供了该选项,但Apache并未使用它。
[PREFIX/var]
|
--mandir=DIR
| 手册文档目录DIR 。
[EPREFIX/man]
|
--oldincludedir=DIR
| 非gcc的C头文件目录DIR 。虽然autoconf提供了该选项,但Apache并未使用它。
[/usr/include]
|
--sbindir=DIR
| 系统管理员可执行目录DIR ,用于存放运行HTTP服务器所必须的httpd, apachectl, suexec之类的服务程序。
[EPREFIX/sbin]
|
--sharedstatedir=DIR
| 可写的体系无关数据目录DIR 。虽然autoconf提供了该选项,但Apache并未使用它。
[PREFIX/com]
|
--sysconfdir=DIR
| 只读的单一机器数据目录DIR ,用于存放httpd.conf和mime.types之类的服务器配置文件。
[PREFIX/etc]
|
系统类型
| 这些选项用于交叉编译在其他平台上运行的Apache HTTP服务器。在同一平台上编译和运行Apache HTTP服务器通常不需要使用这些选项,脚本会自动检测并设置。方括号"[]"内是默认值。
|
--build=BUILD
| 指定编译工具所在系统的系统类型BUILD 。
[config.guess脚本的检测结果]
|
--host=HOST
| 指定Apache HTTP服务器将要运行的目标系统类型HOST 。
[BUILD]
|
--target=TARGET
| configure for building compilers for TARGET类型的系统。虽然autoconf提供了该选项,但Apache并未使用它。
[HOST]
|
模块选项
| 有两种使用模块的方法:一是静态连接进核心,二是作为DSO模块动态加载;如果编译中包含任何DSO模块,则mod_so会被自动包含进核心。如果希望核心能够装载DSO,但不实际编译任何DSO模块,则需明确指定"--enable-so=static"。
|
--disable-MODULE
| 禁用MODULE模块(仅用于基本模块)
|
--enable-MODULE=shared
| 将MODULE编译为DSO(可用于所有模块)
|
--enable-MODULE=static
| 将MODULE静态连接进核心(仅用于扩展和实验模块)
|
--enable-mods-shared=MODULE-LIST
| 将MODULE-LIST中的所有模块都编译成DSO(可用于所有模块)
|
--enable-modules=MODULE-LIST
| 将MODULE-LIST静态连接进核心(可用于所有模块)
|
多路处理模块(MPM)
| 必须有而且只能有一个MPM被静态包含进核心
|
--with-mpm=MPM
| 其中,MPM是你想要使用的多路处理模块的名字。如果你不使用这个选项,那么将会使用对应于各平台的默认MPM
|
第三方模块
| 有至少两种方法可以添加第三方模块,最简单的方法是作为配置参数提供
|
--with-module=module-type:module-file
[, module-type:module-file]
| module-file是模块的源代码文件名,该文件必须位于Apahe源代码目录树的"modules/module-type"目录下,如果configure没有在那里找到module-file ,则将它看作一个绝对路径名并尝试将其复制到"modules/module-type"目录中,如果"modules/module-type"目录不存在,configure将新建一个"modules/module-type"目录并在其中放置一个标准的Makefile.in文件。这种方法有两个明显的缺陷:
模块的源代码必须是单一文件
模块只能静态连接进核心,而不能作为DSO模块
所以一般并不使用此方法
|
杂项选项
| |
--enable-http
| 启用HTTP协议处理支持
|
--enable-v4-mapped
| 使用相同的套接字同时处理IPv4和IPv6的连接,也就是启用地址映射。在FreeBSD、NetBSD、OpenBSD以外的平台上是默认值
|
--disable-v4-mapped
| 使用不同的套接字分别处理IPv4和IPv6的连接,也就是禁用地址映射。在FreeBSD、NetBSD、OpenBSD上是默认值
|
--enable-distcache
| 在mod_ssl中启用distcache支持
|
--enable-maintainer-mode
| 使用所有警告和调试符号编译源代码,请勿用于正式服务器,它会影响性能。
|
--enable-exception-hook
| 允许在子进程崩溃以后启用一个钩子来运行异常处理程序
|
--enable-pie
| 将httpd编译为位置独立的(Position Independent)可执行程序
|
--with-port=PORT
| 设定httpd的默认的监听端口[默认为:80],该值仅在生成默认配置文件httpd.conf时使用
|
--with-program-name=NAME
| 指定可执行程序的名字[默认为:httpd],若使用此选项则默认配置文件的名字将同时变成"NAME.conf"。
|
传递给apr-config脚本的选项
| |
--enable-nonportable-atomics
| 若只打算在486以上的CPU上运行Apache ,那么使用该选项可以启用更加高效的基于互斥执行的原子操作
|
--disable-threads
| 禁用线程支持,如果不使用线程化的MPM ,可以关闭它以减少系统开销。
|
--disable-lfs
| 在32-bit平台上禁用大文件支持(large file support)
|
--enable-threads
| 启用线程支持,在线程型的MPM上必须打开它
|
--disable-ipv6
| 禁用IPv6支持
|
--disable-dso
| 禁用DSO支持
|
特殊程序包选项
| |
--with-included-apr
| 在编译时强制使用当前源代码中绑定的APR版本,仅在2.2.3以后的版本中可用
|
--with-apr=DIR|FILE
| Apache可移植运行时(APR)是httpd源码的一部分并会自动与httpd一起创建。如果你想使用一个已经存在的APR ,就必须在这里指定apr-config脚本的路径。可以使用此脚本的绝对路径或已有的APR安装目录(apr-config必须位于此目录或者其下的"bin"子目录中)。
|
--with-apr-util=DIR|FILE
| Apache可移植运行时工具包(APU)是httpd源码的一部分并会自动与httpd一起创建。如果你想使用一个已经存在的APU ,就必须在这里指定apu-config脚本的路径。可以使用此脚本的绝对路径或已有的APU安装目录(apu-config必须位于此目录或者其下的"bin"子目录中)
|
--with-ssl=DIR
| 如果启用了mod_ssl ,configure脚本将会自动搜寻已经安装的OpenSSL ,你可以在这里指定OpenSSL SSL/TLS工具包的位置
|
--with-sslc=DIR
| 使用 RSA SSL-C SSL/TLS 工具包代替OpenSSL ,并指定 RSA SSL-C SSL/TLS 的位置
|
--with-z=DIR
| 果你启用了压缩模块(比如mod_deflate),configure脚本将会自动搜寻已经安装的zlib库,你可以在这里指定它的安装路径
|
--with-perl=DIR
| 有些用Perl写的支持脚本,如apxs或dbmmanage ,需要Perl5解释器(5.003或以上的版本就足够了)。如果系统中存在多个Perl解释器,比如有系统提供的Perl 4 ,还有你自己安装的Perl 5 ,推荐你使用该选项来指定正确的版本。如果没有Perl 5也没关系,这并不影响Apache httpd的编译和安装,只是相关的支持脚本不能使用而已。
|
--with-pcre=DIR
| 5.0版的Perl兼容正则表达式库(PCRE)已经被包含进来了,如果你想使用系统中已经安装好的PCRE ,就可以在这里指定其安装路径
|
--with-ldap=DIR
| 一些Apache模块,比如mod_ldap和mod_authnz_ldap需要APU支持LDAP(默认并不支持),只要使用其中之一,就要使用该选项指定LDAP的安装路径。
|
--with-gdbm[=path]
| 使用GNU DBM代替SDBM;如果不指定path ,则configure脚本将会在默认路径上搜索GNU DBM的包含文件和库的位置。如果指定path ,则configure脚本会在path/lib和path/include目录中搜索GNU DBM的包含文件和库。还可以使用"inc-path:lib-path"的形式分别指定GNU DBM的包含文件和库的位置。
|
--with-ndbm[=path]
| 使用New DBM代替SDBM;如果不指定path ,则configure脚本将会在默认路径上搜索New DBM的包含文件和库的位置。如果指定path ,则configure脚本会在path/lib和path/include目录中搜索New DBM的包含文件和库。还可以使用"inc-path:lib-path"的形式分别指定New DBM的包含文件和库的位置
|
--with-berkeley-db[=path]
| 使用Berkeley DB代替SDBM;如果不指定path ,则configure脚本将会在默认路径上搜索Berkeley DB的包含文件和库的位置。如果指定path ,则configure脚本会在path/lib和path/include目录中搜索Berkeley DB的包含文件和库。还可以使用"inc-path:lib-path"的形式分别指定Berkeley DB的包含文件和库的位置
|
支持程序选项
| |
--enable-static-support
| 使用静态连接(默认为动态连接)编译所有二进制支持程序
|
--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配置选项
| |
--enable-suexec
| 使用这个选项以启用suexec ,它可以允许你为CGI程序指定uid和gid 。如果你不精通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[取决于系统的设定]
|