configure - 配置源代码树
configure
脚本配置Apache的源代码树并且将其安装到指定的平台上。丰富的选项允许你根据自己的特定状况和特定需求对Apache进行定制。
这个脚本位于源代码树的根目录下,并且只能用于类Unix操作系统。要了解其他平台的信息,参见:针对特定平台的说明文档。
下面有一些有用的环境变量说明。
配置选项
apr-config
脚本的选项config.layout文件中包含了默认布局的示例,你可以根据它创建你自己的布局。这个文件中的不同布局使用<Layout FOO>...</Layout>
段进行分组,其中的FOO
就是布局名。默认的布局是Apache
。
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
]
mod_actions
(B)
根据特定的媒体类型或请求方法,激活特定的CGI脚本
mod_alias
(B)
提供从文件系统的不同部分到文档树的映射和URL重定向
mod_asis
(B)
发送自己包含HTTP头内容的文件
mod_auth_basic
(B)
使用基本认证
mod_authn_default
(B)
在未正确配置认证模块的情况下简单拒绝一切认证信息
mod_authn_file
(B)
使用纯文本文件为认证提供支持
mod_authz_default
(B)
在未正确配置授权支持模块的情况下简单拒绝一切授权请求
mod_authz_groupfile
(B)
使用纯文本文件为组提供授权支持
mod_authz_host
(B)
供基于主机名、IP地址、请求特征的访问控制
mod_authz_user
(B)
基于每个用户提供授权支持
mod_autoindex
(B)
自动对目录中的内容生成列表,类似于"ls"或"dir"命令
mod_cgi
(B)
在非线程型MPM(prefork
)上提供对CGI脚本执行的支持
mod_cgid
(B)
在线程型MPM(worker
)上用一个外部CGI守护进程执行CGI脚本
mod_dir
(B)
指定目录索引文件以及为目录提供"尾斜杠"重定向
mod_env
(B)
允许Apache修改或清除传送到CGI脚本和SSI页面的环境变量
mod_filter
(B)
根据上下文实际情况对输出过滤器进行动态配置
mod_imagemap
(B)
处理服务器端图像映射
mod_include
(B)
实现服务端包含文档(SSI)处理
mod_isapi
(B)
仅限于在Windows平台上实现ISAPI扩展
mod_log_config
(B)
允许记录日志和定制日志文件格式
mod_mime
(B)
根据文件扩展名决定应答的行为(处理器/过滤器)和内容(MIME类型/语言/字符集/编码)
mod_negotiation
(B)
提供内容协商支持
mod_nw_ssl
(B)
仅限于在NetWare平台上实现SSL加密支持
mod_setenvif
(B)
根据客户端请求头字段设置环境变量
mod_status
(B)
生成描述服务器状态的Web页面
mod_userdir
(B)
允许用户从自己的主目录中提供页面(使用"/~username")
mod_auth_digest
(X)
使用MD5摘要认证(更安全,但是只有最新的浏览器才支持)
mod_authn_alias
(E)
基于实际认证支持者创建扩展的认证支持者,并为它起一个别名以便于引用
mod_authn_anon
(E)
提供匿名用户认证支持
mod_authn_dbd
(E)
使用SQL数据库为认证提供支持
mod_authn_dbm
(E)
使用DBM数据库为认证提供支持
mod_authnz_ldap
(E)
允许使用一个LDAP目录存储用户名和密码数据库来执行基本认证和授权
mod_authz_dbm
(E)
使用DBM数据库文件为组提供授权支持
mod_authz_owner
(E)
基于文件的所有者进行授权
mod_cache
(E)
基于URI键的内容动态缓冲(内存或磁盘)
mod_cern_meta
(E)
允许Apache使用CERN httpd元文件,从而可以在发送文件时对头进行修改
mod_charset_lite
(X)
允许对页面进行字符集转换
mod_dav
(E)
允许Apache提供DAV协议支持
mod_dav_fs
(E)
为mod_dav
访问服务器上的文件系统提供支持
mod_dav_lock
(E)
为mod_dav
锁定服务器上的文件提供支持
mod_dbd
(E)
管理SQL数据库连接,为需要数据库功能的模块提供支持
mod_deflate
(E)
压缩发送给客户端的内容
mod_disk_cache
(E)
基于磁盘的缓冲管理器
mod_dumpio
(E)
将所有I/O操作转储到错误日志中
mod_echo
(X)
一个很简单的协议演示模块
mod_example
(X)
一个很简单的Apache模块API演示模块
mod_expires
(E)
允许通过配置文件控制HTTP的"Expires:
"和"Cache-Control:
"头内容
mod_ext_filter
(E)
使用外部程序作为过滤器
mod_file_cache
(X)
提供文件描述符缓存支持,从而提高Apache性能
mod_headers
(E)
允许通过配置文件控制任意的HTTP请求和应答头信息
mod_ident
(E)
实现RFC1413规定的ident查找
mod_info
(E)
生成Apache配置情况的Web页面
mod_ldap
(E)
为其它LDAP模块提供LDAP连接池和结果缓冲服务
mod_log_forensic
(E)
实现"对比日志",即在请求被处理之前和处理完成之后进行两次记录
mod_logio
(E)
对每个请求的输入/输出字节数以及HTTP头进行日志记录
mod_mem_cache
(E)
基于内存的缓冲管理器
mod_mime_magic
(E)
通过读取部分文件内容自动猜测文件的MIME类型
mod_proxy
(E)
提供HTTP/1.1的代理/网关功能支持
mod_proxy_ajp
(E)
mod_proxy
的扩展,提供Apache JServ Protocol支持
mod_proxy_balancer
(E)
mod_proxy
的扩展,提供负载平衡支持
mod_proxy_connect
(E)
mod_proxy
的扩展,提供对处理HTTP CONNECT
方法的支持
mod_proxy_ftp
(E)
mod_proxy
的FTP支持模块
mod_proxy_http
(E)
mod_proxy
的HTTP支持模块
mod_rewrite
(E)
一个基于一定规则的实时重写URL请求的引擎
mod_so
(E)
允许运行时加载DSO模块
mod_speling
(E)
自动纠正URL中的拼写错误
mod_ssl
(E)
使用安全套接字层(SSL)和传输层安全(TLS)协议实现高强度加密传输
mod_suexec
(E)
使用与调用web服务器的用户不同的用户身份来运行CGI和SSI程序
mod_unique_id
(E)
为每个请求生成唯一的标识以便跟踪
mod_usertrack
(E)
使用Session跟踪用户(会发送很多Cookie),以记录用户的点击流
mod_version
(E)
提供基于版本的配置段支持
mod_vhost_alias
(E)
提供大批量虚拟主机的动态配置支持
MPM被静态包含进核心,你可以使用下面的配置选项进行选择:
--with-mpm=MPM
- 其中,
MPM
是你想要使用的多路处理模块的名字。如果你不使用这个选项,那么将会使用对应于各平台的默认MPM,可选的MPM如下:beos
, mpmt_os2
, prefork
, worker
apxs(Apache扩展工具)来添加第三方模块支持。
杂项选项
--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
- 允许在子进程崩溃以后启用一个钩子来运行异常处理程序。参见
EnableExceptionHook
指令
--enable-pie
- 将
httpd
编译为位置独立的(Position Independent)可执行程序
--with-port=PORT
- 设定
httpd
的默认的监听端口[默认为:80],该值仅在生成默认配置文件httpd.conf
时使用。
--with-program-name=NAME
- 指定可执行程序的名字[默认为:
httpd
],若使用此选项则默认配置文件的名字将同时变成"NAME.conf"。
原子操作。
--disable-threads
禁用线程支持,如果不使用线程化的MPM ,可以关闭它以减少系统开销。
--disable-lfs
在32-bit平台上禁用大文件支持(large file support)
--enable-threads
启用线程支持,在线程型的MPM上必须打开它
--disable-ipv6
禁用IPv6支持
--disable-dso
禁用DSO支持
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的安装路径。
dbmmanage
之类的支持程序。[
EPREFIX/bin
]
--datadir=DIR
autoconf
提供了该选项,但Apache并未使用它。[
PREFIX/share
]--includedir=DIR
[
EPREFIX/include
]--infodir=DIR
autoconf
提供了该选项,但Apache并未使用它。[
PREFIX/info
]--libdir=DIR
[
EPREFIX/lib
]--libexecdir=DIR
[
EPREFIX/libexec
]--localstatedir=DIR
autoconf
提供了该选项,但Apache并未使用它。[
PREFIX/var
]--mandir=DIR
[
EPREFIX/man
]--oldincludedir=DIR
autoconf
提供了该选项,但Apache并未使用它。[
/usr/include
]--sbindir=DIR
httpd
, apachectl
, suexec
之类的服务程序。[
EPREFIX/sbin
]--sharedstatedir=DIR
autoconf
提供了该选项,但Apache并未使用它。[
PREFIX/com
]--sysconfdir=DIR
httpd.conf
和mime.types
之类的服务器配置文件。[
PREFIX/etc
]mod_actions
(B)
根据特定的媒体类型或请求方法,激活特定的CGI脚本
mod_alias
(B)
提供从文件系统的不同部分到文档树的映射和URL重定向
mod_asis
(B)
发送自己包含HTTP头内容的文件
mod_auth_basic
(B)
使用基本认证
mod_authn_default
(B)
在未正确配置认证模块的情况下简单拒绝一切认证信息
mod_authn_file
(B)
使用纯文本文件为认证提供支持
mod_authz_default
(B)
在未正确配置授权支持模块的情况下简单拒绝一切授权请求
mod_authz_groupfile
(B)
使用纯文本文件为组提供授权支持
mod_authz_host
(B)
供基于主机名、IP地址、请求特征的访问控制
mod_authz_user
(B)
基于每个用户提供授权支持
mod_autoindex
(B)
自动对目录中的内容生成列表,类似于"ls"或"dir"命令
mod_cgi
(B)
在非线程型MPM(prefork
)上提供对CGI脚本执行的支持
mod_cgid
(B)
在线程型MPM(worker
)上用一个外部CGI守护进程执行CGI脚本
mod_dir
(B)
指定目录索引文件以及为目录提供"尾斜杠"重定向
mod_env
(B)
允许Apache修改或清除传送到CGI脚本和SSI页面的环境变量
mod_filter
(B)
根据上下文实际情况对输出过滤器进行动态配置
mod_imagemap
(B)
处理服务器端图像映射
mod_include
(B)
实现服务端包含文档(SSI)处理
mod_isapi
(B)
仅限于在Windows平台上实现ISAPI扩展
mod_log_config
(B)
允许记录日志和定制日志文件格式
mod_mime
(B)
根据文件扩展名决定应答的行为(处理器/过滤器)和内容(MIME类型/语言/字符集/编码)
mod_negotiation
(B)
提供内容协商支持
mod_nw_ssl
(B)
仅限于在NetWare平台上实现SSL加密支持
mod_setenvif
(B)
根据客户端请求头字段设置环境变量
mod_status
(B)
生成描述服务器状态的Web页面
mod_userdir
(B)
允许用户从自己的主目录中提供页面(使用"/~username")
mod_auth_digest
(X)
使用MD5摘要认证(更安全,但是只有最新的浏览器才支持)
mod_authn_alias
(E)
基于实际认证支持者创建扩展的认证支持者,并为它起一个别名以便于引用
mod_authn_anon
(E)
提供匿名用户认证支持
mod_authn_dbd
(E)
使用SQL数据库为认证提供支持
mod_authn_dbm
(E)
使用DBM数据库为认证提供支持
mod_authnz_ldap
(E)
允许使用一个LDAP目录存储用户名和密码数据库来执行基本认证和授权
mod_authz_dbm
(E)
使用DBM数据库文件为组提供授权支持
mod_authz_owner
(E)
基于文件的所有者进行授权
mod_cache
(E)
基于URI键的内容动态缓冲(内存或磁盘)
mod_cern_meta
(E)
允许Apache使用CERN httpd元文件,从而可以在发送文件时对头进行修改
mod_charset_lite
(X)
允许对页面进行字符集转换
mod_dav
(E)
允许Apache提供DAV协议支持
mod_dav_fs
(E)
为mod_dav
访问服务器上的文件系统提供支持
mod_dav_lock
(E)
为mod_dav
锁定服务器上的文件提供支持
mod_dbd
(E)
管理SQL数据库连接,为需要数据库功能的模块提供支持
mod_deflate
(E)
压缩发送给客户端的内容
mod_disk_cache
(E)
基于磁盘的缓冲管理器
mod_dumpio
(E)
将所有I/O操作转储到错误日志中
mod_echo
(X)
一个很简单的协议演示模块
mod_example
(X)
一个很简单的Apache模块API演示模块
mod_expires
(E)
允许通过配置文件控制HTTP的"Expires:
"和"Cache-Control:
"头内容
mod_ext_filter
(E)
使用外部程序作为过滤器
mod_file_cache
(X)
提供文件描述符缓存支持,从而提高Apache性能
mod_headers
(E)
允许通过配置文件控制任意的HTTP请求和应答头信息
mod_ident
(E)
实现RFC1413规定的ident查找
mod_info
(E)
生成Apache配置情况的Web页面
mod_ldap
(E)
为其它LDAP模块提供LDAP连接池和结果缓冲服务
mod_log_forensic
(E)
实现"对比日志",即在请求被处理之前和处理完成之后进行两次记录
mod_logio
(E)
对每个请求的输入/输出字节数以及HTTP头进行日志记录
mod_mem_cache
(E)
基于内存的缓冲管理器
mod_mime_magic
(E)
通过读取部分文件内容自动猜测文件的MIME类型
mod_proxy
(E)
提供HTTP/1.1的代理/网关功能支持
mod_proxy_ajp
(E)
mod_proxy
的扩展,提供Apache JServ Protocol支持
mod_proxy_balancer
(E)
mod_proxy
的扩展,提供负载平衡支持
mod_proxy_connect
(E)
mod_proxy
的扩展,提供对处理HTTP CONNECT
方法的支持
mod_proxy_ftp
(E)
mod_proxy
的FTP支持模块
mod_proxy_http
(E)
mod_proxy
的HTTP支持模块
mod_rewrite
(E)
一个基于一定规则的实时重写URL请求的引擎
mod_so
(E)
允许运行时加载DSO模块
mod_speling
(E)
自动纠正URL中的拼写错误
mod_ssl
(E)
使用安全套接字层(SSL)和传输层安全(TLS)协议实现高强度加密传输
mod_suexec
(E)
使用与调用web服务器的用户不同的用户身份来运行CGI和SSI程序
mod_unique_id
(E)
为每个请求生成唯一的标识以便跟踪
mod_usertrack
(E)
使用Session跟踪用户(会发送很多Cookie),以记录用户的点击流
mod_version
(E)
提供基于版本的配置段支持
mod_vhost_alias
(E)
提供大批量虚拟主机的动态配置支持
MPM被静态包含进核心,你可以使用下面的配置选项进行选择:
--with-mpm=MPM
- 其中,
MPM
是你想要使用的多路处理模块的名字。如果你不使用这个选项,那么将会使用对应于各平台的默认MPM,可选的MPM如下:beos
, mpmt_os2
, prefork
, worker
apxs(Apache扩展工具)来添加第三方模块支持。
杂项选项
--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
- 允许在子进程崩溃以后启用一个钩子来运行异常处理程序。参见
EnableExceptionHook
指令
--enable-pie
- 将
httpd
编译为位置独立的(Position Independent)可执行程序
--with-port=PORT
- 设定
httpd
的默认的监听端口[默认为:80],该值仅在生成默认配置文件httpd.conf
时使用。
--with-program-name=NAME
- 指定可执行程序的名字[默认为:
httpd
],若使用此选项则默认配置文件的名字将同时变成"NAME.conf"。
原子操作。
--disable-threads
禁用线程支持,如果不使用线程化的MPM ,可以关闭它以减少系统开销。
--disable-lfs
在32-bit平台上禁用大文件支持(large file support)
--enable-threads
启用线程支持,在线程型的MPM上必须打开它
--disable-ipv6
禁用IPv6支持
--disable-dso
禁用DSO支持
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的安装路径。
mod_alias
mod_asis
mod_auth_basic
mod_authn_default
mod_authn_file
mod_authz_default
mod_authz_groupfile
mod_authz_host
mod_authz_user
mod_autoindex
mod_cgi
prefork
)上提供对CGI脚本执行的支持mod_cgid
worker
)上用一个外部CGI守护进程执行CGI脚本mod_dir
mod_env
mod_filter
mod_imagemap
mod_include
mod_isapi
mod_log_config
mod_mime
mod_negotiation
mod_nw_ssl
mod_setenvif
mod_status
mod_userdir
mod_auth_digest
mod_authn_alias
mod_authn_anon
mod_authn_dbd
mod_authn_dbm
mod_authnz_ldap
mod_authz_dbm
mod_authz_owner
mod_cache
mod_cern_meta
mod_charset_lite
mod_dav
mod_dav_fs
mod_dav
访问服务器上的文件系统提供支持mod_dav_lock
mod_dav
锁定服务器上的文件提供支持mod_dbd
mod_deflate
mod_disk_cache
mod_dumpio
mod_echo
mod_example
mod_expires
Expires:
"和"Cache-Control:
"头内容mod_ext_filter
mod_file_cache
mod_headers
mod_ident
mod_info
mod_ldap
mod_log_forensic
mod_logio
mod_mem_cache
mod_mime_magic
mod_proxy
mod_proxy_ajp
mod_proxy
的扩展,提供Apache JServ Protocol支持mod_proxy_balancer
mod_proxy
的扩展,提供负载平衡支持mod_proxy_connect
mod_proxy
的扩展,提供对处理HTTP CONNECT
方法的支持mod_proxy_ftp
mod_proxy
的FTP支持模块mod_proxy_http
mod_proxy
的HTTP支持模块mod_rewrite
mod_so
mod_speling
mod_ssl
mod_suexec
mod_unique_id
mod_usertrack
mod_version
mod_vhost_alias
--with-mpm=MPM
- 其中,
MPM
是你想要使用的多路处理模块的名字。如果你不使用这个选项,那么将会使用对应于各平台的默认MPM,可选的MPM如下:beos
,mpmt_os2
,prefork
,worker
apxs(Apache扩展工具)来添加第三方模块支持。
杂项选项
--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
- 允许在子进程崩溃以后启用一个钩子来运行异常处理程序。参见
EnableExceptionHook
指令
--enable-pie
- 将
httpd
编译为位置独立的(Position Independent)可执行程序
--with-port=PORT
- 设定
httpd
的默认的监听端口[默认为:80],该值仅在生成默认配置文件httpd.conf
时使用。
--with-program-name=NAME
- 指定可执行程序的名字[默认为:
httpd
],若使用此选项则默认配置文件的名字将同时变成"NAME.conf"。
原子操作。
--disable-threads
禁用线程支持,如果不使用线程化的MPM ,可以关闭它以减少系统开销。
--disable-lfs
在32-bit平台上禁用大文件支持(large file support)
--enable-threads
启用线程支持,在线程型的MPM上必须打开它
--disable-ipv6
禁用IPv6支持
--disable-dso
禁用DSO支持
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的安装路径。
--enable-http
--enable-v4-mapped
--disable-v4-mapped
--enable-distcache
mod_ssl
中启用distcache支持--enable-maintainer-mode
--enable-exception-hook
EnableExceptionHook
指令--enable-pie
httpd
编译为位置独立的(Position Independent)可执行程序--with-port=PORT
httpd
的默认的监听端口[默认为:80],该值仅在生成默认配置文件httpd.conf
时使用。--with-program-name=NAME
httpd
],若使用此选项则默认配置文件的名字将同时变成"NAME.conf"。--disable-threads
--disable-lfs
--enable-threads
--disable-ipv6
--disable-dso
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-apr-util=DIR|FILE
apu-config
脚本的路径。可以使用此脚本的绝对路径或已有的APU安装目录(apu-config
必须位于此目录或者其下的"bin
"子目录中)。--with-ssl=DIR
mod_ssl
,configure
脚本将会自动搜寻已经安装的OpenSSL ,你可以在这里指定OpenSSL SSL/TLS工具包的位置。--with-sslc=DIR
--with-z=DIR
mod_deflate
),configure
脚本将会自动搜寻已经安装的zlib
库,你可以在这里指定它的安装路径。--with-perl=DIR
apxs
或dbmmanage
,需要Perl5解释器(5.003或以上的版本就足够了)。如果系统中存在多个Perl解释器,比如有系统提供的Perl 4 ,还有你自己安装的Perl 5 ,推荐你使用该选项来指定正确的版本。如果没有Perl 5也没关系,这并不影响Apache httpd的编译和安装,只是相关的支持脚本不能使用而已。--with-pcre=DIR
--with-ldap=DIR
mod_ldap
和mod_authnz_ldap
需要APU支持LDAP(默认并不支持),只要使用其中之一,就要使用该选项指定LDAP的安装路径。一些Apache模块,比如mod_authn_dbm
和mod_rewrite
需要使用DBM数据库,APU中已经包含了SDBM ,所以这个数据库总是可用的。如果你想使用其他类型的数据库,就要使用以下选项:
--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的包含文件和库的位置。
注意
DBM数据库选项是由APU提供并传递给APU配置脚本的。所以如果使用 --with-apr-util
指定一个已安装的APU来代替,那么这些选项便无效。你可以同时使用几种不同的DBM实现,然后使用运行时配置动态选择其中之一。
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的工作机制,请不要使用它!
--enable-static-checkgid
checkgid
--enable-static-htdbm
htdbm
--enable-static-htdigest
htdigest
--enable-static-htpasswd
htpasswd
--enable-static-logresolve
logresolve
--enable-static-rotatelogs
rotatelogs
--enable-suexec
suexec
,它可以允许你为CGI程序指定uid和gid 。如果你不精通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
脚本的默认选择,或者帮助configure
脚本找到名字和/或位置不标准的库和程序。
CC
- C编译器
CFLAGS
- C编译器的flags
CPP
- C预处理程序
CPPFLAGS
- C/C++预处理程序flags,比如使用"
-Iincludedir
"指定一个非标准的头文件目录includedir 。 LDFLAGS
- 连接器flags,比如使用"-L
-Llibdir
"指定一个非标准的库文件目录libdir 。