没有合适的资源?快使用搜索试试~ 我知道了~
首页Apache HTTP Server 版本2.2 中文教程
资源详情
资源评论
资源推荐

模块索引 | 指令索引 | 常见问题 | 词汇表 | 站点导航
Apache HTTP Server 版本2.2
Apache > HTTP Server > 文档 > 版本2.2
致谢 | 译者声明 | 本篇译者:金步国 | 本页最后更新:2006年1月4日 | 获取最新版本
Apache HTTP Server Version 2.2 文档 [最后更新:2006年4月20日]
版本说明
• Apache 2.1/2.2 版本的新特性
• Apache 2.0 版本的新特性
• 从 2.0 升级到 2.2
• Apache许可证
参考手册
• 编译与安装
• 启动
• 停止与重新启动
• 运行时配置指令
• 指令速查
• 模块索引
• 多路处理模块(MPM)
• 过滤器
• 处理器
• 服务器与工具
• 词汇表
用户指南
• 地址和端口绑定
• 配置文件
• 配置段
• 内容缓冲
• 内容协商
• 动态共享对象(DSO)
• 环境变量
• 日志文件
• 从URL到文件系统的映射
• 性能调整
• 安全方面的提示
• 服务器全局配置
• SSL/TLS 加密
• CGI脚本的Suexec执行
• URL重写指南
• 虚拟主机
如何.../指南
• 认证、授权、访问控制
• CGI动态网页
• .htaccess 文件
• 服务器端包含(SSI)
• 用户网站目录的管理(public_html)
对特定平台的说明
• Microsoft Windows
• Novell NetWare
• EBCDIC Port
其他
• 常见问题解答
• 站点导航
• 开发者文档
• 其他文档
本文允许自由使用、分发、转载,但必须保留译者署名;详见:译者声明。
模块索引 | 指令索引 | 常见问题 | 词汇表 | 站点导航

