第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
· · · · · · (
收起)