第1章 运行服务器程序 1
实践1.1 服务器程序基础 2
实践1.1 练习 3
1.1.1 描述服务器的基本功能 3
1.1.2 理解基本服务器语句的功能 3
实践1.1 练习答案 3
1.1.1 答案 4
1.1.2 答案 4
实践1.1 自测题 5
实践1.2 HTTPD服务器 6
1.2.1 确定服务器是否正在运行 8
1.2.2 确定HTTPD服务器是从什么地方启动的 8
实践1.2 练习 8
1.2.3 确定服务器启动时是否带参数 9
实践1.2 练习答案 9
1.2.1 答案 9
1.2.2 答案 10
1.2.3 答案 10
实践1.2 自测题 10
实践1.3 HTTP服务器程序配置文件 12
实践1.3 练习 13
1.3.1 找到并描述基本的HTTP服务器程序配置文件 14
1.3.2 描述 -dist 文件的用途 14
1.3.3 理解语句(Directive) 14
1.3.1 答案 15
1.3.2 答案 15
1.3.4 找到并描述服务器程序的日志(Log)文件 15
实践1.3 练习答案 15
1.3.3 答案 16
1.3.4 答案 16
实践1.3 自测题 17
实践1.4 运行HTTP守护程序 18
实践1.4 练习 20
1.4.1 选择服务器程序的运行模式 20
1.4.2 选择和改变服务器程序的运行端口 20
1.4.3 理解改变服务器程序运行模式对称的系统的影响 20
1.4.1 答案 21
1.4.2 答案 21
1.4.3 答案 21
实践1.4 练习答案 21
1.4.4 选择服务器是程的进程标识(PID) 21
1.4.4 答案 22
实践1.4 自测题 22
实践1.5 服务器用户以及组 24
实践1.5 练习 25
1.5.1 选择在什么样的用户标识(UID)以及组标识(GID)下运行服务器程序 25
1.5.2 设置在什么样的用记标识(UID)以及组标识(GID)下运行服务器程序 25
1.5.3 理解在某个用户身份下运行服务器程序的效果 26
实践1.5 练习答案 26
1.5.1 答案 26
1.5.2 答案 26
1.5.3 答案 26
实践1.5 自测题 27
第1章 思考题 27
第2章 资源的配置 28
实践2.1 基本资源配置 29
实践2.1 练习 31
2.1.1 理解stm.conf文件的基本配置功能 31
2.1.2 创建新的目录别名(Directory Alias) 31
实践2.1 练习答案 32
2.1.1 答案 32
2.1.2 答案 32
实践2.1 自测题 33
实践2.2 语句的作用范围 34
实践2.2 练习 35
2.2.1 定义域适用的范围 35
2.2.2 定义哪些选项应用于哪些域 35
实践2.2 练习答案 36
2.2.1 答案 36
2.2.2 答案 37
实践2.2 自测题 39
实践2.3 逐个目录配置 41
实践2.3 练习 42
2.3.1 理解访问控制文件的功能 42
2.3.2 通过访问控制文件打开配置选项 42
实践2.3 练习答案 43
2.3.1 答案 43
2.3.2 答案 44
实践2.3 自测题 45
实践2.4 基本索引 46
实践2.4 练习 47
2.4.1 理解与基本的索引有关的语句 47
2.4.1 答案 48
实践2.4 练习答案 48
2.4.2 配置目录索引 48
2.4.2 答案 49
实践2.4 自测题 50
实践2.5 高级索引 51
实践2.5 练习 52
2.5.1 理解用来设置索引选项的语句 52
2.5.2 设置显示索引内容的方式 53
2.5.3 设置使服务器程序忽略某些文件 53
实践2.5 练习答案 54
2.5.1 答案 54
2.5.2 答案 54
2.5.3 答案 55
实践2.5 自测题 55
实践2.6 索引图标 56
实践2.6 练习 57
2.6.1 理解与图标有关的语句 57
2.6.2 设定特定文件使用的图标 58
实践2.6 练习答案 58
2.6.1 答案 59
2.6.2 答案 59
实践2.6 自测题 60
第2章 思考题 60
第3章 服务器配置 61
实践3.1 服务器命名 62
实践3.1 练习 63
3.1.1 理解ServerAdmin语句 63
3.1.2 理解ServerName语句 63
3.1.2 答案 64
实践3.1 自测题 64
实践3.1 练习答案 64
3.1.1 答案 64
实践3.2 服务器和客户 66
实践3.2 练习 68
3.2.1 理解用于启动HTTPD服务器的语句 69
3.2.2 理解用于设置客户访问的语句 69
3.2.3 理解“Keep-Alives”在系统上为ON时的影响 70
实践3.2 练习答案 70
3.2.1 答案 70
3.2.2 答案 71
3.2.3 答案 72
实践3.2 自测题 72
实践3.3 用户页 73
3.3.1 使用户能通过HTTP服务器提供网页 74
实践3.3 练习 74
实践3.3 练习答案 75
3.3.1 答案 75
实践3.3 自测题 77
实践3.4 页重定向 78
实践3.4 练习 79
3.4.1 将用户重定向到新的网页 79
实践3.4 练习答案 80
3.4.1 答案 80
实践3.4 自测题 81
实践3.5 改写URL 82
3.5.1 答案 84
3.5.2 为重写规则设置日志 84
实践3.5 练习答案 84
3.5.1 创建基础规则来重写URL 84
实践3.5 练习 84
3.5.2 答案 85
实践3.5 自测题 86
实践3.6 文件类型 87
实践3.6 练习 89
3.6.1 增加新的MIME类型 89
3.6.2 为特定的范围定义缺省类型 89
3.6.3 添加句柄以处理文件类型 90
实践3.6 练习答案 90
3.6.1 答案 90
3.6.2 答案 91
3.6.3 答案 91
实践3.6 自测题 91
第3章 思考题 92
第4章 运用HTML来展示信息 93
实践4.1 表 94
实践4.1 练习 97
4.1.1 创建表格 97
4.1.2 格式化表格的外观 97
实践4.1 练习答案 98
4.1.1 答案 98
4.1.2 答案 99
实践4.1 自测题 101
实践4.2 图像 102
实践4.2 练习 103
4.2.1 给网页增加图像 103
4.2.2 设置图像的外观 103
4.2.3 将图像作为链接 104
4.2.2 答案 105
实践4.2 练习答案 105
4.2.1 答案 105
4.2.3 答案 107
实践4.2 自测题 108
实践4.3 图像地图 109
实践4.3 练习 112
4.3.1 实现图像地图 112
实践4.3 练习答案 113
4.3.1 答案 113
实践4.3 自测题 114
第4章 思考题 115
第5章 帧 116
实践5.1 帧和帧集合 117
实践5.1 练习 119
5.1.1 理解帧和帧集合 119
5.1.3 将网页引导至特定的帧 120
5.1.2 创建不同形态和大小的帧 120
实践5.1 练习答案 121
5.1.1 答案 121
5.1.2 答案 122
5.1.3 答案 123
实践5.1 自测题 125
实践5.2 帧选项 127
实践5.2 练习 128
5.2.1 创建帧边界 128
5.2.2 创建帧的页边界 128
5.2.3 创建滚动条 128
实践5.2 练习答案 129
5.2.1 答案 129
5.2.3 答案 130
5.2.2 答案 130
实践5.2 自测题 131
第5章 思考题 132
第6章 系统交互 133
实践6.1 表格 134
实践6.1 练习 136
6.1.1 创建简单的表格 136
实践6.1 练习答案 137
6.1.1 答案 137
实践6.1 自测题 141
实践6.2 文件嵌入 142
实践6.2 练习答案 144
6.2.1 答案 144
6.2.1 Web页面动态嵌入文件 144
实践6.2 练习 144
实践6.2 自测题 146
实践6.3 服务器端嵌入——高级的话题 147
实践6.3 练习 148
6.3.1 利用SSI语句动态地增加页面内容 148
实践6.3 练习答案 150
6.3.1 答案 150
实践6.3 自测题 154
第6章 思考题 154
第7章 站点管理 156
实践7.1 基本组织 157
实践7.1 练习 158
7.1.1 理解怎样更有效地组织站点 158
7.1.1 答案 159
实践7.1 练习答案 159
实践7.1 自测题 161
实践7.2 文件名和目录名 162
实践7.2 练习 163
7.2.1 理解选择合适名称的必要性 163
7.2.2 命名文件和目录以提高站点的效率 163
实践7.2 练习答案 164
7.2.1 答案 164
7.2.2 答案 165
实践7.2 自测题 166
实践7.3 文件链接 168
实践7.3 练习 169
7.3.1 学会怎样在Web页里面使用文件链接 169
7.3.2 使用文件和目录来改善网站 170
实践7.3 练习答案 170
7.3.1 答案 171
7.3.2 答案 172
实践7.3 自测题 172
实践7.4 设计Web网站 174
实践7.4 练习 175
7.4.1 设计网站 176
7.4.2 只设计一套页面同时适合框架和非框架的浏览器 176
实践7.4 练习答案 177
7.4.1 答案 177
7.4.2 答案 179
实践7.4 自测题 180
实践7.5 建立网站导航 182
实践7.5 练习 182
7.5.1 建立网站导航帮助 182
7.5.1 答案 183
实践7.5 练习答案 183
实践7.5 自测题 185
第7章 思考题 185
第8章 服务器的安全性 186
实践8.1 区域性安全(Scope Security) 187
实践8.1 练习 188
8.1.1 允许在各个区域内覆盖(overrid)原有配置 188
8.1.2 为每个区域定义存取权限 189
8.1.3 定义基于客户机的访问 190
实践8.1 练习答案 190
8.1.1 答案 191
8.1.2 答案 192
8.1.3 答案 194
实践8.1 自测题 195
实践8.2 文件和目录许可 197
实践8.2 练习 198
8.2.1 理解正确设置文件和目录许可的重要性 198
8.2.2 在服务器上设置正确的文件许可 199
实践8.2 练习答案 199
8.2.1 答案 199
8.2.2 答案 200
实践8.2 自测题 201
实践8.3 访问主机 202
实践8.3 练习 203
8.3.1 理解控制访问系统权限的需要 203
8.3.2 使用域名转换增加安全性 203
实践8.3 练习答案 203
实践8.3 自测题 204
8.3.1 答案 204
8.3.2 答案 204
实践8.4 访问用户 206
实践8.4 练习 207
8.4.1 特殊的用户和对组的限制 207
8.4.2 理解和使用htpasswd程序 208
实践8.4 练习答案 208
8.4.1 答案 208
8.4.2 答案 210
实践8.4 自测题 211
实践8.5 安全与CGI 212
实践8.5 练习 212
8.5.1 理解与CGI有关的基本安全问题 212
8.5.2 使用suEXEC隐藏 213
8.5.1 答案 214
实践8.5 练习答案 214
8.5.2 答案 216
实践8.5 自测题 217
实践8.6 加密套接字协议层与认证 219
实践8.6 练习 220
8.6.1 理解加密套接字协议层的基础 220
8.6.2 理解验证的基础 221
实践8.6 练习答案 221
8.6.1 答案 221
8.6.2 答案 222
实践8.6 自测题 223
第8章 思考题 224
第9章 服务器设计 225
实践9.1 配置防火墙内核 226
实践9.1 练习 227
9.1.1 理解防火墙的基本概念 227
实践9.1 练习答案 228
9.1.1 答案 228
实践9.1 自测题 230
实践实践9.2 包过滤器 232
实践9.2 练习 234
9.2.1 设计Linux系统实现数据包过滤 234
实践9.2 练习答案 235
9.2.1 答案 235
实践9.2 自测题 236
实践9.3 防火墙设计 238
9.3.2 理解每一类型防火墙结构的优点 240
9.3.1 理解防火墙的基本结构 240
实践9.3 练习 240
实践9.3 练习答案 241
9.3.1 答案 241
9.3.2 答案 241
实践9.3 自测题 242
实践9.4 保护服务器 243
实践9.4 练习 244
9.4.1 限制服务以防止非法访问 244
9.4.2 控制使用hosts.allow和hosts.deny进行访问 244
实践9.4 练习答案 245
9.4.1 答案 245
9.4.2 答案 246
实践9.4 自测题 248
实践9.5 限制用户访问权 249
实践9.5 练习 250
9.5.1 了解限制用户权限的基本知识 250
9.5.2 理解用户等价性问题 251
实践9.5 练习答案 251
9.5.1 答案 251
9.5.2 答案 253
实践9.5 自测题 254
第9章 思考题 255
第10章 虚拟主机 256
实践10.1 虚拟主机基础 257
实践10.1 练习 258
10.1.1 理解虚拟主机基础 258
10.1.1 答案 259
实践10.1 练习答案 259
10.1.2 在服务器上创建虚拟主机 259
10.1.2 答案 260
实践10.1 自测题 261
实践10.2 虚拟主机配置 262
实践10.2 练习 263
10.2.1 为每一台虚拟主机配置基本命令 263
实践10.2 练习答案 264
10.2.1 答案 264
实践10.2 自测题 265
实践10.3 虚拟主机——高级专题 266
实践10.3 练习 267
10.3.1 理解和虚拟主机相关的更多复杂内容 267
实践10.3 练习答案 267
10.3.1 答案 267
实践10.3 自测题 268
实践10.4 IP别名 269
实践10.4 练习 270
10.4.1 配置IP别名 270
实践10.4 练习答案 270
10.4.1 答案 270
实践10.4 自测题 272
第10章 思考题 273
第11章 其他服务 274
实践11.1 匿名FTP基础 275
实践11.1 练习 276
11.1.1 设置基本的匿名FTP服务 276
实践11.1 练习答案 277
11.1.1 答案 277
实践11.1 自测题 278
实践11.2 匿名FTP——限制访问 279
实践11.2 练习 281
11.2.1 限制对匿名FTP服务的访问 281
实践11.2 练习答案 282
11.2.1 答案 282
实践11.2 自测题 284
实践11.3 匿名FTP——显示信息型消息 286
实践11.3 练习 287
11.3.1 使用FTP时显示各种各样的消息 287
实践11.3 练习答案 288
11.3.1 答案 288
实践11.3 自测题 290
实践11.4 邮件列表基础 292
实践11.4 练习答案 294
实践11.4 练习 294
11.4.1 理解邮件列表的基本概念 294
11.4.1 答案 295
实践11.4 自测题 295
实践11.5 邮件列表别名 297
实践11.5 练习 298
11.5.1 设置Majordomo别名 298
实践11.5 练习答案 298
11.5.1 答案 298
实践11.5 自测题 299
第11章 思考题 299
第12章 持续的管理 300
实践12.1 DNS查找 301
12.1.2 为主机名查找设置系统 302
实践12.1 练习答案 302
12.1.1 理解主机名查找的需求 302
实践12.1 练习 302
12.1.1 答案 303
12.1.2 答案 303
实践12.1 自测题 303
实践12.2 系统日志 305
实践12.2 练习 307
12.2.1 理解系统日志的基本概念 307
12.2.2 设置系统日志后台程序以满足需求 307
实践12.2 练习答案 308
12.2.1 答案 308
12.2.2 答案 308
实践12.2 自测题 308
实践12.3 服务器日志 310
实践12.3 练习 313
12.3.1 设置Web服务器上的日志 313
实践12.3 练习答案 313
12.3.1 答案 313
实践12.3 自测题 314
实践12.4 网络监视 316
实践12.4 练习 317
12.4.1 为安全问题而监视网络访问 317
实践12.4 练习答案 318
12.4.1 答案 318
实践12.4 自测题 319
实践12.5 机器人、蜘蛛和其他爬行的东西 320
12.5.1 保护系统不受机器人的侵害 321
实践12.5 练习 321
实践12.5 练习答案 322
12.5.1 答案 322
实践12.5 自测题 323
第12章 思考题 323
附录A 自测题答案 325
附录B 安装APACHE服务器程序 339
B.1 资源获取 339
B.2 编译服务器程序 340
B.3 安装服务器程序 341
B.4 支持程序 342
B.5 APACHE模块 343
附录C 以字母顺序排列的APACHE语句 345
附录D APACHE模块 353