Practical Mod-Perl

Practical Mod-Perl

  • ただいまウェブストアではご注文を受け付けておりません。 ⇒古書を探す
  • 製本 Paperback:紙装版/ペーパーバック版/ページ数 700 p.
  • 言語 ENG
  • 商品コード 9780596002275
  • DDC分類 005

Full Description


Mod_perl embeds the programming language Perl in the Apache Web server, giving rise to a fast and powerful Web programming environment. New mod_perl users will learn how to quickly and easily get mod_perl compiled and installed. But the primary purpose of this book is to show you how to take full advantage of mod_perl: how to make a mod_perl-enabled Web site as fast, flexible, and easily-maintainable as possible. The authors draw from their own personal experience in the field, as well as the combined experience of the mod_perl community, to present a rich and complete picture of how to set up and maintain a successful mod_perl site. The book also covers the "next generation" of mod_perl: mod_perl 2.0, the threaded, completely rewritten version of mod_perl designed for integration with Apache 2.0.It covers the following topics: configuring mod_perl optimally for your Web site; porting and optimizing programs for a mod_perl environment; performance tuning: getting the very fastest performance from your site; controlling and monitoring the server to circumvent crashes and clogs; integrating with databases efficiently and painlessly; debugging tips and tricks; and maximizing security. Written for Perl Web developers and web administrators, this is a guide to the nuts and bolts of the powerful and popular combination of Apache and mod_perl. From writing and debugging scripts to keeping your server running without failures, the techniques in this book should help you squeeze every ounce of power out of your server.

Contents

