第1章 Apache Web服务器简介 1
1.1 什么是Web服务器 1
1.2 HTTP协议 2
1.2.1 什么是HTTP协议 2
1.2.2 HTML语言 3
1.2.3 HTTP协议的会话过程 4
1.3 为什么选用Apache Web服务器 6
1.4 Apache2.0 8
1.5 Apache的网上资源 8
第2章 编译和安装Apache 9
2.1 准备安装Apache 9
2.1.1 计划安装 9
2.1.2 下载Apache安装文件 9
2.1.3 系统要求 11
2.1.4 删除已有的Apache 11
2.2 安装Apache 13
2.2.1 源代码安装 13
2.2.2 二进制代码安装 22
2.3 配置与启动Apache 25
2.3.1 简单配置Apache 25
2.3.2 使用apachectl控制Apache 26
2.3.3 启动和测试Apache 27
2.3.4 让Apache自动启动 27
2.4 在Windows环境下安装Apache 27
第3章 配置和管理Apache 32
3.1 配置的基本知识 32
3.2 配置文件 32
3.2.1 httpd.conf文件 33
3.2.2 配置语法 33
3.2.3 备份和保护配置文件 34
3.2.4 测试配置文件 35
3.3 配置指令的范围和环境 35
3.4 主要指令详解 37
3.4.1 服务器特征指令 38
3.4.2 服务器性能命令 39
3.4.3 目录相关的命令 42
3.5 Apache的其他应用程序 51
3.5.1 httpd 51
3.5.2 apachectl 51
3.5.3 ab 51
3.5.4 apxs 51
第4章 Apache的模块 52
4.1 Apache的原理简介 52
4.1.1 Apache对请求的处理过程 52
4.1.2 模块的结构 53
4.1.3 服务器如何处理请求 55
4.2 模块类型 56
4.2.1 核心模块 57
4.2.2 非核心指令 57
4.3 安装第三方模块 57
4.4 apxs 58
4.5 安装第三方模块示例 59
4.5.1 到哪里找第三方模块 60
4.5.2 apxs安装 60
4.5.3 make安装 62
第5章 跟踪与日志 66
5.1 Apache的几种日志文件 66
5.1.1 错误日志 66
5.1.2 请求记录日志 67
5.2 创建自定义的日志 68
5.2.1 多个日志文件 70
5.2.2 条件日志 71
5.3 跟踪用户 72
5.3.1 Cookie 72
5.3.2 Session 74
5.4 轮换日志文件 74
5.5 日志分析 76
5.5.1 Analog 76
5.5.2 WebTrends Analysis Series 78
第6章 性能优化 80
6.1 硬件及系统配置原则 80
6.2 调整Apache的性能 80
6.2.1 一般原则 80
6.2.2 模块影响 81
6.2.3 负载平衡 81
6.3 与性能优化的相关指令 82
6.3.1 与进程相关的指令优化 82
6.3.2 与协议相关的指令优化 82
6.4 使用kHTTPd 84
6.4.1 下载 84
6.4.2 编译 85
6.4.3 感受kHTTPd 87
6.4.4 kHTTPd的局限 88
6.4.5 kHTTPd参数列表及其说明 88
6.5 高级性能配置 89
6.6 Apache的测试程序ab 89
第7章 故障处理 94
7.1 获得服务器状态 94
7.2 获得服务器配置 96
7.3 使用Telnet获得原始HTTP 97
7.4 错误日志中的常见错误 98
第8章 服务器安全 100
8.1 目录保护 100
8.2 用户权限认证与授权 100
8.2.1 使用基于主机的认证 101
8.2.2 HTTP认证 102
8.3 第三方模块 107
8.4 SSL 108
8.4.1 什么是SSL 108
8.4.2 配置SSL 109
8.5 CGI&SSI上的执行权限 110
8.6 防火墙 111
第9章 创建虚拟主机 112
9.1 虚拟主机的概念 112
9.2 配置DNS 112
9.2.1 基于IP的虚拟主机的DNS设置 113
9.2.2 基于名称的虚拟主机的DNS配置 113
9.3 创建目录 113
9.4 配置Apache 114
第10章 用Apache做代理服务器 118
10.1 什么是代理服务器 118
10.2 客户端代理 118
10.3 服务器端代理 119
10.4 配置指令 119
10.5 用Apache配置代理服务器 121
10.5.1 安装代理模块mod-proxy 121
10.5.2 配置Apache 121
10.6 其他代理服务器 123
第11章 服务器端包含 130
11.1 SSI概述 130
11.2 SSI语法 130
11.3 SSI变量 130
11.4 常用的SSI命令 131
11.5 配置Apache运行SSI 135
11.6 示例 135
第12章 公共网关接口 138
12.1 CGI概述 138
12.2 配置Apache运行CGI 138
12.2.1 创建CGI文件目录 138
12.2.2 配置Apache配置文件httpd.conf 139
12.2.3 指定CGI的扩展名 140
12.3 CGI环境变量 141
12.3.1 Apache扩充的环境变量 141
12.3.2 与环境变量相关的配置指令 142
12.4 使用Perl编写CGI脚本 142
12.4.1 安装和配置Perl 143
12.4.2 安装Perl模块 143
12.4.3 示例 144
12.5 使用C、C++开发CGI 145
12.5.1 CGI开发库 145
12.5.2 示例 145
12.6 调试CGI脚本 151
第13章 FastCGI 153
13.1 FastCGI概述 153
13.1.1 FastCGI的工作过程 153
13.1.2 FastCGI的主要特点 153
13.2 安装FastCGI模块 154
13.3 使用FastCGI编程 157
13.3.1 C示例 157
13.3.2 Per1示例 158
第14章 数据库 160
14.1 数据库知识 160
14.2 MySQL 160
14.2.1 在Linux下安装MySQL 161
14.2.2 在Windows下安装MySQL 162
14.2.3 管理工具 164
14.2.4 第三方的管理工具 171
14.2.5 MySQL数据库操作示例 172
第15章 使用PHP在Apache上编程 175
15.1 PHP简介 175
15.2 PHP4.0 175
15.3 安装PHP 178
15.3.1 在Linux下安装PHP 178
15.3.2 在Windows下安装PHP 180
15.3.3 测试安装 183
15.4 PHP的配置 183
15.5 PHP编程 184
15.5.1 基本语法和函数 184
15.5.2 PHP编程示例 192
第16章 使用JSP/Java Servlet编程 196
16.1 JSP/Java Servlet简介 196
16.2 与PHP比较 197
16.2.1 特性比较 198
16.2.2 应用范围 199
16.2.3 性能比较 199
16.3 Tomcat介绍 200
16.4 Tomcat安装和配置 201
16.4.1 在linux下安装Tomcat 201
16.4.2 在Windows下安装Tomcat 203
16.4.3 开发工具 204
16.5 Servlet编程 205
16.5.1 基本知识 205
16.5.2 Hello World示例 206
16.6 JSP编程 207
16.6.1 基本知识 207
16.6.2 JSP的HELLO WORLD示例 208
16.7 数据库编程示例 208
16.7.1 准备环境 209
16.7.2 编码 209