> Apache2.2 中文手册 > configure

configure - 配置源代码树

configure脚本配置Apache的源代码树并且将其安装到指定的平台上。丰富的选项允许你根据自己的特定状况和特定需求对Apache进行定制。

这个脚本位于源代码树的根目录下,并且只能用于类Unix操作系统。要了解其他平台的信息,参见:针对特定平台的说明文档。

configure

下面有一些有用的环境变量说明。

configure

配置选项
  • 安装目录
  • 系统类型
  • 模块选项
  • 杂项选项
  • 传递给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.confmime.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_sslconfigure脚本将会自动搜寻已经安装的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写的支持脚本,如apxsdbmmanage ,需要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_ldapmod_authnz_ldap需要APU支持LDAP(默认并不支持),只要使用其中之一,就要使用该选项指定LDAP的安装路径。

    一些Apache模块,比如mod_authn_dbmmod_rewrite需要使用DBM数据库,APU中已经包含了SDBM ,所以这个数据库总是可用的。如果你想使用其他类型的数据库,就要使用以下选项:

    --with-gdbm[=path]
    使用GNU DBM代替SDBM;如果不指定path ,则configure脚本将会在默认路径上搜索GNU DBM的包含文件和库的位置。如果指定path ,则configure脚本会在path/libpath/include目录中搜索GNU DBM的包含文件和库。还可以使用"inc-path:lib-path"的形式分别指定GNU DBM的包含文件和库的位置。
    --with-ndbm[=path]
    使用New DBM代替SDBM;如果不指定path ,则configure脚本将会在默认路径上搜索New DBM的包含文件和库的位置。如果指定path ,则configure脚本会在path/libpath/include目录中搜索New DBM的包含文件和库。还可以使用"inc-path:lib-path"的形式分别指定New DBM的包含文件和库的位置。
    --with-berkeley-db[=path]
    使用Berkeley DB代替SDBM;如果不指定path ,则configure脚本将会在默认路径上搜索Berkeley DB的包含文件和库的位置。如果指定path ,则configure脚本会在path/libpath/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的工作机制,请不要使用它!

    仅在启用了上述选项的情况下,才可以使用以下选项微调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脚本的默认选择,或者帮助configure脚本找到名字和/或位置不标准的库和程序。

    CC
    C编译器
    CFLAGS
    C编译器的flags
    CPP
    C预处理程序
    CPPFLAGS
    C/C++预处理程序flags,比如使用"-Iincludedir"指定一个非标准的头文件目录includedir
    LDFLAGS
    连接器flags,比如使用"-L-Llibdir"指定一个非标准的库文件目录libdir
    上一篇:
    下一篇: