从1.3升级到2.0
为了帮助同志们升级,我们为现在的Apache用户提供了一份重要信息的文档说明。
这些只是一些简要说明,你可以从新特性文档或src/CHANGES文件中得到更多信息。
- Apache现在应用了
autoconf和libtool系统来进行安装进程配置。这个系统用起来很像(但并不相同)Apache 1.3的APACI 系统。
- 在普通的选择编译模块的基础上,Apache 2.0把请求进程的主要部分移到了多道处理模块 (MPMs)里。

- Apache 1.3服务器的核心中的很多指令现在都放到了MPMs里面。
如果你希望服务器的行为能够尽量的类似于Apache 1.3,
你应当选择prefork MPM。
其他的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指令提供。
Apache-1.3中Port指令的另一功能是设定自指向的URL的端口。
Apache-2.0中对等的是新的ServerName语法:
它已经被修改成在一条指令里同时为自指向的URL指定服务器名和端口号。
ServerType指令不复存在了。
用于伺服请求的方法现在取决于MPM的选择。目前还没有设计出用于被inetd载入的MPM。
- 提供
AgentLog,RefererLog和RefererIgnore
指令的模块mod_log_agent和mod_log_referer被去掉了。
使用mod_log_config模块中CustomLog指令的Agent和referer logs仍然有效。
AddModule和ClearModuleList指令不复存在了。
这些指令原用于确定模块以正确的顺序被激活。
而新的Apache 2.0 API 允许模块明确的指定它们的顺序,
从而这些指令就不再有存在的必要了。
FancyIndexing指令被去掉了,取而代之的是IndexOptions指令的FancyIndexing可选项。
- 由模块
mod_negotiation提供的MultiViews内容协商机制
在其默认文件匹配方面变得更加严格了,只匹配允许协商的文件。
可以用MultiviewsMatch指令恢复到原来的匹配模式。

- Apache 1.3中的实验模块
mod_auth_digest现在是基本模块了。
- Apache 1.3中的实验模块
mod_mmap_static现在被mod_file_cache代替了。
- 发行包经过了重新组织,从而不再包含一个独立的
src目录。
取而代之的是将源代码有逻辑的组织在发行包的主目录下面。
编译后的服务器的安装将从各自的目录下进行。
Apache 2.0 中的服务器API有了巨大的变化。
现有的为Apache 1.3 设计的模块未经修改将不能运行在Apache 2.0上。
详情请参见开发者文档。