| Foreword | xxvii |
| Acknowledgments | xxxi |
| Introduction | xxxiii |
Part I | Apache Overview | |
1 | Introduction to Apache | 3 |
| What Is Apache? | 4 |
| Downloading Apache | 14 |
2 | Apache 2.0 vs. Apache 1.3, IIS, and Sun One | 23 |
| Apache 2.0 | 24 |
| Apache Server 1.3 | 29 |
| Microsoft Internet Information Server | 31 |
| Sun One | 35 |
Part II | Configuring, Compiling, and Installing Apache | |
3 | Configuring Apache | 41 |
| Extracting the Source | 42 |
| Getting Ready to Configure | 43 |
| Running ./ configure on Unix and Mac OS X | 45 |
4 | Compiling Apache | 63 |
| Unix | 64 |
| Windows | 67 |
| Building Modules Outside the Apache Source | 74 |
5 | Installing Apache | 79 |
| Apache Installation Directories | 80 |
| Installing After Building | 82 |
| Installing a Binary Distribution | 88 |
| Starting Apache for the First Time | 100 |
Part III | Types of Modules | |
6 | Module Overview | 109 |
| What Are Modules Used For? | 110 |
| Categories of Standard Apache Modules | 113 |
| Phases of Request Processing | 118 |
7 | Multi-Processing Modules | 129 |
| What Are MPMs? | 130 |
| Writing an MPM | 131 |
8 | Standard Modules | 161 |
| The Module Structure | 162 |
| Command Table | 164 |
| Writing a Simple Module | 169 |
Part IV | Apache Modules | |
9 | Setting Up a Basic HTTP Server | 185 |
| The Configuration File | 186 |
| The Essentials of Directives | 191 |
| HTTP Request/Response | 198 |
| When Errors Happen | 202 |
10 | Authentication, Authorization, Accounting | 209 |
| Standard Apache AAA Modules | 210 |
| Where to Store Password Information | 230 |
| More Authentication Modules | 231 |
11 | Building a Web Site | 233 |
| How It Used to Be Done | 234 |
| What Is Web-Based Distributed Authoring and Versioning? | 236 |
| Setting Up DAV on Your Web Site | 239 |
| DAV Clients | 245 |
12 | Generating Content | 251 |
| Generators Included with Apache | 252 |
| Writing a Content Generator | 276 |
13 | Filters | 291 |
| Setting Up Filters | 293 |
| Filters Included with Apache | 295 |
| How Filters Work | 309 |
| Writing an Output Filter | 328 |
14 | What to Do When Your Site Grows | 337 |
| Symbolic Links | 338 |
| Mapping from URI Space to Files | 341 |
| Some Examples of mod_rewrite | 357 |
15 | Virtual Hosts | 361 |
| How Virtual Hosts Work in HTTP | 362 |
| Configuring Virtual Hosts | 363 |
| Keeping Sites Separate | 373 |
| Dealing with a Lot of Virtual Hosts | 380 |
16 | Using Apache to Serve Different Protocols | 383 |
| Why Protocol Modules? | 384 |
| How Protocols Get Mapped to a Request | 386 |
| POP3 | 388 |
| Writing a Protocol Module | 389 |
Part V | Debugging Your Apache Setup | |
17 | ErrorLog | 405 |
| How Do You Know a Problem Exists? | 406 |
| The Error Log, the First Place to Look | 407 |
| When the Error Log Isn't Enough | 412 |
18 | Common Mistakes and Errors | 425 |
| Configuring Apache | 426 |
| Starting and Stopping Apache | 429 |
| Client Problems | 435 |
| Generating and Filtering Content | 436 |
| Security Concerns | 439 |
19 | Using httpd-test | 447 |
| Getting httpd-test | 448 |
| Flood | 449 |
| The Perl Framework | 459 |
Part VI | Apache Administration | |
20 | Logs | 467 |
| The Standard Apache Log Files | 468 |
| Piped Logs | 475 |
| Logging from Within a Module | 481 |
21 | Disk Management | 487 |
| Log Files | 488 |
| File Permissions for Web Pages | 490 |
| File Permissions for Binary Programs | 492 |
| Windows Permissions | 493 |
22 | Performance Tuning | 497 |
| What Is Web Site Performance? | 498 |
| Which MPM to Use | 502 |
| Remove htaccess Files | 503 |
| Which Mutex Are You Using? | 505 |
| Are You Doing DNS Requests During A Request? | 506 |
| Symbolic Links and Apache | 509 |
| Negotiating the File to Serve | 510 |
| Dynamic Modules | 511 |
| Pipelined Connections | 511 |
| What's Serving the Request? | 512 |
23 | Maintenance | 519 |
| Watching the Logs | 520 |
| Keeping Apache Current | 529 |
| Upgrading from 1.3 to 2.0 | 533 |
Part VII | Advanced Apache Administration | |
24 | Splitting Up Configuration Tasks | 541 |
| Splitting the Configuration File | 542 |
| Changing the Configuration Through htaccess | 545 |
25 | Adding Third-Party Modules to Your Server | 553 |
| mod_perl | 554 |
| mod_php | 560 |
| mod_snake | 564 |
| Other Modules | 567 |
Part VIII | Apache Security | |
26 | Secure Sockets Layer | 589 |
| What Is SSL | 591 |
| Setting Up SSL | 599 |
| The SSL Session Cache | 611 |
27 | Firewalls and Proxies | 615 |
| What Is a Firewall? | 616 |
| Getting Through the Firewall with a Proxy | 617 |
| Setting Up Your Browser for a Proxy | 626 |
| Setting Up the Proxy to Cache Pages | 627 |
| SSL and Proxy | 631 |
Part IX | Appendixes | |
A | Possible Apache Log Messages | 639 |
| EMERG | 640 |
| ALERT | 641 |
| CRIT | 643 |
| ERR | 646 |
| WARNING | 660 |
| NOTICE | 665 |
| INFO | 671 |
| DEBUG | 674 |
B | Source Code and Example Configurations | 681 |
| Source Code | 682 |
| Example Configuration File | 733 |
C | Other Apache Resources | 739 |
| Books | 740 |
| Web Sites | 741 |
| Index | 743 |