Books & Videos

Table of Contents

  1. mod_perl Administration

    1. Chapter 1 Introducing CGI and mod_perl

      1. A Brief History of CGI
      2. The Apache 1.3 Server Model
      3. The Development of mod_perl 1.0
      4. Apache 1.3 Request Processing Phases
      5. References
    2. Chapter 2 Getting Started Fast

      1. Installing mod_perl 1.0 in Three Steps
      2. Installing mod_perl on Unix Platforms
      3. Configuring and Starting the mod_perl Server
      4. Installing mod_perl for Windows
      5. Preparing the Scripts Directory
      6. A Sample Apache::Registry Script
      7. A Simple mod_perl Content Handler
      8. Is This All We Need to Know About mod_perl?
      9. References
    3. Chapter 3 Installing mod_perl

      1. Configuring the Source
      2. Building mod_perl (make)
      3. Testing the Server (make test)
      4. Installation (make install)
      5. Installation Scenarios for Standalone mod_perl
      6. Building mod_perl with Other Components
      7. Installing mod_perl with the CPAN.pm Interactive Shell
      8. Installing mod_perl on Multiple Machines
      9. Installation into a Nonstandard Directory
      10. How Can I Tell if mod_perl Is Running?
      11. General Notes
      12. References
    4. Chapter 4 mod_perl Configuration

      1. Apache Configuration
      2. mod_perl Configuration
      3. The Startup File
      4. Apache Configuration in Perl
      5. Validating the Configuration Syntax
      6. The Scope of mod_perl Configuration Directives
      7. Apache Restarts Twice
      8. Enabling Remote Server Configuration Reports
      9. Tips and Tricks
      10. Configuration Security Concerns
      11. General Pitfalls
      12. References
    5. Chapter 5 Web Server Control, Monitoring, Upgrade, and Maintenance

      1. Starting the Server in Multi-Process Mode
      2. Starting the Server in Single-Process Mode
      3. Using kill to Control Processes
      4. Using apachectl to Control the Server
      5. Validating Server Configuration
      6. Setuid root Startup Scripts
      7. Preparing for Machine Reboot
      8. Upgrading a Live Server
      9. Three-Tier Server Scheme: Development, Staging, and Production
      10. Web Server Monitoring
      11. Server Maintenance Chores
      12. References
    6. Chapter 6 Coding with mod_perl in Mind

      1. Before You Start to Code
      2. Exposing Apache::Registry Secrets
      3. Namespace Issues
      4. Perl Specifics in the mod_perl Environment
      5. CHECK and INIT Blocks
      6. Apache::Registry Specifics
      7. Transition from mod_cgi Scripts to Apache Handlers
      8. Loading and Reloading Modules
      9. Handling the "User Pressed Stop Button" Case
      10. Handling Server Timeout Cases and Working with $SIG{ALRM}
      11. Generating Correct HTTP Headers
      12. Method Handlers: The Browse and See, Browse and View Example
      13. References
  2. mod_perl Performance

    1. Chapter 7 Identifying Your Performance Problems

      1. Looking at the Big Picture
      2. Asking the Right Questions
      3. References
    2. Chapter 8 Choosing a Platform for the Best Performance

      1. Choosing the Right Operating System
      2. Choosing the Right Hardware
      3. References
    3. Chapter 9 Essential Tools for Performance Tuning

      1. Server Benchmarking
      2. Perl Code Benchmarking
      3. Process Memory Measurements
      4. Apache::Status and Measuring Code Memory Usage
      5. Code Profiling Techniques
      6. References
    4. Chapter 10 Improving Performance with Shared Memory and Proper Forking

      1. Sharing Memory
      2. Forking and Executing Subprocessesfrom mod_perl
      3. References
    5. Chapter 11 Tuning Performance by Tweaking Apache's Configuration

      1. Setting the MaxClients Directive
      2. Setting the MaxRequestsPerChild Directive
      3. Setting MinSpareServers, MaxSpareServers, and StartServers
      4. KeepAlive
      5. PerlSetupEnv
      6. Reducing the Number of stat( ) Calls Made by Apache
      7. Symbolic Links Lookup
      8. Disabling DNS Resolution
      9. Response Compressing
      10. References
    6. Chapter 12 Server Setup Strategies

      1. mod_perl Deployment Overview
      2. Standalone mod_perl-Enabled Apache Server
      3. One Plain and One mod_perl-Enabled Apache Server
      4. One Light Non-Apache and One mod_perl-Enabled Apache Server
      5. Adding a Proxy Server in httpd Accelerator Mode
      6. The Squid Server and mod_perl
      7. Apache's mod_proxy Module
      8. mod_rewrite Examples
      9. Getting the Remote Server IP in the Backend Server in the Proxy Setup
      10. Frontend/Backend Proxying with Virtual Hosts
      11. HTTP Authentication with Two Servers and a Proxy
      12. When One Machine Is Not Enough for Your RDBMS DataBase and mod_perl
      13. Running More than One mod_perl Server on the Same Machine
      14. SSL Functionality and a mod_perl Server
      15. Uploading and Downloading Big Files
      16. References
    7. Chapter 13 TMTOWTDI: Convenience and Habit Versus Performance

      1. Apache::Registry PerlHandler Versus Custom PerlHandler
      2. Apache::args Versus Apache::Request::param Versus CGI::param
      3. Buffered Printing and Better print( ) Techniques
      4. Interpolation, Concatenation, or List
      5. Keeping a Small Memory Footprint
      6. Object Methods Calls Versus Function Calls
      7. Using the Perl stat( ) Call's Cached Results
      8. time( ) System Call Versus $r->request_time
      9. Printing Unmodified Files
      10. Caching and Pre-Caching
      11. Caching with Memoize
      12. Comparing Runtime Performance of Perl and C
      13. References
    8. Chapter 14 Defensive Measures for Performance Enhancement

      1. Controlling Your Memory Usage
      2. Coding for a Smaller Memory Footprint
      3. Conclusion
      4. References
    9. Chapter 15 Improving Performance Through Build Options

      1. Server Size as a Function of Compiled-in Features
      2. mod_status and ExtendedStatus On
      3. DYNAMIC_MODULE_LIMIT Apache Build Option
      4. Perl Build Options
      5. Architecture-Specific Compile Options
      6. References
    10. Chapter 16 HTTP Headers for Optimal Performance

      1. Date-Related Headers
      2. Content Headers
      3. Content Negotiation
      4. HTTP Requests
      5. Avoiding Dealing with Headers
      6. References
  3. Databases and mod_perl

    1. Chapter 17 Databases Overview

      1. Volatile Databases
      2. Non-Volatile Databases
      3. References
    2. Chapter 18 mod_perl Data-Sharing Techniques

      1. Sharing the Read-Only Data in and Between Processes
      2. Sharing Data Between Various Handlers
      3. References
    3. Chapter 19 DBM and mod_perl

      1. mod_perl and DBM
      2. Resource Locking
      3. Flawed Locking Methods
      4. Locking Wrappers Overview
      5. Tie::DB_Lock
      6. Examples
      7. References
    4. Chapter 20 Relational Databases and mod_perl

      1. Persistent Database Connections with Apache::DBI
      2. Improving Performance
      3. DBI Debug Techniques
      4. References
  4. Debugging and Troubleshooting

    1. Chapter 21 Error Handling and Debugging

      1. Warnings and Errors Explained
      2. Debugging Code in Single-Server Mode
      3. Tracing System Calls
      4. Tracing mod_perl-Specific Perl Calls
      5. Debugging Perl Code
      6. Analyzing Dumped core Files
      7. Hanging Processes: Detection and Diagnostics
      8. Useful Debug Modules
      9. Looking Inside the Server
      10. References
    2. Chapter 22 Troubleshooting mod_perl

      1. Configuration and Startup
      2. Code Parsing and Compilation
      3. Runtime
      4. Shutdown and Restart
    3. Chapter 23 Getting Help and Online Resources

      1. How to Report Problems
      2. Mailing List Etiquette
      3. Resources
  5. mod_perl 2.0

    1. Chapter 24 mod_perl 2.0: Installation and Configuration

      1. What's New in Apache 2.0
      2. What's New in Perl 5.6.0-5.8.0
      3. What's New in mod_perl 2.0
      4. Installing mod_perl 2.0
      5. Configuring mod_perl 2.0
      6. Resources
    2. Chapter 25 Programming for mod_perl 2.0

      1. Migrating to and Programming with mod_perl 2.0
      2. New Apache Phases and Corresponding Perl*Handlers
      3. I/O Filtering
  6. Appendixes

    1. Appendix A mod_perl Recipes

      1. Emulating the Authentication Mechanism
      2. Reusing Data from POST Requests
      3. Redirecting POST Requests
      4. Redirecting While Maintaining Environment Variables
      5. Handling Cookies
      6. Sending Multiple Cookies with the mod_perl API
      7. Sending Cookies in REDIRECT Responses
      8. CGI::params in the mod_perlish Way
      9. Sending Email from mod_perl
      10. mod_rewrite in Perl
      11. Setting PerlHandler Based on MIME Type
      12. Singleton Database Handles
      13. Terminating a Child Process on Request Completion
      14. References
    2. Appendix B Apache Perl Modules

      1. Development-Stage Modules
      2. Modules to Aid Debugging
      3. Control and Monitoring Modules
      4. Server Configuration Modules
      5. Authentication-Phase Modules
      6. Authorization-Phase Modules
      7. Access-Phase Modules
      8. Type Handlers
      9. Trans Handlers
      10. Fixup Handlers
      11. Generic Content-Generation Modules
      12. Application-Specific Content-Generation Modules
      13. Database Modules
      14. Toolkits and Frameworks for Content-Generation and Other Phases
      15. Output Filters and Layering Modules
      16. Logging-Phase Handlers
      17. Core Apache Modules
      18. Other Miscellaneous Modules
    3. Appendix C ISPs Providing mod_perl Services

      1. Users Sharing a Single Web Server
      2. Users Sharing a Single Machine
      3. Giving Each User a Separate Machine (Colocation)
      4. Giving Each User a Virtual Machine
    4. Appendix D The Template Toolkit

      1. Fetching and Installing the Template Toolkit
      2. Overview
      3. Typical Uses
      4. Template Toolkit Language
      5. Processing Templates
      6. Apache/mod_perl Handler
      7. Apache::Template Module
      8. Hangman Application
      9. References
    5. Appendix E The AxKit XML Application Server

      1. Installing and Configuring AxKit
      2. Your First AxKit Page
      3. Dynamic Content
      4. More XPathScript Details
      5. XSLT
      6. Putting Everything Together
      7. More Reasons to Use AxKit
    6. Appendix F HTTP Status Codes

      1. HTTP/1.0 Status Codes
      2. HTTP/1.1 Status Codes
      3. References
  1. Colophon