• [转]configure 配置源代码树


    多路处理模块(MPM)

    必须有而且只能有一个MPM被静态包含进核心,你可以使用下面的配置选项进行选择:

    --with-mpm=MPM
    其中,MPM是你想要使用的多路处理模块的名字。如果你不使用这个选项,那么将会使用对应于各平台的默认MPM,可选的MPM如下:beos, mpmt_os2, prefork, worker

    第三方模块

    有至少两种方法可以添加第三方模块,最简单的方法是作为配置参数提供,语法如下:

    --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文件。这种方法有两个明显的缺陷:

    1. 模块的源代码必须是单一文件
    2. 模块只能静态连接进核心,而不能作为DSO模块

    所以一般并不使用此方法,而是使用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"。

    传递给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_sslconfigure脚本将会自动搜寻已经安装的OpenSSL ,你可以在这里指定SSL/TLS工具包的位置。
    --with-sslc=DIR
    如果启用了mod_sslconfigure脚本将会自动搜寻已经安装的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实现,然后使用运行时配置动态选择其中之一。

    支持程序选项

    --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的工作机制,请不要使用它!

    仅在启用了上述选项的情况下,才可以使用以下选项微调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[取决于系统的设定]

    top环境变量

    可以通过指定某些环境变量来修改configure脚本的默认选择,或者帮助configure脚本找到名字和/或位置不标准的库和程序。

    CC
    C编译器
    CFLAGS
    C编译器的flags
    CPP
    C预处理程序
    CPPFLAGS
    C/C++预处理程序flags,比如使用"-Iincludedir"指定一个非标准的头文件目录includedir
    LDFLAGS
    连接器flags,比如使用"-L-Llibdir"指定一个非标准的库文件目录libdir
  • 相关阅读:
    学习之路
    c
    为什么正确,还是有点bug?
    1212
    学习呀
    记录一下学习c语言的过程3.26日1
    字符串处理
    二维数组的转置
    一维数组转置
    Mybatis读取数据实战
  • 原文地址:https://www.cnblogs.com/Quincy/p/2694593.html
Copyright © 2020-2023  润新知