zoukankan      html  css  js  c++  java
  • [转]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
  • 相关阅读:
    Windows 8实例教程系列 开篇
    qt 开发发布于 windeploy.exe
    qt qoci 测试验证
    vmware vmx 版本不兼容
    qt oracle
    vc qt dll
    QOCIDriver unable to create environment
    qoci 编译完 放置位置 具体根据情况
    calling 'lastError' with incomplete return type 'QSqlError' qsqlquer
    Hbase 操作工具类
  • 原文地址:https://www.cnblogs.com/Quincy/p/2694593.html
Copyright © 2011-2022 走看看