模块索引 | 指令索引 | 常见问题 | 词汇表 | 站点导航
Apache HTTP Server 版本2.2
Apache > HTTP Server > 文档 > 版本2.2
致谢 | 译者声明 | 本篇译者:金步国 | 本页最后更新:2006年1月7日 | 获取最新版本
从1.3升级到2.0
为了帮助大伙儿升级,我们为现在的Apache用户提供了一份重要信息的文档说明。这些只是一些简要说明,你可以从新特性文档或src/CHANGES文件中得到更多信息。
编译时配置的改变
● Apache现在使用autoconf和libtool系统来进行安装进程的配置。这个系统用起来很像Apache1.3的APACI系统,但并不相同。
● 在普通的选择编译模块的基础上,Apache2.0把请求进程的主要部分移到了多路处理模块(MPM)里。
运行时配置的改变
● Apache1.3服务器核心中的很多指令现在都放到了MPM里面。如果你希望服务器的行为能够尽量的类似于Apache1.3 ,你应当选择preforkMPM。其他的MPM将拥有不同的
指令来控制进程创建和请求过程。
● proxy module已经被修补以兼容HTTP/1.1。其中重要的改变之一是:代理的访问控制现在是放在<Proxy>段而不是<Directory proxy:>段里面了。
● 许多模块中PATH_INFO (在真实文件名后附加路径信息)的处理有了变化。以前作为处理器而现在作为过滤器出现的模块现在可能不再接受包含PATH_INFO的请求。诸如
INCLUDES或PHP过滤器将在处理核心的最顶层得到实现,从而拒绝包含PATH_INFO的请求。你可以用AcceptPathInfo指令来迫使处理核心接受包含PATH_INFO的请求,
从而恢复服务器端包含中使用PATH_INFO的能力。
● CacheNegotiatedDocs指令现在使用 On 或 Off 参数了。原有的CacheNegotiatedDocs应该代之以CacheNegotiatedDocs on
● ErrorDocument指令不再用引号开始的参数来指定文本内容了。取而代之的是用双引号把文本内容括起来。比如原有的配置:
ErrorDocument 403 "Some Message
应该代之以:
ErrorDocument 403 "Some Message"
只要第二个参数不是有效的URL或路径名,它就会被当作是一个文本信息。
● AccessConfig和 ResourceConfig指令不复存在了。现有的这些指令可以用Include指令代替以实现相同的功能。如果你使用的是这些指令的默认值而没有把它们放到配置文件里
的话,你可能需要把"Include conf/access.conf"和"Include conf/srm.conf"加到你的httpd.conf里。为了确保Apache用象以前一样的顺序读取这些配置文件,应该把
Include指令放
到httpd.conf的结束部分,并将包含srm.conf的语句放在包含access.conf的语句的前面。
● BindAddress和Port指令不再存在了。相同的功能由更加灵活的Listen指令提供。
● Apache1.3中Port指令的另一功能是设定自引用的URL的端口。Apache2.0中对等的是新的ServerName语法:它已经被修改成在一条指令里同时为自引用的URL指定服务器
名和端口号。
● ServerType指令不复存在了。用于伺服请求的方法现在取决于MPM的选择。目前还没有设计出用于被inetd(端口监视程序)载入的MPM。
● mod_log_agent和mod_log_referer被去掉了。取代以使用CustomLog指令的mod_log_config模块。
● AddModule和ClearModuleList指令不复存在了。这些指令原用于确定模块以正确的顺序被激活。而新的Apache2.0 API允许模块明确的指定它们的顺序,从而这些指令就不
再有存在的必要了。
● FancyIndexing指令被去掉了,取而代之的是IndexOptions指令的FancyIndexing选项。
● 由模块mod_negotiation提供的MultiViews内容协商机制在其默认文件匹配方面变得更加严格了,只匹配允许协商的文件。可以用MultiviewsMatch 指令恢复到原来的匹配模
式。
● (2.0.51
以后
) ErrorHeader指令的功能合并到Header指令中去了。因为原来的是一个谬误。应当使用:
Header always set foo bar
代替原来的使用方式。
杂项的改变
● Apache1.3中的实验模块mod_auth_digest现在是基本模块了。
● Apache1.3中的实验模块mod_mmap_static现在被mod_file_cache代替了。
● 发行包经过了重新组织,从而不再包含一个独立的src目录。取而代之的是将源代码有逻辑的组织在发行包的主目录下面。编译后的服务器的安装将从各自的目录下进行。
第三方模块
Apache2.0中的服务器API有了巨大的变化。现有的为Apache1.3设计的模块未经修改将不能运行在Apache2.0上。详情请参见开发者文档。
本文允许自由使用、分发、转载,但必须保留译者署名;详见:译者声明。
模块索引 | 指令索引 | 常见问题 | 词汇表 | 站点导航

