Apache源码安装配置参数
来源:互联网 发布:开通淘宝达人 编辑:程序博客网 时间:2024/06/06 01:38
尊重原著:http://sarsgetaway.iteye.com/blog/1164833
configure
脚本配置Apache的源代码树并且将其安装到指定的平台上。丰富的选项允许你根据自己的特定状况和特定需求对Apache进行定制。
这个脚本位于源代码树的根目录下,并且只能用于类Unix操作系统。要了解其他平台的信息,参见:针对特定平台的说明文档。
语法
你必须在源代码树的根目录下调用configure
脚本,语法如下:
./configure [OPTION]... [VAR=VALUE]...
若要指定环境变量(比如:CC
, CFLAGS
...),请使用 VAR=VALUE
的格式。下面有一些有用的环境变量说明。
选项
- 配置选项
- 安装目录
- 系统类型
- 模块选项
- 杂项选项
- 传递给
apr-config
脚本的选项 - 特殊程序包选项
- 支持程序选项
配置选项
下列选项会影响configure
脚本自身的行为。方括号"[]"内是默认值。
-C
--config-cache
--cache-file=config.cache
--cache-file=FILE
-h
--help[=short|recursive]
short
参数将只显示正在运行的当前脚本的选项,而不能列出适用于Apache配置脚本所运行的外部配置脚本的选项。使用recursive
参数将显示所有程序包的简短描述。-n
--no-create
configure
脚本运行结束后不输出结果文件,常用于正式编译前的测试。 -q
--quiet
checking ...
"消息。 --srcdir=DIR
--silent
--quiet
安装目录
这些选项控制着安装目录的结构。安装目录的结构取决于所选择的布局。方括号"[]"内是默认值。
--prefix=PREFIX
/usr/local/apache2
]--exec-prefix=EPREFIX
默认情况下,make install
将会把所有文件分别安装到/usr/local/apache2/bin
,/usr/local/apache2/lib
目录下。可以用 --prefix
指定一个不同于/usr/local/apache2
的安装前缀,比如:--prefix=$HOME
。
定义一个目录布局
--enable-layout=LAYOUT
config.layout
文件中包含了默认布局的示例,你可以根据它创建你自己的布局。这个文件中的不同布局使用<Layout FOO>...</Layout>
段进行分组,其中的FOO
就是布局名。默认的布局是Apache
。安装目录微调
可以使用下面的选项微调安装目录。下列选项的默认值由autoconf
自动设置并在方括号"[]"内说明。
--bindir=DIR
htpasswd
,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
]系统类型
这些选项用于交叉编译在其他平台上运行的Apache HTTP服务器。在同一平台上编译和运行Apache HTTP服务器通常不需要使用这些选项,脚本会自动检测并设置。方括号"[]"内是默认值。
--build=BUILD
[
config.guess
脚本的检测结果] --host=HOST
[BUILD]
--target=TARGET
autoconf
提供了该选项,但Apache并未使用它。[HOST]
模块选项
有两种使用模块的方法:一是静态连接进核心,二是作为DSO模块动态加载;如果编译中包含任何DSO模块,则mod_so会被自动包含进核心。如果希望核心能够装载DSO,但不实际编译任何DSO模块,则需明确指定"--enable-so=static"。
一般语法
一般情况下你可以使用如下语法启用或者禁用某个模块:
--disable-MODULE
--enable-MODULE=shared
--enable-MODULE=static
--enable-mods-shared=MODULE-LIST
--enable-modules=MODULE-LIST
上述 MODULE-LIST 可以是:
(1)用引号界定并且用空格分隔的模块名列表
--enable-mods-shared='headers rewrite dav'
(2)"most
"(大多数模块[遇见错误模块时忽略该模块而不中断配置过程])
(3)"all
"(所有模块[遇见错误模块时中断配置过程并报错])
--enable-mods-shared=most
注意
configure
将忽略MODULE和MODULE-LIST中的拼写错误,注意仔细拼写。用于MODULE和MODULE-LIST中的名称是"mod_NAME
"中去掉"mod_
"并将剩余部分中的下划线"_
"替换为连字符"-
"以后的结果,比如"mod_log_config
"模块应当表示为"log-config"。模块列表
基本(B)模块默认包含,必须明确禁用;扩展(E)/实验(X)模块默认不包含,必须明确启用。
模块名称状态简要描述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
的扩展,提供对处理HTTPCONNECT
方法的支持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)
必须有而且只能有一个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
文件。这种方法有两个明显的缺陷:
- 模块的源代码必须是单一文件
- 模块只能静态连接进核心,而不能作为DSO模块
所以一般并不使用此方法,而是使用apxs
(Apache扩展工具)来添加第三方模块支持。
杂项选项
--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"。传递给apr-config
脚本的选项
译者注:下述选项并未出现在官方手册中,译者不保证其真实性,仅供有兴趣的玩家参考。
--enable-nonportable-atomics
--disable-threads
--disable-lfs
--enable-threads
--disable-ipv6
--disable-dso
特殊程序包选项
这些指令用于定义特殊程序包相关的选项。
--with-included-apr
--with-apr=DIR|FILE
apr-config
脚本的路径。可以使用此脚本的绝对路径或已有的APR安装目录(apr-config
必须位于此目录或者其下的"bin
"子目录中)。--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]
configure
脚本将会在默认路径上搜索GNU DBM的包含文件和库的位置。如果指定path ,则configure
脚本会在path/lib
和path/include
目录中搜索GNU DBM的包含文件和库。还可以使用"inc-path:lib-path"的形式分别指定GNU DBM的包含文件和库的位置。 --with-ndbm[=path]
configure
脚本将会在默认路径上搜索New DBM的包含文件和库的位置。如果指定path ,则configure
脚本会在path/lib
和path/include
目录中搜索New DBM的包含文件和库。还可以使用"inc-path:lib-path"的形式分别指定New DBM的包含文件和库的位置。 --with-berkeley-db[=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实现,然后使用运行时配置动态选择其中之一。
支持程序选项
--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
[取决于系统的设定]环境变量
可以通过指定某些环境变量来修改configure
脚本的默认选择,或者帮助configure
脚本找到名字和/或位置不标准的库和程序。
CC
CFLAGS
CPP
CPPFLAGS
-Iincludedir
"指定一个非标准的头文件目录includedir 。LDFLAGS
-Llibdir
"指定一个非标准的库文件目录libdir 。- Apache源码安装配置参数
- 源码安装apache及配置转发
- Linux下apache+php源码安装配置
- linux apache 源码包安装与配置
- apache+php的安装配置(源码)
- php源码安装时configure配置参数
- php源码安装时configure配置参数
- linux下Apache+PHP+mysql+phpMyAdmin源码包安装配置
- linux下Apache+PHP+mysql+phpMyAdmin源码包安装配置
- Linux[Centos6.3] 源码编译安装配置 SVN+Apache
- Apache服务器的源码包安装及配置
- Centos 源码安装 Apache 及负载均衡配置
- CentOS下源码手动安装Apache以及配置
- keepalived(源码安装)+lvs+apache高可用配置搭建
- web服务之httpd基础配置与源码安装apache
- Apache+php+mysql的安装与配置 - 之一(Apache的配置参数篇)
- apache 安装编译参数
- apache php源码安装
- 协议学习三
- hdu 1246 自共轭Ferrers图
- HttpModule
- mybatis一---入门
- 非常棒的android资料
- Apache源码安装配置参数
- 程序员的婚恋性心理健康规范
- aam 汇编指令
- 【ORACLE 高可用】 ORACLE STREAM 基于单表的流复制 配置 案例
- SQL server 2005日期函数查询本周、本月数据(较全)
- asp.net 接口
- CentOS下的Memcache安装
- SQLiteManager中SQL语句
- 搭建Android开发环境