# 从1.3升级到2.0
为了帮助大伙儿升级,我们为现在的Apache用户提供了一份重要信息的文档说明。这些只是一些简要说明,你可以从[新特性](#calibre_link-234)文档或`src/CHANGES`文件中得到更多信息。
## 编译时配置的改变
* Apache现在使用autoconf和libtool系统来进行安装进程的配置。这个系统用起来很像Apache1.3的APACI系统,但并不相同。
* 在普通的选择编译模块的基础上,Apache2.0把请求进程的主要部分移到了多路处理模块(MPM)里。
## 运行时配置的改变
* Apache1.3服务器核心中的很多指令现在都放到了MPM里面。如果你希望服务器的行为能够尽量的类似于Apache1.3 ,你应当选择`prefork`MPM。其他的MPM将拥有不同的指令来控制进程创建和请求过程。
* [proxy module](#calibre_link-121)已经被修补以兼容HTTP/1.1。其中重要的改变之一是:代理的访问控制现在是放在`<Proxy>`段而不是`<Directory proxy:>`段里面了。
* 许多模块中`PATH_INFO` (在真实文件名后附加路径信息)的处理有了变化。以前作为处理器而现在作为过滤器出现的模块现在可能不再接受包含`PATH_INFO`的请求。诸如[INCLUDES](#calibre_link-237)或[PHP](http://www.php.net/)过滤器将在处理核心的最顶层得到实现,从而拒绝包含`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上。详情请参见[开发者文档](#calibre_link-116)。
- Apache HTTP Server Version 2.2 文档 [最后更新:2006年3月21日]
- 版本说明
- 从1.3升级到2.0
- 从2.0升级到2.2
- Apache 2.2 新特性概述
- Apache 2.0 新特性概述
- The Apache License, Version 2.0
- 参考手册
- 编译与安装
- 启动Apache
- 停止和重启
- 配置文件
- 配置段(容器)
- 缓冲指南
- 服务器全局配置
- 日志文件
- 从URL到文件系统的映射
- 安全方面的提示
- 动态共享对象(DSO)支持
- 内容协商
- 自定义错误响应
- 地址和端口的绑定(Binding)
- 多路处理模块
- Apache的环境变量
- Apache处理器的使用
- 过滤器(Filter)
- suEXEC支持
- 性能方面的提示
- URL重写指南
- Apache虚拟主机文档
- 基于主机名的虚拟主机
- 基于IP地址的虚拟主机
- 大批量虚拟主机的动态配置
- 虚拟主机示例
- 深入研究虚拟主机的匹配
- 文件描述符限制
- 关于DNS和Apache
- 常见问题
- 经常问到的问题
- Apache的SSL/TLS加密
- SSL/TLS高强度加密:绪论
- SSL/TLS高强度加密:兼容性
- SSL/TLS高强度加密:如何...?
- SSL/TLS Strong Encryption: FAQ
- 如何.../指南
- 认证、授权、访问控制
- CGI动态页面
- 服务器端包含入门
- .htaccess文件
- 用户网站目录
- 针对特定平台的说明
- 在Microsoft Windows中使用Apache
- 在Microsoft Windows上编译Apache
- Using Apache With Novell NetWare
- Running a High-Performance Web Server on HPUX
- The Apache EBCDIC Port
- 服务器和支持程序
- httpd - Apache超文本传输协议服务器
- ab - Apache HTTP服务器性能测试工具
- apachectl - Apache HTTP服务器控制接口
- apxs - Apache 扩展工具
- configure - 配置源代码树
- dbmmanage - 管理DBM格式的用户认证文件
- htcacheclean - 清理磁盘缓冲区
- htdbm - 操作DBM密码数据库
- htdigest - 管理用于摘要认证的用户文件
- httxt2dbm - 生成RewriteMap指令使用的dbm文件
- htpasswd - 管理用于基本认证的用户文件
- logresolve - 解析Apache日志中的IP地址为主机名
- rotatelogs - 滚动Apache日志的管道日志程序
- suexec - 在执行外部程序之前切换用户
- 其他程序
- 杂项文档
- 与Apache相关的标准
- Apache模块
- 描述模块的术语
- 描述指令的术语
- Apache核心(Core)特性
- Apache MPM 公共指令
- Apache MPM beos
- Apache MPM event
- Apache MPM netware
- Apache MPM os2
- Apache MPM prefork
- Apache MPM winnt
- Apache MPM worker
- Apache模块 mod_actions
- Apache模块 mod_alias
- Apache模块 mod_asis
- Apache模块 mod_auth_basic
- Apache模块 mod_auth_digest
- Apache模块 mod_authn_alias
- Apache模块 mod_authn_anon
- Apache模块 mod_authn_dbd
- Apache模块 mod_authn_dbm
- Apache模块 mod_authn_default
- Apache模块 mod_authn_file
- Apache模块 mod_authnz_ldap
- Apache模块 mod_authz_dbm
- Apache模块 mod_authz_default
- Apache模块 mod_authz_groupfile
- Apache模块 mod_authz_host
- Apache模块 mod_authz_owner
- Apache模块 mod_authz_user
- Apache模块 mod_autoindex
- Apache模块 mod_cache
- Apache模块 mod_cern_meta
- Apache模块 mod_cgi
- Apache模块 mod_cgid
- Apache模块 mod_charset_lite
- Apache模块 mod_dav
- Apache模块 mod_dav_fs
- Apache模块 mod_dav_lock
- Apache模块 mod_dbd
- Apache模块 mod_deflate
- Apache模块 mod_dir
- Apache模块 mod_disk_cache
- Apache模块 mod_dumpio
- Apache模块 mod_echo
- Apache模块 mod_env
- Apache模块 mod_example
- Apache模块 mod_expires
- Apache模块 mod_ext_filter
- Apache模块 mod_file_cache
- Apache模块 mod_filter
- Apache模块 mod_headers
- Apache模块 mod_ident
- Apache模块 mod_imagemap
- Apache模块 mod_include
- Apache模块 mod_info
- Apache模块 mod_isapi
- Apache模块 mod_ldap
- Apache模块 mod_log_config
- Apache模块 mod_log_forensic
- Apache模块 mod_logio
- Apache模块 mod_mem_cache
- Apache模块 mod_mime
- Apache模块 mod_mime_magic
- Apache模块 mod_negotiation
- Apache模块 mod_nw_ssl
- Apache模块 mod_proxy
- Apache模块 mod_proxy_ajp
- Apache模块 mod_proxy_balancer
- Apache模块 mod_proxy_connect
- Apache模块 mod_proxy_ftp
- Apache模块 mod_proxy_http
- Apache模块 mod_rewrite
- Apache模块 mod_setenvif
- Apache模块 mod_so
- Apache模块 mod_speling
- Apache模块 mod_ssl
- Apache模块 mod_status
- Apache模块 mod_suexec
- Apache模块 mod_unique_id
- Apache模块 mod_userdir
- Apache模块 mod_usertrack
- Apache模块 mod_version
- Apache模块 mod_vhost_alias
- Developer Documentation for Apache 2.0
- Apache 1.3 API notes
- Debugging Memory Allocation in APR
- Documenting Apache 2.0
- Apache 2.0 Hook Functions
- Converting Modules from Apache 1.3 to Apache 2.0
- Request Processing in Apache 2.0
- How filters work in Apache 2.0
- Apache 2.0 Thread Safety Issues
- 词汇和索引
- 词汇表
- 指令索引
- 指令速查
- 模块索引
- 站点导航