模块索引 | 指令索引 | 常见问题 | 词汇表 | 站点导航
Apache HTTP Server 版本2.2
Apache > HTTP Server > 文档 > 版本2.2
致谢 | 译者声明 | 本篇译者:金步国 | 本页最后更新:2006年1月7日 | 获取最新版本
从2.0升级到2.2
为了帮助大伙儿升级,我们为现在的Apache用户提供了一份重要信息的文档说明。这些只是一些简要说明,你可以从新特性文档或src/CHANGES文件中得到更多信息。
这篇文档仅仅描述了从版本 2.0 到 2.2 的变化,如果你是从1.3版进行升级的,请查考从1.3升级到2.0文档。
编译时配置的改变
编译过程与2.0版本非常相似,你曾经使用过的configure命令行(在安装目录下的build/config.nice文件中)在某些情况下仍然可以使用。主要是模块的名称变化了,特别是认证和授权
模块。具体如下:
● mod_imap 被更名为 mod_imagemap
● mod_auth 被拆分为 mod_auth_basic、mod_authn_file、mod_authz_user、mod_authz_groupfile
● mod_access 被更名为 mod_authz_host
● mod_auth_ldap 被更名为 mod_authnz_ldap
● 需要使用 APR 1.0 API
● 将内置的PCRE升级到5.0版本
运行时配置的改变
除了下面讨论的某些特定配置需要进行很小的调整以外,现存的2.0版本的配置文件和启动脚本基本上不需要修改就可以直接用在2.2版本中。另外,如果你使用LoadModule动态加
载了标准模块。你还需要根据上面提到的模块名变更情况适当修改原有配置文件。
如果你选择使用新的2.2版默认配置文件,你将会发现它已经删除了绝大多数不属于基本配置的指令,比以前大大简化了。在安装目录下的conf/extra/子目录中,有一组包含许多高
级特性的示例配置。默认的配置文件被安装在conf/original子目录中。
一些需要注意的运行时配置更改:
● apachectl选项startssl被取消了。要启用SSL支持,你必须编辑httpd.conf文件,在其中包含与mod_ssl相关的指令,然后使用 apachectl start 命令启动服务器。我们提供了一个示
范如何启用
mod_ssl的配置文件:conf/extra/httpd-ssl.conf 。
● 现在,UseCanonicalName的默认值是 Off 。如果原来的配置文件中没有使用这个指令,你可以在其中添加 UseCanonicalName On 以保持和原来的行为相同。
● 除非明确使用UserDir指令在配置文件中指定了一个目录,否则,mod_userdir模块将不会被激活。若想恢复到与原来默认行为相同,你必须在配置文件中添加一行"UserDir
public_html"。
杂项变化
● mod_cache原来在2.0中是试验模块,现在变成标准模块了。
● mod_disk_cache原来在2.0中是试验模块,现在变成标准模块了。
● mod_mem_cache原来在2.0中是试验模块,现在变成标准模块了。
● mod_charset_lite原来在2.0中是试验模块,现在变成标准模块了。
● mod_dumpio原来在2.0中是试验模块,现在变成标准模块了。
第三方模块
大多数2.0版本的第三方模块可以不加修改的运行于2.2版本中。但是这些模块必须要重新进行编译后才能使用。
本文允许自由使用、分发、转载,但必须保留译者署名;详见:译者声明。
模块索引 | 指令索引 | 常见问题 | 词汇表 | 站点导航