Preface Part I. mod_perl Administration 1. Introducing CGI and mod_perl A Brief History of CGI The Apache 1.3 Server Model The Development of mod_perl 1.0 Apache 1.3 Request Processing Phases References 2. Getting Started Fast Installing mod_perl 1.0 in Three Steps Installing mod_perl on Unix Platforms Configuring and Starting the mod_perl Server Installing mod_perl for Windows Preparing the Scripts Directory A Sample Apache::Registry Script A Simple mod_perl Content Handler Is This All We Need to Know About mod_perl? References 3. Installing mod_perl Configuring the Source Building mod_perl (make) Testing the Server (make test) Installation (make install) Installation Scenarios for Standalone mod_perl Building mod_perl with Other Components Installing mod_perl with the CPAN.pm Interactive Shell Installing mod_perl on Multiple Machines Installation into a Nonstandard Directory How Can I Tell if mod_perl Is Running? General Notes References 4. mod_perl Configuration Apache Configuration mod_perl Configuration The Startup File Apache Configuration in Perl Validating the Configuration Syntax The Scope of mod_perl Configuration irectives Apache Restarts Twice Enabling Remote Server Configuration Reports Tips and Tricks Configuration Security Concerns General Pitfalls References 5. Web Server Control, Monitoring, Upgrade, and Maintenance Starting the Server in Multi-Process Mode Starting the Server in Single-Process Mode Using kill to Control Processes Using apachectl to Control the Server Validating Server Configuration Setuid root Startup Scripts Preparing for Machine Reboot Upgrading a Live Server Three-Tier Server Scheme: Development, Staging, and Production Web Server Monitoring Server Maintenance Chores References 6. Coding with mod_perl in Mind Before You Start to Code Exposing Apache::Registry Secrets Namespace Issues Perl Specifics in the mod_perl Environment CHECK and INIT Blocks Apache::Registry Specifics Transition from mod_cgi Scripts to Apache Handlers Loading and Reloading Modules Handling the "User Pressed Stop Button" Case Handling Server Timeout Cases and Working with SIG{ALRM} Generating Correct HTTP Headers Method Handlers: The Browse and See, Browse and View Example References Part II. mod_perl Performance 7. Identifying Your Performance Problems Looking at the Big Picture Asking the Right Questions References 8. Choosing a Platform for the Best Performance Choosing the Right Operating System Choosing the Right Hardware References 9. Essential Tools for Performance Tuning Server Benchmarking Perl Code Benchmarking Process Memory Measurements Apache::Status and Measuring Code Memory Usage Code Profiling Techniques References 10. Improving Performance with Shared Memory and Proper Forking Sharing Memory Forking and Executing Subprocesses from mod_perl References 11. Tuning Performance by Tweaking Apache's Configuration Setting the MaxClients Directive Setting the MaxRequestsPerChild Directive Setting MinSpareServers, MaxSpareServers, and StartServers KeepAlive PerlSetupEnv Reducing the Number of stat( ) Calls Made by Apache Symbolic Links Lookup Disabling DNS Resolution Response Compressing References 12. Server Setup Strategies mod_perl Deployment Overview Standalone mod_perl-Enabled Apache Server One Plain and One mod_perl-Enabled Apache Server One Light Non-Apache and One mod_perl-Enabled Apache Server Adding a Proxy Server in httpd Accelerator Mode The Squid Server and mod_perl Apache's mod_proxy Module mod_rewrite Examples Getting the Remote Server IP in the Backend Server in the Proxy Setup Frontend/Backend Proxying with Virtual Hosts HTTP Authentication with Two Servers and a Proxy When One Machine Is Not Enough for Your RDBMS DataBase and mod_perl Running More than One mod_perl Server on the Same Machine SSL Functionality and a mod_perl Server Uploading and Downloading Big Files References 13. TMTOWTDI: Convenience and Habit Versus Performance Apache::Registry PerlHandler Versus Custom PerlHandle Apache::args Versus Apache::Request::param Versus CGI::param Buffered Printing and Better print( ) Techniques Interpolation, Concatenation, or List Keeping a Small Memory Footprint Object Methods Calls Versus Function Calls Using the Perl stat( ) Call's Cached Results time( ) System Call Versus r->request_time Printing Unmodified Files Caching and Pre-Caching Caching with Memoize Comparing Runtime Performance of Perl and C References 14. Defensive Measures for Performance Enhancement Controlling Your Memory Usage Coding for a Smaller Memory Footprint Conclusion References 15. Improving Performance Through Build Options Server Size as a Function of Compiled-in Features mod_status and ExtendedStatus On DYNAMIC_MODULE_LIMIT Apache Build Option Perl Build Options Architecture-Specific Compile Options References 16. HTTP Headers for Optimal Performance Date-Related Headers Content Headers Content Negotiation HTTP Requests Avoiding Dealing with Headers References Part III. Databases and mod_perl 17. Databases Overview Volatile Databases Non-Volatile Databases References 18. mod_perl Data-Sharing Techniques Sharing the Read-Only Data in and Between Processes Sharing Data Between Various Handlers References 19. DBM and mod_perl mod_perl and DBM Resource Locking Flawed Locking Methods Locking Wrappers Overview Tie::DB_Lock Examples References 20. Relational Databases and mod_perl Persistent Database Connections with Apache::DBI Improving Performance DBI Debug Techniques References Part IV. Debugging and Troubleshooting 21. Error Handling and Debugging Warnings and Errors Explained Debugging Code in Single-Server Mode Tracing System Calls Tracing mod_perl-Specific Perl Calls Debugging Perl Code Analyzing Dumped core Files Hanging Processes: Detection and Diagnostics Useful Debug Modules Looking Inside the Server References 22. Troubleshooting mod_perl Configuration and Startup Code Parsing and Compilation Runtime Shutdown and Restart 23. Getting Help and Online Resources How to Report Problems Mailing List Etiquette Resources Part V. mod_perl 2.0 24. mod_perl 2.0: Installation and Configuration What's New in Apache 2.0 What's New in Perl 5.6.0-5.8.0 What's New in mod_perl 2.0 Installing mod_perl 2.0 Configuring mod_perl 2.0 Resources 25. Programming for mod_perl 2.0 Migrating to and Programming with mod_perl 2.0 New Apache Phases and Corresponding Perl*Handlers I/O Filtering Part VI. Appendixes A. mod_perl Recipes Emulating the Authentication Mechanism Reusing Data from POST Requests Redirecting POST Requests Redirecting While Maintaining Environment Variables Handling Cookies Sending Multiple Cookies with the mod_perl API Sending Cookies in REDIRECT Responses CGI::params in the mod_perlish Way Sending Email from mod_perl mod_rewrite in Perl Setting PerlHandler Based on MIME Type Singleton Database Handles Terminating a Child Process on Request Completion References B. Apache Perl Modules Development-Stage Modules Modules to Aid Debugging Control and Monitoring Modules Server Configuration Modules Authentication-Phase Modules Authorization-Phase Modules Access-Phase Modules Type Handlers Trans Handlers Fixup Handlers Generic Content-Generation Modules Application-Specific Content-Generation Modules Database Modules Toolkits and Frameworks for Content-Generation and Other Phases Output Filters and Layering Modules Logging-Phase Handlers Core Apache Modules Other Miscellaneous Modules C. ISPs Providing mod_perl Services Users Sharing a Single Web Server Users Sharing a Single Machine Giving Each User a Separate Machine (Colocation) Giving Each User a Virtual Machine D. The Template Toolkit Fetching and Installing the Template Toolkit Overview Typical Uses Template Toolkit Language Processing Templates Apache/mod_perl Handler Apache::Template Module Hangman Application References E. The AxKit XML Application Server Installing and Configuring AxKit Your First AxKit Page Dynamic Content More XPathScript Details XSLT Putting Everything Together More Reasons to Use AxKit F. HTTP Status Codes HTTP/1.0 Status Codes HTTP/1.1 Status Codes References Index