Book description
There's plenty of documentation on installing and configuring the Apache web server, but where do you find help for the day-to-day stuff, like adding common modules or fine-tuning your activity logging? That's easy. The new edition of the Apache Cookbook offers you updated solutions to the problems you're likely to encounter with the new versions of Apache.
Written by members of the Apache Software Foundation, and thoroughly revised for Apache versions 2.0 and 2.2, recipes in this book range from simple tasks, such installing the server on Red Hat Linux or Windows, to more complex tasks, such as setting up name-based virtual hosts or securing and managing your proxy server. Altogether, you get more than 200 timesaving recipes for solving a crisis or other deadline conundrums, with topics including:
- Security
- Aliases, Redirecting, and Rewriting
- CGI Scripts, the suexec Wrapper, and other dynamic content techniques
- Error Handling
- SSL
- Performance
Instead of poking around mailing lists, online documentation, and other sources, rely on the Apache Cookbook for quick solutions when you need them. Then you can spend your time and energy where it matters most.
Publisher resources
Table of contents
-
Apache Cookbook
- SPECIAL OFFER: Upgrade this ebook with O’Reilly
- Preface
-
1. Installation
- 1.1. Installing from Red Hat Linux’s Packages
- Installing from Debian Packages
- 1.2. Installing Apache on Windows
- 1.3. Downloading the Apache Sources
- 1.4. Building Apache from the Sources
- 1.5. Installing with ApacheToolbox
- 1.6. Starting, Stopping, and Restarting Apache
- 1.7. Uninstalling Apache
- Which Version of Apache to Use
- 1.8. Upgrading Using config.nice
- 1.9. Starting Apache at Boot
- 1.10. Useful configure Options
- 1.11. Finding Apache’s Files
-
2. Adding Common Modules
- 2.1. Installing a Generic Third-Party Module
- 2.2. Installing mod_dav on a Unixish System
- 2.3. Installing mod_dav on Windows
- 2.4. Installing mod_perl on a Unixish System
- 2.5. Installing mod_php on a Unixish System
- 2.6. Installing mod_php on Windows
- 2.7. Installing mod_ssl
- 2.8. Finding Modules Using modules.apache.org
- 2.9. Installing mod_security
- 2.10. Why Won’t This Module Work?
-
3. Logging
- 3.1. Getting More Details in Your Log Entries
- 3.2. Getting More Detailed Errors
- 3.3. Logging POST Contents
- 3.4. Logging a Proxied Client’s IP Address
- 3.5. Logging Client MAC Addresses
- 3.6. Logging Cookies
- 3.7. Not Logging Image Requests from Local Pages
- 3.8. Rotating Logfiles at a Particular Time
- 3.9. Rotating Logs on the First of the Month
- 3.10. Logging Hostnames Instead of IP Addresses
- 3.11. Maintaining Separate Logs for Each Virtual Host
- 3.12. Logging Proxy Requests
- 3.13. Logging Errors for Virtual Hosts to Multiple Files
- 3.14. Logging Server IP Addresses
- 3.15. Logging the Referring Page
- 3.16. Logging the Name of the Browser Software
- 3.17. Logging Arbitrary Request Header Fields
- 3.18. Logging Arbitrary Response Header Fields
- Logging Activity to a MySQL Database
- Logging to syslog
- Logging User Directories
-
4. Virtual Hosts
- 4.1. Setting Up Name-Based Virtual Hosts
- 4.2. Designating One Name-Based Virtual Host as the Default
- 4.3. Setting Up Address-Based Virtual Hosts
- 4.4. Creating a Default Address-Based Virtual Host
- 4.5. Mixing Address-Based and Name-Based Virtual Hosts
- 4.6. Mass Virtual Hosting with mod_vhost_alias
- 4.7. Mass Virtual Hosting Using Rewrite Rules
- 4.8. Logging for Each Virtual Host
- 4.9. Splitting Up a Logfile
- 4.10. Port-Based Virtual Hosts
- 4.11. Displaying the Same Content on Several Addresses
- Defining Virtual Hosts in a Database
-
5. Aliases, Redirecting, and Rewriting
- 5.1. Mapping a URL to a Directory
- 5.2. Creating a New URL for Existing Content
- 5.3. Giving Users Their Own URLs
- 5.4. Aliasing Several URLs with a Single Directive
- 5.5. Mapping Several URLs to the Same CGI Directory
- 5.6. Creating a CGI Directory for Each User
- 5.7. Redirecting to Another Location
- 5.8. Redirecting Several URLs to the Same Destination
- 5.9. Permitting Case-Insensitive URLs
- 5.10. Showing Highlighted PHP Source without Symlinking
- 5.11. Replacing Text in Requested URLs
- 5.12. Rewriting Path Information to CGI Arguments
- 5.13. Denying Access to Unreferred Requests
- 5.14. Redirecting Unreferred Requests to an Explanation Page
- 5.15. Rewriting Based on the Query String
- 5.16. Redirecting All—or Part—of Your Server to SSL
- 5.17. Turning Directories into Hostnames
- 5.18. Redirecting All Requests to a Single Host
- 5.19. Turning Document Names into Arguments
- 5.20. Rewriting Elements between Path and Query String
- 5.21. Rewriting a Hostname to a Directory
- 5.22. Turning URL Segments into Query Arguments
- 5.23. Using AliasMatch, ScriptAliasMatch, and RedirectMatch
-
6. Security
- 6.1. Using System Account Information for Web Authentication
- 6.2. Setting Up Single-Use Passwords
- 6.3. Expiring Passwords
- 6.4. Limiting Upload Size
- 6.5. Restricting Images from Being Used Off-Site
- 6.6. Requiring Both Weak and Strong Authentication
- 6.7. Managing .htpasswd Files
- 6.8. Making Password Files for Digest Authentication
- 6.9. Relaxing Security in a Subdirectory
- 6.10. Lifting Restrictions Selectively
- 6.11. Authorizing Using File Ownership
- 6.12. Storing User Credentials in a MySQL Database
- 6.13. Accessing the Authenticated Username
- 6.14. Obtaining the Password Used to Authenticate
- 6.15. Preventing Brute-Force Password Attacks
- 6.16. Using Digest Versus Basic Authentication
- 6.17. Accessing Credentials Embedded in URLs
- 6.18. Securing WebDAV
- 6.19. Enabling WebDAV Without Making Files Writable by the Web User
- 6.20. Restricting Proxy Access to Certain URLs
- 6.21. Protecting Files with a Wrapper
- 6.22. Protecting Server Files from Malicious Scripts
- 6.23. Setting Correct File Permissions
- 6.24. Running a Minimal Module Set
- 6.25. Restricting Access to Files Outside Your Web Root
- 6.26. Limiting Methods by User
- 6.27. Restricting Range Requests
- Rebutting DoS Attacks with mod_evasive
- Chrooting Apache with mod_security
- Migrating to 2.2 Authentication
- 6.28. Blocking Worms with mod_security
- 6.29. Mixing Read-Only and Write Access to a Subversion Repository
- 6.30. Using Permanent Redirects to Obscure Forbidden URLs
- 7. SSL
-
8. Dynamic Content
- 8.1. Enabling a CGI Directory
- 8.2. Enabling CGI Scripts in Non-ScriptAliased Directories
- 8.3. Specifying a Default Document in a CGI Directory
- 8.4. Using Windows File Extensions to Launch CGI Programs
- 8.5. Using Extensions to Identify CGI Scripts
- 8.6. Testing that CGI Is Set Up Correctly
- 8.7. Reading Form Parameters
- 8.8. Invoking a CGI Program for Certain Content Types
- 8.9. Getting SSIs to Work
- 8.10. Displaying Last Modified Date
- 8.11. Including a Standard Header
- 8.12. Including the Output of a CGI Program
- 8.13. Running CGI Scripts as a Different User with suexec
- 8.14. Installing a mod_perl Handler from CPAN
- 8.15. Writing a mod_perl Handler
- 8.16. Enabling PHP Script Handling
- 8.17. Verifying PHP Installation
- 8.18. Parsing CGI Output for Server Side Includes
- 8.19. Parsing ScriptAlias Script Output for Server-Side Includes
- 8.20. Getting mod_perl to Handle All Perl Scripts
- 8.21. Enabling Python Script Handling
-
9. Error Handling
- 9.1. Handling a Missing Host Field
- 9.2. Changing the Response Status for CGI Scripts
- 9.3. Customized Error Messages
- 9.4. Providing Error Documents in Multiple Languages
- 9.5. Redirecting Invalid URLs to Some Other Page
- 9.6. Making Internet Explorer Display Your Error Page
- 9.7. Notification on Error Conditions
-
10. Proxies
- 10.1. Securing Your Proxy Server
- 10.2. Preventing Your Proxy Server from Being Used as an Open Mail Relay
- 10.3. Forwarding Requests to Another Server
- 10.4. Blocking Proxied Requests to Certain Places
- 10.5. Proxying mod_perl Content to Another Server
- 10.6. Configuring a Caching Proxy Server
- 10.7. Filtering Proxied Content
- 10.8. Requiring Authentication for a Proxied Server
- Load Balancing with mod_proxy_balancer
- Proxied Virtual Host
- Refusing to Proxy FTP
-
11. Performance
- 11.1. Determining How Much Memory You Need
- 11.2. Benchmarking Apache with ab
- 11.3. Tuning KeepAlive Settings
- 11.4. Getting a Snapshot of Your Site’s Activity
- 11.5. Avoiding DNS Lookups
- 11.6. Optimizing Symbolic Links
- 11.7. Minimizing the Performance Impact of .htaccess Files
- 11.8. Disabling Content Negotiation
- 11.9. Optimizing Process Creation
- 11.10. Tuning Thread Creation
- 11.11. Caching Frequently Viewed Files
- 11.12. Distributing Load Evenly Between Several Servers
- 11.13. Caching Directory Listings
- 11.14. Speeding Up Perl CGI Programs with mod_perl
- Caching Dynamic Content
-
12. Directory Listings
- 12.1. Generating Directory/Folder Listings
- Display a Standard Header and Footer on Directory Listings
- 12.2. Applying a Stylesheet
- 12.3. Hiding Things from the Listing
- 12.4. Searching for Certain Files in a Directory Listing
- 12.5. Sorting the List
- Allowing a Client-Specified Sort Order
- 12.6. Specifying How the List Will Be Formatted
- 12.7. Allowing the Client to Specify the Formatting
- 12.8. Adding Descriptions to Files
- 12.9. Autogenerated Document Titles
- 12.10. Changing the Listing Icons
- 12.11. Listing the Directories First
- 12.12. Ordering by Version Number
- 12.13. Allowing the End User to Specify Version Sorting
- Complete User Control of Output
- Don’t Allow the End User to Modify the Listing
- 12.14. Suppressing Certain Columns
- Showing Forbidden Files
- 12.15. Aliases in Directory Listings
-
13. Miscellaneous Topics
- 13.1. Placing Directives Properly
- 13.2. Renaming .htaccess Files
- 13.3. Generating Directory/Folder Listings
- 13.4. Solving the “Trailing Slash” Problem
- 13.5. Setting the Content-Type According to Browser Capability
- 13.6. Handling Missing Host: Header Fields
- 13.7. Alternate Default Document
- 13.8. Setting Up a Default “Favicon”
- 13.9. Directory Listings in ScriptAliased Directories
- 13.10. Enabling .htaccess Files
- 13.11. Converting IBM/Lotus Server-Side Includes to Apache
- A. Using Regular Expressions in Apache
-
B. Troubleshooting
- Troubleshooting Methodology
- Debugging the Configuration
- Debugging Premature End of Script Headers
- Common Problems on Windows
- Fixing Build-Time Error Messages
- Getting Server-Side Includes to Work
- Debugging Rewrites That Result in “Not Found” Errors
- .htaccess Files Having No Effect
- Address Already in Use
- Index
- About the Authors
- Colophon
- SPECIAL OFFER: Upgrade this ebook with O’Reilly
Product information
- Title: Apache Cookbook, 2nd Edition
- Author(s):
- Release date: December 2007
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9780596551568
You might also like
book
The Definitive Guide to Apache mod_rewrite
Organizing websites is highly dynamic and often chaotic. Thus, it is crucial that host web servers …
book
Ubuntu Server Cookbook
Arm yourself to make the most of the versatile, powerful Ubuntu Server with over 100 hands-on …
book
Apache: The Definitive Guide, 3rd Edition
Apache is far and away the most widely used web server platform in the world. This …
book
Serverless Programming Cookbook
Build, secure, and deploy real-world serverless applications in AWS and peek into the serverless cloud offerings …