第1章 LAMMP 18
1.1 Linux 19
1.2 Apache 20
1.3 MySQL 21
1.4 memcached 22
1.4.1 Gear6 23
1.4.2 Clickability 23
1.4.3 GaiaOnline 24
1.4.4 memcached的工作原理 24
1.5 Perl 25
1.6 其他技术 27
1.6.1 Sphinx 27
1.6.2 Gearman 27
1.7 展望未来 28
1.8 开源Web开发和数据库的未来 29
1.9 值得关注的项目 30
1.10 本章小结 30
第2章 MySQL 31
2.1 CGI和PHP是如何神奇地改变Web的 31
2.2 MySQL概述 32
2.3 MySQL程序 35
2.3.1 客户端程序 36
2.3.2 实用程序 41
2.3.3 MySQL守护程序和启动实用程序 43
2.4 处理数据 45
2.4.1 创建模式和表 45
2.4.2 插入数据 51
2.4.3 查询数据 54
2.4.4 更新数据 66
2.4.5 删除数据 69
2.4.6 替换数据 72
2.4.7 INSERT ... ON DUPLICATE KEY UPDATE 74
2.4.8 运算符 75
2.4.9 函数 75
2.4.10 使用帮助 87
2.4.11 MySQL中的用户自定义变量 89
2.5 MySQL特权 91
2.5.1 MySQL访问控制特权系统 91
2.5.2 MySQL全局系统用户 91
2.5.3 MySQL系统模式授权表 92
2.5.4 账户管理 96
2.6 本章小结 100
第3章 MySQL高级进阶 102
3.1 SQL的特性 102
3.1.1 存储过程与函数 103
3.1.2 触发器 111
3.1.3 视图 119
3.1.4 用户自定义函数 122
3.2 存储引擎 128
3.2.1 通用存储引擎 128
3.2.2 存储引擎的功能 130
3.3 使用存储引擎 130
3.3.1 MyISAM存储引擎 132
3.3.2 InnoDB存储引擎 135
3.3.3 Archive存储引擎 140
3.3.4 Federated存储引擎 141
3.3.5 Tina/CSV存储引擎 147
3.3.6 Blackhole存储引擎 149
3.4 复制 149
3.4.1 复制概述 150
3.4.2 复制模式 151
3.4.3 复制的命令选项 153
3.4.4 复制的安装与设置 155
3.4.5 搜索文本 164
3.4.6 何时使用Sphinx 177
3.5 本章小结 177
第4章 Perl入门 179
4.1 Perl的确切含义 179
4.2 Perl简介 181
4.3 Perl数据类型 181
4.3.1 标量变量 181
4.3.2 数组变量 183
4.3.3 散列变量 183
4.3.4 文件句柄 183
4.3.5 type glob变量 183
4.3.6 子例程 184
4.4 变量的用法 184
4.4.1 引用 184
4.4.2 标量的用法 189
4.4.3 数组的用法与迭代 190
4.4.4 散列的使用 194
4.4.5 写入文件 200
4.4.6 STDOUT与STDERR 200
4.4.7 进程的文件句柄 200
4.4.8 子例程 202
4.4.9 变量作用域 204
4.5 程序包 208
4.5.1 Perl模块 209
4.5.2 编写Perl模块 210
4.5.3 @ISA数组 213
4.5.4 模块的文档化 213
4.5.5 使模块可安装 216
4.5.6 测试 217
4.5.7 添加MANIFEST文件 220
4.5.8 CPAN 221
4.6 Regex正则表达式趣话 222
4.6.1 把正则表达式存储在变量中 223
4.6.2 正则表达式优化 223
4.6.3 正则表达式编译 224
4.6.4 组合优化 224
4.7 Perl 6趣闻 224
4.8 本章小结 225
第5章 面向对象的Perl 226
5.1 关于面向对象 226
5.2 Perl语言中的面向对象 228
5.2.1 编写第一个Perl类 228
5.2.2 创建一个程序包 229
5.2.3 构造函数 229
5.2.4 添加方法 231
5.2.5 使用AUTOLOAD按需使用方法 236
5.2.6 其他方法 246
5.2.7 使生活更加轻松:Moose 255
5.3 本章小结 259
第6章 MySQL和Perl 261
6.1 Perl DBI 261
6.1.1 DBI和DBD 262
6.1.2 安装 262
6.1.3 DBI API 263
6.2 连接 265
6.2.1 $dsn参数 265
6.2.2 $username和$password参数 269
6.2.3 $attributes参数值 269
6.2.4 connect_cached方法 270
6.3 语句句柄 270
6.3.1 写入数据 271
6.3.2 读取数据 273
6.3.3 每次一行的提取方法 274
6.3.4 提取方法 274
6.4 绑定方法 277
6.4.1 绑定输入参数 277
6.4.2 绑定输出参数 278
6.5 其他语句句柄方法 280
6.5.1 rows方法 280
6.5.2 dump_results方法 280
6.6 语句句柄特性 281
6.7 MySQL特有的语句句柄特性 282
6.8 多步骤工具方法 285
6.8.1 Do方法 285
6.8.2 selectall_arrayref方法 286
6.8.3 selectall_hashref方法 288
6.8.4 selectcol_arrayref方法 288
6.8.5 selectrow_array方法 288
6.8.6 selectrow_arrayref方法 289
6.8.7 selectrow_hashref方法 289
6.9 其他数据库句柄方法 290
6.9.1 last_insert_id方法 290
6.9.2 ping方法 290
6.9.3 clone方法 291
6.9.4 事务性方法——begin_work、commit与rollback 291
6.10 存储过程 292
6.11 错误处理 294
6.12 Server Admin 296
6.13 本章小结 298
第7章 简单的数据库应用程序 300
7.1 规划应用程序的功能 300
7.1.1 模式设计 300
7.1.2 画一个完整的线框 301
7.1.3 声明和初始化 302
7.1.4 程序入口点 305
7.2 创建表的子例程 307
7.2.1 使用information_schema模式 308
7.2.2 列出联系人 309
7.2.3 编辑联系人 312
7.2.4 插入联系人 316
7.2.5 更新联系人 317
7.2.6 删除联系人 318
7.3 测试update_contact、insert_contact以及delete_contact 319
7.3.1 编辑联系人 320
7.3.2 添加联系人 321
7.3.3 删除联系人 322
7.4 查找联系人 324
7.5 测试查找联系人的功能 325
7.6 本章小结 328
第8章 memcached 329
8.1 memcached的概念 329
8.2 使用memcached的方式 331
8.2.1 Gearman的含义 333
8.2.2 缓存策略 333
8.3 安装memcached 334
8.3.1 CentOS操作系统 334
8.3.2 Ubuntu操作系统 335
8.3.3 通过源代码安装memcached 336
8.4 启动memcached 337
8.4.1 启动脚本 338
8.4.2 基于Debian的启动脚本 338
8.4.3 基于Redhat的启动脚本 339
8.4.4 安装Perl模块Cache::Memcached 339
8.5 使用Cache::Memcached 340
8.5.1 连接与实例化 340
8.5.2 memcached的操作 341
8.5.3 Cache::Memcached API 341
8.6 memcached的简单示例 344
8.6.1 在memcached中存储标量 345
8.6.2 复杂的数据类型 346
8.6.3 添加与替换 347
8.7 一个更加实用的示例 348
8.7.1 用户应用程序 348
8.7.2 数据设计 348
8.7.3 UserApp程序包 350
8.7.4 实例化 351
8.7.5 数据库连接器方法 351
8.7.6 数据检索方法 351
8.7.7 简单存取器方法 355
8.7.8 数据修改方法 356
8.7.9 使用UserApp 359
8.7.10 memcached连接器方法 362
8.7.11 缓存实现计划 362
8.7.12 在何处添加缓存 363
8.7.13 缓存键模式 363
8.7.14 预先缓存 364
8.7.15 预先缓存城市 364
8.7.16 预先缓存州 365
8.7.17 使用实例化调用预先缓存的方法 366
8.7.18 修改存取器方法来使用缓存 366
8.7.19 用户数据缓存—— Set方法的修改 368
8.7.20 用户数据缓存—— Get方法的修改 369
8.7.21 现在的UserApp具有缓存功能 370
8.8 本章小结 375
第9章 libmemcached 376
9.1 libmemcached的含义 376
9.1.1 libmemcached的功能 377
9.1.2 libmemcached的实用工具程序简介 377
9.1.3 安装libmemcached 378
9.2 libmemcached的实用工具程序 378
9.2.1 memcat 378
9.2.2 memflush 379
9.2.3 memcp 379
9.2.4 memstat 379
9.2.5 memrm 380
9.2.6 memslap 380
9.2.7 memerror 381
9.3 libmemcached的Perl驱动程序 381
9.3.1 安装 382
9.3.2 Memcached::libmemcached和使用它的libmemcached API 382
9.3.3 连接函数 383
9.3.4 libmemcached的行为函数 383
9.3.5 设置值的函数 386
9.3.6 数据检索(get)函数 388
9.3.7 增量、减量和删除 389
9.3.8 信息和实用程序函数 389
9.3.9 面向对象的接口 390
9.3.10 面向过程的Memcached::libmemcached程序示例 391
9.3.11 面向对象的Memcached::libmemcached程序示例 392
9.4 Cache::memcached::libmemcached 393
9.4.1 性能比较 393
9.4.2 编写自己的比较脚本 394
9.5 本章小结 398
第10章 Memcached Functions for MySQL 400
10.1 Memcached Functions for MySQL概述 400
10.2 Memcached Functions for MySQL的工作原理 401
10.3 安装Memcached Functions for MySQL 401
10.3.1 前提条件 402
10.3.2 配置源代码 402
10.3.3 创建源代码 403
10.3.4 安装UDF 403
10.3.5 检查安装 404
10.4 使用Memcached Functions for MySQL 405
10.4.1 创建一个到memcached 服务器的连接 405
10.4.2 设置值 406
10.4.3 提取、递增和递减函数 412
10.4.4 行为函数 414
10.4.5 统计函数 417
10.4.6 版本函数 419
10.5 使用memcached UDF函数 419
10.5.1 单一数据库句柄示例 420
10.5.2 使用触发器(以及UDF)的乐趣 426
10.5.3 使用简单的选择语句进行通读缓存 430
10.5.4 更新 432
10.6 本章小结 433
第11章 Apache 435
11.1 理解Apache:概述 435
11.2 理解Apache模块API 438
11.2.1 Apache 2.2自Apache 1.3以来的变化 438
11.2.2 Apache 2.2请求阶段 439
11.2.3 新模块和修改的模块 441
11.3 安装Apache 443
11.3.1 在Windows操作系统中安装Apache 443
11.3.2 在运行中的UNIX系统上安装Apache和mod_perl 445
11.3.3 在Apple OS X (10.5)操作 系统上安装Apache 447
11.3.4 在UNIX操作系统上安装Apache源 447
11.4 从源代码安装mod_perl 451
11.5 从源代码安装libapreq2 452
11.6 Apache配置 453
11.6.1 配置节容器指令 454
11.6.2 基本指令 457
11.6.3 服务器调整指令 460
11.6.4 日志指令 463
11.6.5 错误指令 464
11.6.6 访问控制、身份验证和授权 466
11.6.7 .htaccess文件指令 469
11.6.8 索引指令 470
11.6.9 CGI指令 473
11.6.10 VirtualHost指令 475
11.6.11 处理程序和过滤器指令 476
11.6.12 客户端处理指令 477
11.6.13 SSL指令 478
11.6.14 点击流分析 481
11.6.15 重写URL 483
11.6.16 条件模式 486
11.6.17 Apache倒置代理 493
11.6.18 启用mod_proxy模块 495
11.6.19 mod_proxy指令 495
11.6.20 Apache服务器控制 497
11.7 Apache配置方案 498
11.7.1 源代码安装 498
11.7.2 Ubuntu/Debian 498
11.7.3 Centos/Redhat操作系统变种 500
11.7.4 SUSE操作系统 501
11.7.5 Windows 503
11.8 常用的Apache任务 506
11.8.1 配置基于名称的虚拟主机 506
11.8.2 设置HTTP基本身份验证 508
11.8.3 设置摘要式身份验证 509
11.8.4 配置安全的服务器 510
11.8.5 设置带有合法安全证书的安全服务器 512
11.8.6 使用两个虚拟主机设置倒置代理 513
11.9 本章小结 514
第12章 联系人列表应用程序 516
12.1 同时使用MySQL和memcached 516
12.2 CGI 程序 517
12.2.1 CGI Apache安装 517
12.2.2 基本的CGI程序 517
12.2.3 用户界面 519
12.2.4 数据库存储要求 526
12.3 程序流程 527
12.3.1 重要的先说 527
12.3.2 程序实现 528
12.4 WebApp类方法 541
12.4.1 new()方法实例化 543
12.4.2 连接MySQL 544
12.4.3 连接memcached 545
12.4.4 getUsers()方法 546
12.4.5 getUser()方法 549
12.4.6 saveUser()方法 550
12.5 数据库方法 554
12.5.1 insertUser()方法 554
12.5.2 updateUser()方法 555
12.5.3 deleteUsers()方法 557
12.5.4 userExists()方法 559
12.6 缓存方法 560
12.6.1 saveUserToCache()方法 561
12.6.2 cacheUsers()方法 562
12.6.3 getUsersFromCache()方法 564
12.6.4 userExistsInCache()方法 565
12.6.5 deleteUserFromCache()方法 566
12.6.6 setMemcUIDList()方法 567
12.6.7 updateMemcUIDList()方法 568
12.6.8 deleteMemcUIDList()方法 570
12.6.9 getMemcUIDList()方法 571
12.7 其他方法 572
12.7.1 getStates()方法 572
12.7.2 getState()方法 573
12.7.3 encodeUserData()方法 574
12.8 测试 575
12.9 本章小结 576
第13章 mod_perl处理程序 577
13.1 mod_perl 2.0的新特性 577
13.2 配置mod_perl 578
13.3 mod_perl配置指令 581
13.3.1 <Perl>节 581
13.3.2 PerlModule 582
13.3.3 PerlLoadModule 582
13.3.4 SetHandler perl-script 582
13.3.5 SetHandler modperl 583
13.3.6 PerlSetEnv 583
13.3.7 PerlPassEnv 583
13.3.8 PerlSetVar 583
13.3.9 PerlAddVar 584
13.3.10 PerlPostConfigRequire 584
13.3.11 PerlRequire 584
13.3.12 PerlOptions 584
13.3.13 PerlSwitches 585
13.3.14 POD 586
13.4 mod_perl处理程序指令 586
13.4.1 处理程序范围 586
13.4.2 处理程序类型 587
13.4.3 处理程序类别 587
13.5 Apache生命周期概述 588
13.5.1 服务器生命周期阶段处理程序 589
13.5.2 连接周期阶段处理程序 589
13.5.3 过滤器处理程序 590
13.6 Perl Apache2模块 596
13.6.1 Apache2常量和请求记录Perl模块 597
13.6.2 Apache2连接和过滤器记录模块 600
13.6.3 Apache2服务器记录模块 601
13.6.4 Apache2配置模块 602
13.6.5 Apache2资源/性能、状态和其他模块 605
13.7 本章小结 608
第14章 使用mod_perl处理程序 609
14.1 PerlResponseHandler示例 609
14.1.1 设定初始处理程序 610
14.1.2 使用服务器对象和表单分析记录消息 610
14.1.3 设置日志级别和打印HTTP头 611
14.2 连接mod_perl处理程序 615
14.3 PerlPreConnectionHandler示例 615
14.4 其他HTTP请求周期阶段处理程序 620
14.4.1 PerlAccessHandler示例 620
14.4.2 PerlAuthenHandler示例 622
14.4.3 PerlAuthzHandler示例 626
14.4.4 PerlLogHandler示例 629
14.4.5 Perl过滤器处理程序示例 634
14.5 本章小结 637
第15章 更多mod_perl应用程序 639
15.1 使用mod_perl处理程序还是ModPerl::Registry 639
15.1.1 使用ModPerl::RegistryLoader 640
15.1.2 将ModPerl::Registry脚本转换为mod_perl处理程序 640
15.1.3 将mod_perl处理程序转换为ModPerl::Registry脚本 646
15.2 处理Cookie 648
15.2.1 CookieTestHandler 648
15.2.2 用于测试Cookie和头的工具 654
15.3 数据库泛型方法 656
15.3.1 dbGetRef()方法 656
15.3.2 dbInsert()方法 658
15.3.3 dbUpdate()方法 659
15.3.4 dbDelete()方法 660
15.3.5 whereClause()方法 661
15.3.6 buildUpdate()方法 663
15.3.7 buildInsert ()方法 664
15.3.8 WebApp的其他变更 665
15.4 会话管理 667
15.4.1 实现mod_perl处理程序LoginHandler 668
15.4.2 WebApp类简介 672
15.4.3 存储会话数据 675
15.5 文件上载mod_perl处理程序 679
15.5.1 是否在数据库中存储文件 679
15.5.2 数据库表 680
15.5.3 mod_perl处理程序的实现方式 680
15.5.4 需要添加到WebApp的方法 686
15.5.5 使用mod_perl上载处理程序 688
15.6 模板化 689
15.7 HTML::Template 697
15.7.1 标记 697
15.7.2 使用HTML::Template的mod_perl处理程序示例 699
15.7.3 HTML::Template模板 701
15.8 HTML::Mason (Mason) 702
15.8.1 Mason语法 702
15.8.2 内联的Perl节 702
15.8.3 Mason对象 704
15.8.4 Mason组件 704
15.8.5 初始化和清除 706
15.8.6 Mason中的用户清单页面 706
15.9 本章小结 708
第16章 Perl和Ajax 710
16.1 Ajax的定义 710
16.2 mod_perl应用程序和Ajax 711
16.2.1 基本的Ajax示例 711
16.2.2 使用JSON Perl模块的更多示例 716
16.3 本章小结 740
第17章 搜索引擎应用程序 741
17.1 使用Gearman组合搜索引擎应用程序 741
17.1.1 Gearman 741
17.1.2 安装和运行Gearman 742
17.1.3 使用Gearman MySQL UDF 745
17.1.4 Perl和Gearman 747
17.2 搜索引擎应用程序 748
17.2.1 搜索引擎应用程序的数据库表 751
17.2.2 数据库触发器 752
17.2.3 Sphinx设置 753
17.2.4 Gearman worker 757
17.2.5 运行worker 765
17.3 mod_perl处理程序Web应用程序 767
17.3.1 搜索应用程序 767
17.3.2 使用搜索应用程序 777
17.3.3 URL队列应用程序 778
17.3.4 URLHandler— AJAX 应用程序 779
17.3.5 URLQueueHandler mod_perl处理程序 786
17.3.6 URLQueueHandler handler()子例程 787
17.3.7 URLQueue界面 789
17.4 本章小结 791
附录A 安装MySQL 793
附录B 配置MySQL 810
· · · · · · (
收起)