Practical mod_perl
- Autorzy:
- Stas Bekman, Eric Cholet
- +169 pkt
- Ocena:
- Bądź pierwszym, który oceni tę książkę
- Stron:
- 928
- Dostępne formaty:
-
ePubMobi
Opis ebooka: Practical mod_perl
mod_perl embeds the popular programming language Perl in the Apache web server, giving rise to a fast and powerful web programming environment. Practical mod_perl is the definitive book on how to use, optimize, and troubleshoot mod_perl.
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.
This book is also the first book to cover the "next generation" of mod_perl: mod_perl 2.0, a completely rewritten version of mod_perl designed for integration with Apache 2.0, which for the first time supports threads.
The book covers the following topics, and more:
- 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
- Maximizing security
Wybrane bestsellery
-
If you're just getting started with Perl, this is the book you want—whether you're a programmer, system administrator, or web hacker. Nicknamed "the Llama" by two generations of users, this best seller closely follows the popular introductory Perl course taught by the authors since 1991. Th...(186.15 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
This practical XGBoost guide will put your Python and scikit-learn knowledge to work by showing you how to build powerful, fine-tuned XGBoost models with impressive speed and accuracy. This book will help you to apply XGBoost’s alternative base learners, use unique transformers for model d...
Hands-On Gradient Boosting with XGBoost and scikit-learn. Perform accessible machine learning and extreme gradient boosting with Python Hands-On Gradient Boosting with XGBoost and scikit-learn. Perform accessible machine learning and extreme gradient boosting with Python
-
f you’re ready to get started with Raku (formerly Perl 6), this is the book you want, whether you’re a programmer, system administrator, or web hacker. Raku is a new language—a modern reinvention of Perl suitable for almost any task, from short fixes to complete web applications...
Learning Perl 6. Keeping the Easy, Hard, and Impossible Within Reach Learning Perl 6. Keeping the Easy, Hard, and Impossible Within Reach
(186.15 zł najniższa cena z 30 dni)186.15 zł
219.00 zł(-15%) -
Perl is a family of high-level, general-purpose, interpreted, dynamic programming languages consisting of Perl 5 and Perl 6. Perl 6 helps developers write concise and declarative code that is easy to maintain. This book is an end-to-end guide that will help non-Perl developers get to grips with t...
Perl 6 Deep Dive. Data manipulation, concurrency, functional programming, and more Perl 6 Deep Dive. Data manipulation, concurrency, functional programming, and more
-
Want to learn how to program and think like a computer scientist? This practical guide gets you started on your programming journey with the help of Perl 6, the younger sister of the popular Perl programming language. Ideal for beginners, this hands-on book includes over 100 exercises with multip...
Think Perl 6. How to Think Like a Computer Scientist Think Perl 6. How to Think Like a Computer Scientist
(186.15 zł najniższa cena z 30 dni)186.15 zł
219.00 zł(-15%) -
Many programmers would love to use Perl for projects that involve heavy lifting, but miss the many traditional algorithms that textbooks teach for other languages. Computer scientists have identified many techniques that a wide range of programs need, such as:Fuzzy pattern matching for text (id...
Mastering Algorithms with Perl. Practical Programming Through Computer Science Mastering Algorithms with Perl. Practical Programming Through Computer Science
(118.15 zł najniższa cena z 30 dni)118.15 zł
139.00 zł(-15%) -
Take the next step toward Perl mastery with advanced concepts that make coding easier, maintenance simpler, and execution faster. Mastering Perl isn't a collection of clever tricks, but a way of thinking about Perl programming for solving debugging, configuration, and many other real-world proble...(143.65 zł najniższa cena z 30 dni)
143.65 zł
169.00 zł(-15%) -
Perl. Mistrzostwo w programowaniu" to wyjątkowa książka pomagająca w samodzielnej nauce, przeznaczona dla programistów, którzy używali już Perla i znają jego podstawy. Podążając za radami z tego przewodnika, nauczysz się definiować procedury i odwracać zwykły model programowania proceduralnego. B...(22.00 zł najniższa cena z 30 dni)
14.90 zł
44.00 zł(-66%) -
Dzięki książce odkryjesz mało znane i mniej typowe zastosowania tego języka. Czytając ją, dowiesz się, w jaki sposób wykorzystać Perl do różnych zadań.(19.50 zł najniższa cena z 30 dni)
9.90 zł
39.00 zł(-75%) -
This book picks up right where Learning Perl leaves off. With Intermediate Perl, you’ll graduate from short scripts to much larger programs, using features that make Perl a general-purpose language. This gentle but thorough guide introduces you to modules, complex data structures, and objec...
Intermediate Perl. Beyond The Basics of Learning Perl. 2nd Edition Intermediate Perl. Beyond The Basics of Learning Perl. 2nd Edition
(143.65 zł najniższa cena z 30 dni)143.65 zł
169.00 zł(-15%)
Ebooka "Practical mod_perl" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Practical mod_perl" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Practical mod_perl" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- ISBN Ebooka:
- 978-05-965-5200-8, 9780596552008
- Data wydania ebooka:
- 2003-05-23 Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 2.3MB
- Rozmiar pliku Mobi:
- 2.3MB
Spis treści ebooka
- Practical mod_perl
- SPECIAL OFFER: Upgrade this ebook with OReilly
- Preface
- What You Need to Know
- Who This Book Is For
- How This Book Is Organized
- Reference Sections
- Filesystem Conventions
- Apache and Perl Versions
- Typographic Conventions
- Command Interpreter Program (Shell) Conventions
- Installing Perl Modules
- Manual Installation
- Prerequisites Needed to Install Perl Modules on Windows
- Building a Perl Module
- Using the CPAN Shell
- Using the Perl Package Manager
- How to Contact Us
- Acknowledgments
- I. mod_perl Administration
- 1. Introducing CGI and mod_perl
- 1.1. A Brief History of CGI
- 1.1.1. The HTTP Protocol
- 1.1.2. The Common Gateway Interface Specification
- 1.1.3. Apache CGI Handling with mod_cgi
- 1.1. A Brief History of CGI
- 1.2. The Apache 1.3 Server Model
- 1.2.1. Forking
- 1.2.2. CGI Scripts Under the Forking Model
- 1.2.3. Performance Drawbacks of Forking
- 1. Introducing CGI and mod_perl
- 1.3. The Development of mod_perl 1.0
- 1.3.1. Running CGI Scripts with mod_perl
- 1.4. Apache 1.3 Request Processing Phases
- 1.4.1. Apache 1.3 Modules and the mod_perl 1.0 API
- 1.4.2. mod_perl 1.0 and the mod_perl API
- 1.5. References
- 2. Getting Started Fast
- 2.1. Installing mod_perl 1.0 in Three Steps
- 2.2. Installing mod_perl on Unix Platforms
- 2.2.1. Obtaining and Unpacking the Source Code
- 2.2.2. Building mod_perl
- 2.2.3. Installing mod_perl
- 2.3. Configuring and Starting the mod_perl Server
- 2.4. Installing mod_perl for Windows
- 2.4.1. Installing mod_perl with the Perl Package Manager
- 2.5. Preparing the Scripts Directory
- 2.6. A Sample Apache::Registry Script
- 2.6.1. Porting Existing CGI Scripts to mod_perl
- 2.7. A Simple mod_perl Content Handler
- 2.8. Is This All We Need to Know About mod_perl?
- 2.9. References
- 3. Installing mod_perl
- 3.1. Configuring the Source
- 3.1.1. Controlling the Build Process
- 3.1.2. Activating Callback Hooks
- 3.1.3. Activating Standard API Features
- 3.1.4. Enabling Extra Features
- 3.1.5. Reusing Configuration Parameters
- 3.1.6. Discovering Whether a Feature Was Enabled
- 3.1.7. Using an Alternative Configuration File
- 3.1.8. perl Makefile.PL Troubleshooting
- 3.1.8.1. A test compilation with your Makefile configuration failed...
- 3.1.8.2. Missing or misconfigured libgdbm.so
- 3.1.8.3. Undefined reference to `PL_perl_destruct_level
- 3.1. Configuring the Source
- 3.2. Building mod_perl (make)
- 3.2.1. What Compiler Should Be Used to Build mod_perl?
- 3.2.2. make Troubleshooting
- 3.2.2.1. Undefined reference to `Perl_newAV'
- 3.2.2.2. Unrecognized format specifier for...
- 3.3. Testing the Server (make test)
- 3.3.1. Manual Testing
- 3.3.2. make test Troubleshooting
- 3.3.2.1. make test fails
- 3.3.2.2. mod_perl.c is incompatible with this version of Apache
- 3.3.2.3. make test......skipping test on this platform
- 3.3.2.4. make test fails due to misconfigured localhost entry
- 3.4. Installation (make install)
- 3.4.1. Manually Building a mod_perl-Enabled Apache
- 3.5. Installation Scenarios for Standalone mod_perl
- 3.5.1. The All-in-One Way
- 3.5.2. Building mod_perl and Apache Separately
- 3.5.3. When DSOs Can Be Used
- 3.5.4. Building mod_perl as a DSO via APACI
- 3.5.5. Building mod_perl as a DSO via APXS
- 3.6. Building mod_perl with Other Components
- 3.6.1. Installing mod_perl with PHP
- 3.6.2. Installing mod_perl with mod_ssl (+openssl)
- 3.6.3. Installing mod_perl with Apache-SSL (+openssl)
- 3.6.4. Installing mod_perl with Stronghold
- 3.7. Installing mod_perl with the CPAN.pm Interactive Shell
- 3.8. Installing mod_perl on Multiple Machines
- 3.9. Installation into a Nonstandard Directory
- 3.9.1. Installing Perl Modules into a Nonstandard Directory
- 3.9.2. Finding Modules Installed in Nonstandard Directories
- 3.9.2.1. Modifying @INC
- 3.9.2.2. Using the PERL5LIB environment variable
- 3.9.3. Using the CPAN.pm Shell with Nonstandard Installation Directories
- 3.9.4. Making a Local Apache Installation
- 3.9.5. Nonstandard mod_perl-Enabled Apache Installation
- 3.9.6. Nonstandard mod_perl-Enabled Apache Installation with CPAN.pm
- 3.10. How Can I Tell if mod_perl Is Running?
- 3.10.1. Checking the error_log File
- 3.10.2. Testing by Viewing /perl-status
- 3.10.3. Testing via Telnet
- 3.10.4. Testing via a CGI Script
- 3.10.5. Testing via lwp-request
- 3.11. General Notes
- 3.11.1. How Do I Make the Installation More Secure?
- 3.11.2. Can I Run mod_perl-Enabled Apache as suExec?
- 3.11.3. Should I Rebuild mod_perl if I Have Upgraded Perl?
- 3.11.4. mod_auth_dbm Nuances
- 3.12. References
- 4. mod_perl Configuration
- 4.1. Apache Configuration
- 4.1.1. Configuration Files
- 4.1.2. Configuration Directives
- 4.1.3. <Directory>, <Location>, and <Files> Sections
- 4.1.3.1. <Directory directoryPath> ... </Directory>
- 4.1.3.2. <Files filename > ... </Files>
- 4.1.3.3. <Location URI> ... </Location>
- 4.1.4. Merging <Directory>, <Location>, and <Files> Sections
- 4.1.5. Subgrouping of <Directory>, <Location>, and <Files> Sections
- 4.1.6. Options Directive Merging
- 4.1.7. MinSpareServers, MaxSpareServers, StartServers, MaxClients, and MaxRequestsPerChild
- 4.1. Apache Configuration
- 4.2. mod_perl Configuration
- 4.2.1. Alias Configurations
- 4.2.1.1. Running scripts located in the same directory under different handlers
- 4.2.1. Alias Configurations
- 4.2.2. <Location /perl> Sections
- 4.2.3. PerlModule and PerlRequire
- 4.2.4. Perl*Handlers
- 4.2.5. The handler( ) Subroutine
- 4.2.6. Investigating the Request Phases
- 4.2.7. Stacked Handlers
- 4.2.8. Perl Method Handlers
- 4.2.9. PerlFreshRestart
- 4.2.10. PerlSetEnv and PerlPassEnv
- 4.2.11. PerlSetVar and PerlAddVar
- 4.2.12. PerlSetupEnv
- 4.2.13. PerlWarn and PerlTaintCheck
- 4.3. The Startup File
- 4.3.1. A Sample Startup File
- 4.3.2. Syntax Validation
- 4.3.3. What Modules Should Be Added to the Startup File
- 4.3.4. The Confusion with use( ) in the Server Startup File
- 4.4. Apache Configuration in Perl
- 4.4.1. Constructing <Perl> Sections
- 4.4.2. Breaking Out of <Perl> Sections
- 4.4.3. Cheating with Apache->httpd_conf
- 4.4.4. Declaring Package Names in Perl Sections
- 4.4.5. Verifying <Perl> Sections
- 4.4.6. Saving the Perl Configuration
- 4.4.7. Debugging
- 4.5. Validating the Configuration Syntax
- 4.6. The Scope of mod_perl Configuration Directives
- 4.7. Apache Restarts Twice
- 4.8. Enabling Remote Server Configuration Reports
- 4.9. Tips and Tricks
- 4.9.1. Publishing Port Numbers Other Than 80
- 4.9.2. Running the Same Script from Different Virtual Hosts
- 4.10. Configuration Security Concerns
- 4.10.1. Using Only Absolutely Necessary Components
- 4.10.2. Taint Checking
- 4.10.3. Hiding Server Information
- 4.10.4. Making the mod_perl Server Inaccessible from the Outside
- 4.10.5. Protecting Private Status Locations
- 4.11. General Pitfalls
- 4.12. References
- 5. Web Server Control, Monitoring, Upgrade, and Maintenance
- 5.1. Starting the Server in Multi-Process Mode
- 5.2. Starting the Server in Single-Process Mode
- 5.3. Using kill to Control Processes
- 5.3.1. kill Signals for Stopping and Restarting Apache
- 5.3.2. Speeding Up Apache's Termination and Restart
- 5.3.3. Finding the Right Apache PID
- 5.4. Using apachectl to Control the Server
- 5.5. Validating Server Configuration
- 5.6. Setuid root Startup Scripts
- 5.6.1. Introduction to setuid Executables
- 5.6.2. Apache Startup Script's setuid Security
- 5.6.3. Sample setuid Apache Startup Script
- 5.7. Preparing for Machine Reboot
- 5.8. Upgrading a Live Server
- 5.8.1. Upgrading Intranet Servers
- 5.8.2. Upgrading 24 × 7 Internet Servers
- 5.8.2.1. The server cluster
- 5.8.2.2. The single server
- 5.8.2.2.1. Upgrading live server components by swapping machines
- 5.8.2.2.2. Upgrading a live server with port forwarding
- 5.8.2.2.3. Upgrading a live server with prepackaged components
- 5.8.2.2.4. Upgrading a live server using symbolic links
- 5.8.2.2.5. Upgrading Perl code
- 5.8.2.2.6. Moving files and restarting the server
- 5.8.2.2.7. Using CVS for code upgrades
- 5.8.3. Disabling Scripts and Handlers on a Live Server
- 5.8.3.1. Disabling code running under Apache::Registry
- 5.8.3.2. Disabling code running under other handlers
- 5.8.3.3. Disabling services with help from the frontend server
- 5.8.4. Scheduled Routine Maintenance
- 5.9. Three-Tier Server Scheme: Development, Staging, and Production
- 5.9.1. Starting a Personal Server for Each Developer
- 5.10. Web Server Monitoring
- 5.10.1. Interactive Monitoring
- 5.10.2. Apache::VMonitorThe Visual System and Apache Server Monitor
- 5.10.2.1. Prerequisites and configuration
- 5.10.2.2. Multi-processes and system overall status reporting mode
- 5.10.2.3. Single-process extensive reporting system
- 5.10.3. Automated Monitoring
- 5.10.3.1. mod_perl server watchdogs
- 5.11. Server Maintenance Chores
- 5.11.1. Handling Log Files
- 5.11.1.1. Scheduled log file rotation
- 5.11.1.2. Non-scheduled emergency log rotation
- 5.11.1.3. Centralized logging
- 5.11.1. Handling Log Files
- 5.11.2. Swapping Prevention
- 5.11.3. Limiting Resources Used by Apache Child Processes
- 5.11.3.1. OS-specific notes
- 5.11.4. Tracking and Terminating Hanging Processes
- 5.11.5. Limiting the Number of Processes Serving the Same Resource
- 5.11.6. Limiting the Request-Rate Speed (Robot Blocking)
- 5.12. References
- 6. Coding with mod_perl in Mind
- 6.1. Before You Start to Code
- 6.1.1. Accessing Documentation
- 6.1.2. The strict Pragma
- 6.1.3. Enabling Warnings
- 6.1. Before You Start to Code
- 6.2. Exposing Apache::Registry Secrets
- 6.2.1. The First Mystery: Why Does the Script Go Beyond 5?
- 6.2.2. The Second MysteryInconsistent Growth over Reloads
- 6.3. Namespace Issues
- 6.3.1. The @INC Array
- 6.3.2. The %INC Hash
- 6.3.3. Name Collisions with Modules and Libraries
- 6.3.3.1. A first faulty scenario
- 6.3.3.2. A second faulty scenario
- 6.3.3.3. A quick but ineffective hackish solution
- 6.3.3.4. A first solution
- 6.3.3.5. A second solution
- 6.3.3.6. A third solution
- 6.4. Perl Specifics in the mod_perl Environment
- 6.4.1. exit( )
- 6.4.2. die( )
- 6.4.3. Global Variable Persistence
- 6.4.4. STDIN, STDOUT, and STDERR Streams
- 6.4.5. Redirecting STDOUT into a Scalar Variable
- 6.4.6. print( )
- 6.4.7. Formats
- 6.4.8. Output from System Calls
- 6.4.9. BEGIN blocks
- 6.4.10. END Blocks
- 6.5. CHECK and INIT Blocks
- 6.5.1. $^T and time( )
- 6.5.2. Command-Line Switches
- 6.5.2.1. Warnings
- 6.5.2.2. Taint mode
- 6.5.3. Compiled Regular Expressions
- 6.5.3.1. Matching patterns repeatedly
- 6.6. Apache::Registry Specifics
- 6.6.1. _ _END_ _ and _ _DATA_ _ Tokens
- 6.6.2. Symbolic Links
- 6.6.3. Return Codes
- 6.7. Transition from mod_cgi Scripts to Apache Handlers
- 6.7.1. Starting with a mod_cgi-Compatible Script
- 6.7.2. Converting into a Perl Content Handler
- 6.7.3. Converting to use the mod_perl API and mod_perl-Specific Modules
- 6.8. Loading and Reloading Modules
- 6.8.1. The @INC Array Under mod_perl
- 6.8.2. Reloading Modules and Required Files
- 6.8.2.1. Restarting the server
- 6.8.2.2. Using Apache::StatINC
- 6.8.2.3. Using Apache::Reload
- 6.8.2.4. Using dynamic configuration files
- 6.8.2.4.1. Writing configuration files
- 6.8.2.4.2. Reloading configuration files
- 6.8.2.4.3. Dynamically updating configuration files
- 6.9. Handling the "User Pressed Stop Button" Case
- 6.9.1. Detecting Aborted Connections
- 6.9.2. The Importance of Cleanup Code
- 6.9.2.1. Critical section
- 6.9.2.2. Safe resource locking and cleanup code
- 6.10. Handling Server Timeout Cases and Working with $SIG{ALRM}
- 6.11. Generating Correct HTTP Headers
- 6.12. Method Handlers: The Browse and See, Browse and View Example
- 6.13. References
- II. mod_perl Performance
- 7. Identifying Your Performance Problems
- 7.1. Looking at the Big Picture
- 7.2. Asking the Right Questions
- 7.3. References
- 7. Identifying Your Performance Problems
- 8. Choosing a Platform for the Best Performance
- 8.1. Choosing the Right Operating System
- 8.1.1. mod_perl Support for the Operating System
- 8.1.2. Stability and Robustness
- 8.1.3. Good Memory Management
- 8.1.4. Avoiding Memory Leaks
- 8.1.5. Memory-Sharing Capabilities
- 8.1.6. The Real Cost of Support
- 8.1.7. Discontinued Products
- 8.1.8. Keeping Up with OS Releases
- 8.1. Choosing the Right Operating System
- 8.2. Choosing the Right Hardware
- 8.2.1. Machine Strength Demands According to Expected Site Traffic
- 8.2.2. A Single Strong Machine Versus Many Weaker Machines
- 8.2.3. Getting a Fast Internet Connection
- 8.2.4. Tuning I/O Performance
- 8.2.5. How Much Memory Is Enough?
- 8.2.6. Getting a Fault-Tolerant CPU
- 8.2.7. Detecting and Avoiding Bottlenecks
- 8.2.8. Solving Hardware Requirement Conflicts
- 8.3. References
- 9. Essential Tools for Performance Tuning
- 9.1. Server Benchmarking
- 9.1.1. ApacheBench
- 9.1.2. httperf
- 9.1.3. http_load
- 9.1.4. Other Web Server Benchmark Utilities
- 9.1. Server Benchmarking
- 9.2. Perl Code Benchmarking
- 9.3. Process Memory Measurements
- 9.4. Apache::Status and Measuring Code Memory Usage
- 9.5. Code Profiling Techniques
- 9.5.1. Profiling with Devel::DProf
- 9.5.2. Profiling with Devel::SmallProf
- 9.6. References
- 10. Improving Performance with Shared Memory and Proper Forking
- 10.1. Sharing Memory
- 10.1.1. Calculating Real Memory Usage
- 10.1.2. Memory-Sharing Validation
- 10.1.2.1. Variable unsharing caused by regular expressions
- 10.1.2.2. Numerical versus string access to variables
- 10.1.3. Preloading Perl Modules at Server Startup
- 10.1.4. Preloading Registry Scripts at Server Startup
- 10.1.5. Module Initialization at Server Startup
- 10.1.5.1. Initializing DBI.pm
- 10.1.5.2. Initializing CGI.pm
- 10.1. Sharing Memory
- 10.1.6. Memory Preallocation
- 10.2. Forking and Executing Subprocessesfrom mod_perl
- 10.2.1. Forking a New Process
- 10.2.2. Freeing the Parent Process
- 10.2.3. Detaching the Forked Process
- 10.2.4. Avoiding Zombie Processes
- 10.2.5. A Complete Fork Example
- 10.2.6. Starting a Long-Running External Program
- 10.2.7. Starting a Short-Running External Program
- 10.2.8. Executing system( ) or exec( ) in the Right Way
- 10.3. References
- 11. Tuning Performance by Tweaking Apache's Configuration
- 11.1. Setting the MaxClients Directive
- 11.2. Setting the MaxRequestsPerChild Directive
- 11.3. Setting MinSpareServers, MaxSpareServers, and StartServers
- 11.4. KeepAlive
- 11.5. PerlSetupEnv
- 11.6. Reducing the Number of stat( ) Calls Made by Apache
- 11.7. Symbolic Links Lookup
- 11.8. Disabling DNS Resolution
- 11.9. Response Compressing
- 11.10. References
- 12. Server Setup Strategies
- 12.1. mod_perl Deployment Overview
- 12.2. Standalone mod_perl-Enabled Apache Server
- 12.3. One Plain and One mod_perl-Enabled Apache Server
- 12.3.1. Choosing the Target Installation Directories Layout
- 12.3.2. Configuration and Compilation of the Sources
- 12.3.2.1. Building the httpd_docs server
- 12.3.2.2. Building the httpd_perl server
- 12.3.3. Configuration of the Servers
- 12.3.3.1. Basic httpd_docs server configuration
- 12.3.3.2. Basic httpd_perl server configuration
- 12.4. One Light Non-Apache and One mod_perl-Enabled Apache Server
- 12.5. Adding a Proxy Server in httpd Accelerator Mode
- 12.6. The Squid Server and mod_perl
- 12.6.1. Pros and Cons
- 12.6.2. Light Apache, mod_perl, and Squid Setup Implementation Details
- 12.6.3. mod_perl and Squid Setup Implementation Details
- 12.7. Apache's mod_proxy Module
- 12.7.1. Concepts and Configuration Directives
- 12.7.1.1. ProxyPass
- 12.7.1.2. ProxyPassReverse
- 12.7.1.3. Security issues
- 12.7.1. Concepts and Configuration Directives
- 12.7.2. Knowing the Proxypassed Connection Type
- 12.7.3. Buffering Feature
- 12.7.4. Closing Lingering Connections with lingerd
- 12.7.5. Caching Feature
- 12.7.6. Build Process
- 12.8. mod_rewrite Examples
- 12.9. Getting the Remote Server IP in the Backend Server in the Proxy Setup
- 12.10. Frontend/Backend Proxying with Virtual Hosts
- 12.10.1. Virtual Host Flavors
- 12.10.2. Dual-Server Virtual Host Configuration
- 12.10.3. Virtual Hosts and Main Server Interaction
- 12.10.4. Frontend Server Configuration
- 12.10.5. Backend Server Configuration
- 12.11. HTTP Authentication with Two Servers and a Proxy
- 12.12. When One Machine Is Not Enough for Your RDBMS DataBase and mod_perl
- 12.12.1. Server Requirements
- 12.12.2. The Problem
- 12.12.3. The Solution
- 12.12.4. Three Machine Model
- 12.13. Running More than One mod_perl Server on the Same Machine
- 12.14. SSL Functionality and a mod_perl Server
- 12.15. Uploading and Downloading Big Files
- 12.16. References
- 13. TMTOWTDI: Convenience and Habit Versus Performance
- 13.1. Apache::Registry PerlHandler Versus Custom PerlHandler
- 13.2. Apache::args Versus Apache::Request::param Versus CGI::param
- 13.3. Buffered Printing and Better print( ) Techniques
- 13.4. Interpolation, Concatenation, or List
- 13.5. Keeping a Small Memory Footprint
- 13.5.1. "Bloatware" Modules
- 13.5.2. Importing Symbols
- 13.6. Object Methods Calls Versus Function Calls
- 13.6.1. The Overhead with Light Subroutines
- 13.6.2. The Overhead with Heavy Subroutines
- 13.6.3. Are All Methods Slower Than Functions?
- 13.7. Using the Perl stat( ) Call's Cached Results
- 13.8. time( ) System Call Versus $r->request_time
- 13.9. Printing Unmodified Files
- 13.10. Caching and Pre-Caching
- 13.11. Caching with Memoize
- 13.12. Comparing Runtime Performance of Perl and C
- 13.12.1. Building Perl Extensions with XS and h2xs
- 13.12.2. The Benchmark
- 13.12.3. Inline.pm
- 13.12.4. Perl Extensions Conclusion
- 13.13. References
- 14. Defensive Measures for Performance Enhancement
- 14.1. Controlling Your Memory Usage
- 14.1.1. Defining the Minimum Shared Memory Size Threshold
- 14.1.1.1. Potential drawbacks of memory-sharing restrictions
- 14.1.1. Defining the Minimum Shared Memory Size Threshold
- 14.1.2. Defining the Maximum Memory Size Threshold
- 14.1.3. Defining the Maximum Unshared Memory Size Threshold
- 14.1. Controlling Your Memory Usage
- 14.2. Coding for a Smaller Memory Footprint
- 14.2.1. Memory Reuse
- 14.2.2. Big Input, Big Damage
- 14.2.3. Small Input, Big Damage
- 14.2.4. Think Production, Not Development
- 14.2.5. Passing Variables
- 14.2.6. Memory Leakage
- 14.3. Conclusion
- 14.4. References
- 15. Improving Performance Through Build Options
- 15.1. Server Size as a Function of Compiled-in Features
- 15.2. mod_status and ExtendedStatus On
- 15.3. DYNAMIC_MODULE_LIMIT Apache Build Option
- 15.4. Perl Build Options
- 15.5. Architecture-Specific Compile Options
- 15.6. References
- 16. HTTP Headers for Optimal Performance
- 16.1. Date-Related Headers
- 16.1.1. Date Header
- 16.1.2. Last-Modified Header
- 16.1.3. Expires and Cache-Control Headers
- 16.1. Date-Related Headers
- 16.2. Content Headers
- 16.2.1. Content-Type Header
- 16.2.2. Content-Length Header
- 16.2.3. Entity Tags
- 16.3. Content Negotiation
- 16.3.1. The Vary Header
- 16.4. HTTP Requests
- 16.4.1. GET Requests
- 16.4.2. Conditional GET Requests
- 16.4.3. HEAD Requests
- 16.4.4. POST Requests
- 16.5. Avoiding Dealing with Headers
- 16.6. References
- III. Databases and mod_perl
- 17. Databases Overview
- 17.1. Volatile Databases
- 17.1.1. In-Memory Databases in a Single Process
- 17.1.2. In-Memory Databases Across Multiple Processes
- 17.1. Volatile Databases
- 17.2. Non-Volatile Databases
- 17.2.1. Flat-File Databases
- 17.2.2. Filesystem Databases
- 17.2.3. DBM Databases
- 17.2.4. Relational Databases
- 17. Databases Overview
- 17.3. References
- 18. mod_perl Data-Sharing Techniques
- 18.1. Sharing the Read-Only Data in and Between Processes
- 18.2. Sharing Data Between Various Handlers
- 18.3. References
- 19. DBM and mod_perl
- 19.1. mod_perl and DBM
- 19.2. Resource Locking
- 19.2.1. Deadlocks
- 19.2.2. Exclusive Locking Starvation
- 19.3. Flawed Locking Methods
- 19.4. Locking Wrappers Overview
- 19.5. Tie::DB_Lock
- 19.6. Examples
- 19.6.1. tie( )-ing Once and Forever
- 19.6.2. Read/Write Access
- 19.6.3. Storing Complex Data Structures
- 19.7. References
- 20. Relational Databases and mod_perl
- 20.1. Persistent Database Connections with Apache::DBI
- 20.1.1. Apache::DBI Connections
- 20.1.2. When to Use Apache::DBI (and When Not to Use It)
- 20.1.3. Configuring Apache::DBI
- 20.1.4. Debugging Apache::DBI
- 20.1.5. Caveats and Troubleshooting
- 20.1.5.1. Database locking risks
- 20.1.5.2. Transactions
- 20.1.5.3. Opening connections with different parameters
- 20.1.5.4. Cannot find the DBI handler
- 20.1.5.5. The morning bug
- 20.1.5.6. Apache:DBI does not work
- 20.1.5.7. Skipping connection cache during server startup
- 20.1. Persistent Database Connections with Apache::DBI
- 20.2. Improving Performance
- 20.2.1. Preopening DBI Connections
- 20.2.2. Improving Speed by Skipping ping( )
- 20.2.3. Efficient Record-Retrieval Techniques
- 20.2.4. mysql_use_result Versus mysql_store_result Attributes
- 20.2.5. Running Two or More Relational Databases
- 20.2.6. Caching prepare( ) Statements
- 20.3. DBI Debug Techniques
- 20.4. References
- IV. Debugging and Troubleshooting
- 21. Error Handling and Debugging
- 21.1. Warnings and Errors Explained
- 21.1.1. The Importance of Warnings
- 21.1.1.1. The diagnostics pragma
- 21.1.1. The Importance of Warnings
- 21.1.2. Curing "Internal Server Error" Problems
- 21.1.3. Making Use of the error_log
- 21.1.4. Displaying Errors to Users
- 21.1. Warnings and Errors Explained
- 21. Error Handling and Debugging
- 21.2. Debugging Code in Single-Server Mode
- 21.3. Tracing System Calls
- 21.4. Tracing mod_perl-Specific Perl Calls
- 21.5. Debugging Perl Code
- 21.5.1. Locating and Correcting Syntax Errors
- 21.5.2. Using Apache::FakeRequest to Debug Apache Perl Modules
- 21.5.3. Using print( ) for Debugging
- 21.5.4. Using print( ) and Data::Dumper for Debugging
- 21.5.5. The Importance of a Good, Concise Coding Style
- 21.5.6. Introduction to the Perl Debugger
- 21.5.7. Interactive Perl Debugging Under mod_cgi
- 21.5.8. Noninteractive Perl Debugging Under mod_perl
- 21.5.9. Interactive mod_perl Debugging
- 21.5.9.1. ptkdb and interactive mod_perl debugging
- 21.6. Analyzing Dumped core Files
- 21.6.1. Getting Ready to Debug
- 21.6.2. Creating a Faulty Package
- 21.6.3. Dumping the core File
- 21.6.4. Analyzing the core File
- 21.6.5. Extracting the Backtrace Automatically
- 21.7. Hanging Processes: Detection and Diagnostics
- 21.7.1. Hanging Because of an Operating System Problem
- 21.7.2. When a Process Might Hang
- 21.7.3. Detecting Hanging Processes
- 21.7.4. Determination of the Reason
- 21.7.4.1. Using the Perl trace
- 21.7.4.2. Using the system calls trace
- 21.7.4.3. Using the interactive debugger
- 21.7.5. mod_perl gdb Debug Macros
- 21.8. Useful Debug Modules
- 21.8.1. B::Deparse
- 21.8.2. -D Runtime Option
- 21.8.3. Devel::Peek and Apache::Peek
- 21.8.4. Devel::Symdump and Apache::Symdump
- 21.8.5. Apache::Debug
- 21.8.6. Other Debug Modules
- 21.9. Looking Inside the Server
- 21.9.1. Apache::StatusEmbedded Interpreter Status Information
- 21.9.1.1. Minimal configuration
- 21.9.1.2. Extended configuration
- 21.9.1.3. Usage
- 21.9.1. Apache::StatusEmbedded Interpreter Status Information
- 21.9.2. mod_status
- 21.10. References
- 22. Troubleshooting mod_perl
- 22.1. Configuration and Startup
- 22.1.1. libexec/libperl.so: open failed: No such file or directory
- 22.1.2. install_driver(Oracle) failed: Can't load `.../DBD/Oracle/Oracle.so' for module DBD::Oracle
- 22.1.3. Invalid command `PerlHandler'...
- 22.1.4. RegistryLoader: Translation of uri [...] to filename failed
- 22.1. Configuration and Startup
- 22.2. Code Parsing and Compilation
- 22.2.1. Value of $x will not stay shared at - line 5
- 22.2.2. Value of $x may be unavailable at - line 5
- 22.2.3. Can't locate loadable object for module ...
- 22.2.4. Can't locate object method "get_handlers" ...
- 22.2.5. Missing right bracket at line ...
- 22.2.6. Can't load `.../auto/DBI/DBI.so' for module DBI
- 22.3. Runtime
- 22.3.1. foo ... at /dev/null line 0
- 22.3.2. Segfaults When Using XML::Parser
- 22.3.3. exit signal Segmentation fault (11)
- 22.3.4. CGI Code Is Returned as Plain Text Instead of Being Executed
- 22.3.5. rwrite returned -1
- 22.3.6. Global symbol "$foo" requires explicit package name
- 22.3.7. Use of uninitialized value at (eval 80) line 12
- 22.3.8. Undefined subroutine &Apache::ROOT::perl::test_2epl::some_function called at
- 22.3.9. Callback called exit
- 22.3.10. Out of memory!
- 22.3.11. syntax error at /dev/null line 1, near "line arguments:"
- 22.4. Shutdown and Restart
- 22.4.1. Evil Things Might Happen When Using PerlFreshRestart
- 22.4.2. [warn] child process 30388 did not exit, sending another SIGHUP
- 22.4.3. Processes Get Stuck on Graceful Restart
- 23. Getting Help and Online Resources
- 23.1. How to Report Problems
- 23.1.1. Getting the Backtrace from Core Dumps
- 23.1.2. Spinning Processes
- 23.1. How to Report Problems
- 23.2. Mailing List Etiquette
- 23.3. Resources
- 23.3.1. mod_perl
- 23.3.2. mod_perl Mailing Lists
- 23.3.3. Perl
- 23.3.4. Perl/CGI
- 23.3.5. Apache
- 23.3.6. DBI and SQL
- 23.3.7. Squid
- 23.3.8. CVS
- 23.3.9. Performance and Scalability
- 23.3.10. Web Security
- V. mod_perl 2.0
- 24. mod_perl 2.0: Installation and Configuration
- 24.1. What's New in Apache 2.0
- 24.2. What's New in Perl 5.6.0-5.8.0
- 24.3. What's New in mod_perl 2.0
- 24.3.1. Thread Support
- 24.3.2. Perl Interface to the APR and Apache APIs
- 24.3.3. Other New Features
- 24.3.4. Improved and More Flexible Configuration
- 24.3.5. Optimizations
- 24.4. Installing mod_perl 2.0
- 24.4.1. Installing from Source
- 24.4.2. Installing Binaries
- 24. mod_perl 2.0: Installation and Configuration
- 24.5. Configuring mod_perl 2.0
- 24.5.1. Enabling mod_perl
- 24.5.2. Accessing the mod_perl 2.0 Modules
- 24.5.3. Startup File
- 24.5.4. Perl's Command-Line Switches
- 24.5.5. mod_perl 2.0 Core Handlers
- 24.5.5.1. modperl
- 24.5.5.2. perl-script
- 24.5.5.3. A simple response handler example
- 24.5.6. PerlOptions Directive
- 24.5.6.1. Enable
- 24.5.6.2. Clone
- 24.5.6.3. Parent
- 24.5.6.4. Perl*Handler
- 24.5.6.5. AutoLoad
- 24.5.6.6. GlobalRequest
- 24.5.6.7. ParseHeaders
- 24.5.6.8. MergeHandlers
- 24.5.6.9. SetupEnv
- 24.5.7. Thread-Mode-Specific Directives
- 24.5.7.1. PerlInterpStart
- 24.5.7.2. PerlInterpMax
- 24.5.7.3. PerlInterpMinSpare
- 24.5.7.4. PerlInterpMaxSpare
- 24.5.7.5. PerlInterpMaxRequests
- 24.5.7.6. PerlInterpScope
- 24.5.8. Retrieving Server Startup Options
- 24.6. Resources
- 25. Programming for mod_perl 2.0
- 25.1. Migrating to and Programming with mod_perl 2.0
- 25.1.1. The Shortest Migration Path
- 25.1.2. Migrating Configuration Files
- 25.1.2.1. PerlHandler
- 25.1.2.2. PerlSendHeader
- 25.1.2.3. PerlSetupEnv
- 25.1.2.4. PerlTaintCheck
- 25.1.2.5. PerlWarn
- 25.1.2.6. PerlFreshRestart
- 25.1.3. Code Porting
- 25.1.4. ModPerl::Registry Family
- 25.1.5. Method Handlers
- 25.1.6. Apache::StatINC Replacement
- 25.1. Migrating to and Programming with mod_perl 2.0
- 25.2. New Apache Phases and Corresponding Perl*Handlers
- 25.2.1. Server Configuration and Startup Phases
- 25.2.1.1. PerlOpenLogsHandler
- 25.2.1.2. PerlPostConfigHandler
- 25.2.1.3. PerlChildInitHandler
- 25.2.1.4. PerlChildExitHandler
- 25.2.1. Server Configuration and Startup Phases
- 25.2.2. Connection Phases
- 25.2.2.1. PerlPreConnectionHandler
- 25.2.2.2. PerlProcessConnectionHandler
- 25.2.2.2.1. Socket-based protocol module
- 25.2.2.2.2. Bucket brigade-based protocol module
- 25.2.3. HTTP Request Phases
- 25.3. I/O Filtering
- 25.3.1. I/O Filtering Concepts
- 25.3.1.1. Two methods for manipulating data
- 25.3.1.2. HTTP request versus connection filters
- 25.3.1.3. Multiple invocations of filter handlers
- 25.3.1.4. Blocking calls
- 25.3.1. I/O Filtering Concepts
- 25.3.2. Filter Configuration
- 25.3.3. Input Filters
- 25.3.3.1. Bucket brigade-based connection input filter
- 25.3.3.2. Bucket brigade-based HTTP request input filter
- 25.3.3.3. Stream-based HTTP request input filter
- 25.3.4. Output Filters
- 25.3.4.1. Stream-based HTTP request output filter
- 25.3.4.2. Another stream-based HTTP request output filter
- 25.3.4.3. Bucket brigade-based HTTP request output filter
- VI. Appendixes
- A. mod_perl Recipes
- A.1. Emulating the Authentication Mechanism
- A.2. Reusing Data from POST Requests
- A.3. Redirecting POST Requests
- A.4. Redirecting While Maintaining Environment Variables
- A.5. Handling Cookies
- A.6. Sending Multiple Cookies with the mod_perl API
- A.7. Sending Cookies in REDIRECT Responses
- A.8. CGI::params in the mod_perlish Way
- A.9. Sending Email from mod_perl
- A.10. mod_rewrite in Perl
- A.11. Setting PerlHandler Based on MIME Type
- A.12. Singleton Database Handles
- A.13. Terminating a Child Process on Request Completion
- A.14. References
- A. mod_perl Recipes
- B. Apache Perl Modules
- B.1. Development-Stage Modules
- B.1.1. Apache::ReloadAutomatically Reload Changed Modules
- B.1.2. Apache::PerlVINCAllow Module Versioning in <Location> and <VirtualHost> blocks
- B.1.3. Apache::DProfHook Devel::DProf into mod_perl
- B.1.4. Apache::SmallProfHook Devel::SmallProf into mod_perl
- B.1.5. Apache::FakeRequestFake Request Object for Debugging
- B.1.6. Apache::testFacilitate Testing of Apache::* Modules
- B.1. Development-Stage Modules
- B.2. Modules to Aid Debugging
- B.2.1. Apache::DBHooks for the Interactive Perl Debugger
- B.2.2. Apache::DebugUtilities for Debugging Embedded Perl Code
- B.2.3. Apache::DebugInfoSend Debug Information to Client
- B.2.4. Apache::LeakModule for Tracking Memory Leaks in mod_perl Code
- B.2.5. Apache::PeekA Data Debugging Tool for the XS Programmer
- B.2.6. Apache::SymbolAvoid the Mandatory `Subroutine Redefined' Warning
- B.2.7. Apache::SymdumpSymbol Table Snapshots
- B.3. Control and Monitoring Modules
- B.3.1. Apache::Watchdog::RunAwayHanging Processes Monitor and Terminator
- B.3.2. Apache::VMonitorVisual System and Apache Server Monitor
- B.3.3. Apache::SizeLimitLimit Apache httpd Processes
- B.3.4. Apache::GTopLimitLimit Apache httpd Processes
- B.3.5. Apache::TimedRedirectRedirect URLs for a Given Time Period
- B.3.6. Apache::ResourceLimit Resources Used by httpd Children
- B.3.7. Apache::StatusEmbedded Interpreter Status Information
- B.4. Server Configuration Modules
- B.4.1. Apache::ModuleConfigInterface to Configuration API
- B.4.2. Apache::PerlSectionsUtilities for Working with <Perl> Sections
- B.4.3. Apache::httpd_confGenerate an httpd.conf File
- B.4.4. Apache::srcMethods for Locating and Parsing Bits of Apache Source Code
- B.4.5. Apache::ConfigFileParse an Apache-Style httpd.conf Configuration File
- B.5. Authentication-Phase Modules
- B.6. Authorization-Phase Modules
- B.7. Access-Phase Modules
- B.7.1. Stonehenge::ThrottleLimit Bandwith Consumption by IP Address
- B.8. Type Handlers
- B.8.1. Apache::MimeXMLmod_perl Mime Encoding Sniffer for XML Files
- B.8.2. Apache::MIMEMapperAssociates File Extensions with PerlHandlers
- B.9. Trans Handlers
- B.9.1. Apache::AddHostPathAdds Some or All of the Hostname and Port to the URI
- B.9.2. Apache::ProxyPassimplement ProxyPass in Perl
- B.9.3. Apache::ProxyPassThruSkeleton for Vanilla Proxy
- B.9.4. Apache::ThrottleSpeed-Based Content Negotiation
- B.9.5. Apache::TransLDAPTrans Handler Example
- B.10. Fixup Handlers
- B.10.1. Apache::RefererBlockBlock Request Based Upon "Referer" Header
- B.10.2. Apache::UsertrackEmulate the mod_usertrack Apache Module
- B.11. Generic Content-Generation Modules
- B.11.1. Apache::Registry and Apache::PerlRun
- B.11.2. Apache::RegistryNGApache::Registry New Generation
- B.11.3. Apache::RegistryBBApache::Registry Bare Bones
- B.11.4. Apache::Request (libapreq)Generic Apache Request Library
- B.11.5. Apache::DispatchCall PerlHandlers with the Ease of Registry Scripts
- B.12. Application-Specific Content-Generation Modules
- B.12.1. Apache::AutoIndexPerl Replacement for the mod_autoindex and mod_dir Apache Modules
- B.12.2. Apache::WAP::AutoIndexWAP Demonstration Module
- B.12.3. Apache::WAP::MailPeekDemonstrate Use of WML Delivery
- B.12.4. Apache::ArchiveExpose Archive Files Through the Apache Web Server
- B.12.5. Apache::GatewayImplement a Gateway
- B.12.6. Apache::NNTPGatewayNNTP Interface for a mod_perl-Enabled Apache Web Server.
- B.12.7. Apache::PrettyPerlSyntax Highlighting for Perl Files
- B.12.8. Apache::PrettyTextReformat .txt Files for Client Display
- B.12.9. Apache::RandomLocationRandom File Display
- B.12.10. Apache::StageManage a Staging Directory
- B.12.11. Apache::RoamingA mod_perl Handler for Roaming Profiles
- B.12.12. Apache::BackhandWrite mod_backhand Functions in Perl
- B.13. Database Modules
- B.13.1. Apache::DBIInitiate a Persistent Database Connection
- B.13.2. Apache::OWAOracle's PL/SQL Web Toolkit for Apache
- B.13.3. Apache::Sybase::CTlibPersistent CTlib Connection Management for Apache
- B.14. Toolkits and Frameworks for Content-Generation and Other Phases
- B.14.1. Apache::ASPActive Server Pages for Apache with mod_perl
- B.14.2. Apache::AxKitXML Toolkit for mod_perl
- B.14.3. HTML::EmbperlEmbed Perl into HTML
- B.14.4. Apache::EmbperlChainProcess Embedded Perl in HTML in the OutputChain
- B.14.5. Apache::ePerlEmbedded Perl 5 Language
- B.14.6. Apache::iNcomE-Commerce Framework
- B.14.7. Apache::MasonPerl-Based Web Site Development and Delivery System
- B.14.8. Apache::PageKitWeb Applications Framework
- B.14.9. Template ToolkitTemplate Processing System
- B.15. Output Filters and Layering Modules
- B.15.1. Apache::OutputChainChain Stacked Perl Handlers
- B.15.2. Apache::Cleanmod_perl Interface Into HTML::Clean
- B.15.3. Apache::FilterAlter the Output of Previous Handlers
- B.15.4. Apache::GzipChainCompress HTML (or Anything) in the OutputChain
- B.15.5. Apache::PassFileSend File via OutputChain
- B.15.6. Apache::GzipAuto-Compress Web Files with gzip
- B.15.7. Apache::CompressAuto-Compress Web Files with gzip
- B.15.8. Apache::LayerLayer Content Tree Over One or More Others
- B.15.9. Apache::SandwichLayered Document (Sandwich) Maker
- B.15.10. Apache::SimpleReplaceSimple Template Framework
- B.15.11. Apache::SSIImplement Server-Side Includes in Perl
- B.16. Logging-Phase Handlers
- B.16.1. Apache::RedirectLogFixCorrect Status While Logging
- B.16.2. Apache::DBILogConfigLogs Access Information in a DBI Database
- B.16.3. Apache::DBILoggerTracks What's Being Transferred in a DBI Database
- B.16.4. Apache::DumpHeadersWatch HTTP Transaction via Headers
- B.16.5. Apache::TrafficTrack Hits and Bytes Transferred on a Per-User Basis
- B.17. Core Apache Modules
- B.17.1. Apache::ModuleInterface to Apache C Module Structures
- B.17.2. Apache::ShowRequestShow Phases and Module Participation
- B.17.3. Apache::SubProcessInterface to Apache Subprocess API
- B.17.4. Apache::ConnectionInterface to the Apache conn_rec Data Structure
- B.17.5. Apache::ConstantsConstants Defined in httpd.h
- B.17.6. Apache::ExtUtilsUtilities for Apache C/Perl Glue
- B.17.7. Apache::FileAdvanced Functions for Manipulating Files on the Server Side
- B.17.8. Apache::LogInterface to Apache Logging
- B.17.9. Apache::LogFileInterface to Apache's Logging Routines
- B.17.10. Apache::ScoreboardPerl Interface to Apache's scoreboard.h
- B.17.11. Apache::ServerPerl Interface to the Apache server_rec Struct
- B.17.12. Apache::TablePerl Interface to the Apache Table Struct
- B.17.13. Apache::URIURI Component Parsing and Unparsing
- B.17.14. Apache::UtilPerl Interface to Apache C Utility Functions
- B.18. Other Miscellaneous Modules
- B.18.1. Apache::SessionMaintain Session State Across HTTP Requests
- B.18.2. Apache::RequestNotesEasy, Consistent Access to Cookie and Form Data Across Each Request Phase
- B.18.3. Apache::CookieHTTP Cookies Class
- B.18.4. Apache::IconLook Up Icon Images
- B.18.5. Apache::IncludeUtilities for mod_perl/mod_include Integration
- B.18.6. Apache::LanguagePerl Transparent Language Support for Apache Modules and mod_perl Scripts
- B.18.7. Apache::MmapPerl Interface to the mmap(2) System Call
- B.18.8. Apache::GD::GraphGenerate Graphs in an Apache Handler
- B.18.9. Apache::MotdProvide motd (Message of the Day) Functionality to a Web Server
- B.18.10. Apache::ParseLogObject-Oriented Perl Extension for Parsing Apache Log Files
- B.18.11. Apache::RegistryLoaderCompile Apache::Registry Scripts at Server Startup
- B.18.12. Apache::SIGOverride Apache Signal Handlers with Perl's Signal Handlers
- B.18.13. Apache::TempFileAllocate Temporary Filenames for the Duration of a Request
- B.18.14. XmmsPerl Interface to the xmms Media Player
- B.18.15. Module::UseLog and Load Used Perl Modules
- C. ISPs Providing mod_perl Services
- C.1. Users Sharing a Single Web Server
- C.2. Users Sharing a Single Machine
- C.3. Giving Each User a Separate Machine (Colocation)
- C.4. Giving Each User a Virtual Machine
- D. The Template Toolkit
- D.1. Fetching and Installing the Template Toolkit
- D.2. Overview
- D.3. Typical Uses
- D.4. Template Toolkit Language
- D.4.1. Simple Template Example
- D.5. Processing Templates
- D.6. Apache/mod_perl Handler
- D.7. Apache::Template Module
- D.8. Hangman Application
- D.8.1. Hangman CGI Script
- D.8.2. Hangman with Modular Templates
- D.8.3. Hangman Plug-in
- D.8.4. Self-Contained Hangman Template
- D.9. References
- E. The AxKit XML Application Server
- E.1. Installing and Configuring AxKit
- E.2. Your First AxKit Page
- E.2.1. If Something Goes Wrong
- E.2.2. How it Works?
- E.2.3. XPath
- E.3. Dynamic Content
- E.3.1. Handling Form Parameters
- E.3.2. Handling Cookies
- E.3.3. Sending Email
- E.3.4. Handling Exceptions
- E.3.5. Utilities Taglib
- E.3.6. Executing SQL
- E.4. More XPathScript Details
- E.4.1. The XPathScript API
- E.4.1.1. Extracting values
- E.4.1.2. Declarative templates
- E.4.1. The XPathScript API
- E.5. XSLT
- E.5.1. Anatomy of an XSLT Stylesheet
- E.5.2. Template Rules and Recursion
- E.5.3. Learning More
- E.6. Putting Everything Together
- E.7. More Reasons to Use AxKit
- F. HTTP Status Codes
- F.1. HTTP/1.0 Status Codes
- F.2. HTTP/1.1 Status Codes
- F.3. References
- Index
- About the Authors
- Colophon
- SPECIAL OFFER: Upgrade this ebook with OReilly
O'Reilly Media - inne książki
-
With the shift from data warehouses to data lakes, data now lands in repositories before it's been transformed, enabling engineers to model raw data into clean, well-defined datasets. dbt (data build tool) helps you take data further. This practical book shows data analysts, data engineers, BI de...(203.15 zł najniższa cena z 30 dni)
203.15 zł
239.00 zł(-15%) -
Get a concise yet comprehensive overview of Airtable, one of the most versatile platforms to emerge from the no-code movement. Whether you're planning a new project, sharing data analysis within your organization, tracking a detailed initiative among stakeholders, or dealing with any other projec...(245.65 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
Implementing and designing systems that make suggestions to users are among the most popular and essential machine learning applications available. Whether you want customers to find the most appealing items at your online store, videos to enrich and entertain them, or news they need to know, rec...(245.65 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
Cyber risk management is one of the most urgent issues facing enterprises today. This book presents a detailed framework for designing, developing, and implementing a cyber risk management program that addresses your company's specific needs. Ideal for corporate directors, senior executives, secu...(186.15 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
Learn the core concepts of Vue.js, the modern JavaScript framework for building frontend applications and interfaces from scratch. With concise, practical, and clear examples, this book takes web developers step-by-step through the tools and libraries in the Vue.js ecosystem and shows them how to...(203.15 zł najniższa cena z 30 dni)
203.15 zł
239.00 zł(-15%) -
Many UX designers are surprised to learn that much of the job isn't about drawing things. It's about knowing what to draw and how to convince people to build it. Whether you're a one-person design team making products from scratch or a C-level product leader managing many products and strategies,...(152.15 zł najniższa cena z 30 dni)
160.65 zł
189.00 zł(-15%) -
With demand for scaling, real-time access, and other capabilities, businesses need to consider building operational machine learning pipelines. This practical guide helps your company bring data science to life for different real-world MLOps scenarios. Senior data scientists, MLOps engineers, and...(245.65 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
As tech products become more prevalent today, the demand for machine learning professionals continues to grow. But the responsibilities and skill sets required of ML professionals still vary drastically from company to company, making the interview process difficult to predict. In this guide, dat...(245.65 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
If your organization plans to modernize services and move to the cloud from legacy software or a private cloud on premises, this book is for you. Software developers, solution architects, cloud engineers, and anybody interested in cloud technologies will learn fundamental concepts for cloud compu...(203.15 zł najniższa cena z 30 dni)
203.15 zł
239.00 zł(-15%) -
Analytics projects are frequently long, drawn-out affairs, requiring multiple teams and skills to clean, join, and eventually turn data into analysis for timely decision-making. Alteryx Designer changes all of that. With this low-code, self-service, drag-and-drop workflow platform, new and experi...(245.65 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka drukowana
Oceny i opinie klientów: Practical mod_perl Stas Bekman, Eric Cholet (0) Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.