模块索引 | 指令索引 | 常见问题 | 词汇表 | 站点导航
Apache HTTP Server 版本2.2
Apache > HTTP Server > 文档 > 版本2.2
致谢 | 译者声明 | 本篇译者:金步国 | 本页最后更新:2006年3月21日 | 获取最新版本
Apache 2.0 新特性概述
此文档描述了Apache 1.3和2.0版本之间的主要变化。
核心的增强
Unix线程
在支持POSIX线程的Unix系统上,现在Apache能在混合的多进程、多线程模式下运行,使很多(但非全部)配置的可伸缩性得到了改善。
新的编译系统
重写了编译系统,现在是基于autoconf和libtool的,使得Apache的配置系统与其他软件包更加相似。
多协议支持
Apache现在已经拥有了能够支持多协议的底层构造。
mod_echo就是一个例子。
对非Unix平台更好的支持
Apache2.0在诸如BeOS、OS/2、Windows等非Unix平台上有了更好的速度和稳定性。随着平台特定的
多路处理模块(MPM)和Apache可移植运行时(APR)的引入,Apache
在这些平台上的指令由它们本地的API指令实现。避免了以往使用POSIX模拟层造成的bug和性能低下。
新的 Apache API
2.0中模块的API有了重大改变。很多1.3中模块排序和模块优先级的问题已经不复存在了。2.0自动处理了很多这样的问题,模块排序现在用per-hook的方法进行,从而拥
有了更多的灵活性。另外,增加了新的调用以提高模块的性能,而无需修改Apache服务器核心。
IPv6 支持
在所有能够由Apache可移植运行时库(APR library)提供IPv6支持的系统上,Apache默认使用IPv6侦听套接字。另外,
Listen、NameVirtualHost、VirtualHost指令也支持IPv6
的数字地址串(比如:"Listen [2001:db8::1]:8080")。
过滤器
Apache的模块现在可以写成过滤器的形式,当内容流经它进入服务器或从服务器流出的时候进行处理。比如,可以用
mod_include中的INCLUDES过滤器将CGI脚本的输出
解析为服务器端包含指令。而
mod_ext_filter允许外部程序充当过滤器的角色,就象用CGI程序做处理器一样。
多语种错误应答
返回给浏览器的错误信息现在已经用SSI文档实现了多语种化。管理员可以利用此功能进行定制以达到感观的一致。
简化了配置
很多易混淆的配置项已经进行了简化。经常产生混淆的Port和BindAddress配置项已经取消了;用于绑定IP地址的只有
Listen指令;ServerName指令中指定的服务器名和端口
仅用于重定向和虚拟主机的识别。
本地 Windows NT Unicode 支持
Apache2.0在WindowsNT上的文件名全部使用utf-8编码。这个操作直接转换成底层的Unicode文件系统,由此为所有以WindowsNT(包括Windows2000/XP/2003)为基础的
安装提供了多语言支持。
这一支持目前尚未涵盖
Windows95/98/ME
系统,因为它们仍使用机器本地的代码页进行文件系统的操作。
正则表达式库更新
Apache2.0包含了
Perl兼容的正则表达式库(PCRE)。所有正则表达式现在都使用了更强大的Perl 5 语法。
模块的增强
mod_ssl
Apache2.0中的新模块。此模块是OpenSSL提供的一个SSL/TLS加密协议接口。
mod_dav
Apache2.0中的新模块。此模块继承了HTTP分布式发布和版本控制规范,用于发布和维护web内容。
mod_deflate
Apache2.0中的新模块。此模块允许支持此功能的浏览器请求的页面内容在发送前进行压缩,以节省网络带宽。
mod_auth_ldap
Apache2.0.41中的新模块。此模块允许使用LDAP数据库存储HTTP基本认证所需的信息。随之而来的另一个模块
mod_ldap则提供了连接池和结果的缓冲。
mod_auth_digest
利用共享内存实现了对跨进程会话缓冲的额外支持。
mod_charset_lite
Apache2.0中的新模块。这个试验模块允许在不同的字符集之间进行转换和重新编码。
mod_file_cache
Apache2.0中的新模块。这个模块包含了Apache1.3中mod_mmap_static模块的功能,另外进一步增加了缓冲能力。
mod_headers
此模块在Apache2.0中更具灵活性。现在,它可以更改
mod_proxy使用的请求头信息,并可以有条件地设置应答头信息。
mod_proxy
代理模块已经被完全重写以充分利用新的过滤器结构的优势,从而实现一个更为可靠的HTTP/1.1代理模块。另外,新的
<Proxy>配置段提供了更具可读性(而且更快)的代理
站点控制;同时,重载<Directory "proxy:...">指令的方法已经不再被支持了。这个模块现在依照协议支持分为proxy_connect、proxy_ftp、proxy_http三个部分。

mod_negotiation
新的
ForceLanguagePriority指令可以确保在所有情况下客户端都收到一个单一文档,以取代
不可接受
或
多选择
的响应。另外,内容协商和MultiViews算法已经进行了优化以
提供更完美的结果,并提供了包括文档内容的新类型表。
mod_autoindex
经过自动索引后的目录列表现在可被配置为使用HTML表格从而使格式更加清晰,而且允许更为细化的排序控制,包括版本排序和通配符过滤目录列表。
mod_include
新的指令集允许修改默认的SSI元素的开始和结束标签,而且允许以主配置文件里的错误提示和时间格式的配置取代SSI文档中的相应部分。正则表达式(现在已基于Perl的
正则表达式语法)的解析和分组结果可以用
mod_include的变量 $0 .. $9 取得。
mod_auth_dbm
现在可以使用
AuthDBMType指令支持多种类似DBM的数据库。
本文允许自由使用、分发、转载,但必须保留译者署名;详见:译者声明。
模块索引 | 指令索引 | 常见问题 | 词汇表 | 站点导航
剩余509页未读,继续阅读















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1