Apache Cookbook

Table of Contents

Last modified: Wednesday, 31 December 1969 19:00 -0500


  1. Preface
    1. Installation
      1. Installing from Red Hat Linux's Packages
      2. Installing Apache on Windows
      3. Downloading the Apache Sources
      4. Building Apache from the Sources
      5. Installing with ApacheToolbox
      6. Starting, Stopping, and Restarting Apache
      7. Uninstalling Apache
    2. Adding Common Modules
      1. Installing a Generic Third-Party Module
      2. Installing mod_dav on a Unixish System
      3. Installing mod_dav on Windows
      4. Installing mod_perl on a Unixish System
      5. Installing mod_php on a Unixish System
      6. Installing mod_php on Windows
      7. Installing the mod_snake Python Module
      8. Installing mod_ssl
    3. Logging
      1. Getting More Details in Your Log Entries
      2. Getting More Detailed Errors
      3. Logging POST Contents
      4. Logging a Proxied Client's IP Address
      5. Logging Client MAC Addresses
      6. Logging Cookies
      7. Not Logging Image Requests from Local Pages
      8. Logging Requests by Day or Hour
      9. Rotating Logs on the First of the Month
      10. Logging Hostnames Instead of IP Addresses
      11. Maintaining Separate Logs for Each Virtual Host
      12. Logging Proxy Requests
      13. Logging Errors for Virtual Hosts to Multiple Files
      14. Logging Server IP Addresses
      15. Logging the Referring Page
      16. Logging the Name of the Browser Software
      17. Logging Arbitrary Request Header Fields
      18. Logging Arbitrary Response Header Fields
      19. Logging Activity to a MySQL Database
      20. Logging to syslog
      21. Logging User Directories
    4. Virtual Hosts
      1. Setting Up Name-Based Virtual Hosts
      2. Designating One Name-Based Virtual Host as the Default
      3. Setting Up Address-Based Virtual Hosts
      4. Creating a Default Address-Based Virtual Host
      5. Mixing Address-Based and Name-Based Virtual Hosts
      6. Mass Virtual Hosting with mod_vhost_alias
      7. Mass Virtual Hosting Using Rewrite Rules
      8. SSL and Name-Based Virtual Hosts
      9. Logging for Each Virtual Host
      10. Splitting Up a LogFile
      11. Port-Based Virtual Hosts
      12. Displaying the Same Content on Several Addresses
    5. Aliases, Redirecting, and Rewriting
      1. Showing Highlighted PHP Source Without Symlinking
      2. Mapping a URL to a Directory
      3. Creating a New URL for Existing Content
      4. Giving Users Their Own URL
      5. Aliasing Several URLs with a Single Directive
      6. Mapping Several URLs to the Same CGI Directory
      7. Creating a CGI Directory for Each User
      8. Redirecting to Another Location
      9. Redirecting Several URLs to the Same Destination
      10. Permitting Case-Insensitive URLs
      11. Replacing Text in Requested URLs
      12. Rewriting Path Information to CGI Arguments
      13. Denying Access to Unreferred Requests
      14. Rewriting Based on the Query String
      15. Redirecting All-or Part-of Your Server to SSL
      16. Turning Directories into Hostnames
      17. Redirecting All Requests to a Single Host
      18. Turning Document Names into Arguments
    6. Security
      1. Using System Account Information for Web Authentication
      2. Setting Up Single-Use Passwords
      3. Expiring Passwords
      4. Limiting Upload Size
      5. Restricting Images from Being Used Off-Site
      6. Requiring Both Weak and Strong Authentication
      7. Managing .htpasswd Files
      8. Making Password Files for Digest Authentication
      9. Relaxing Security in a Subdirectory
      10. Lifting Restrictions Selectively
      11. Authorizing Using File Ownership
      12. Storing User Credentials in a MySQL Database
      13. Accessing the Authenticated Username
      14. Obtaining the Password Used to Authenticate
      15. Preventing Brute-Force Password Attacks
      16. Using Digest Versus Basic Authentication
      17. Accessing Credentials Embedded in URLs
      18. Securing WebDAV
      19. Enabling WebDAV Without Making Files Writable by the Web User
      20. Restricting Proxy Access to Certain URLs
      21. Protecting Files with a Wrapper
      22. Protecting All Files Except a Subset
      23. Protecting Server Files from Malicious Scripts
      24. Setting Correct File Permissions
      25. Running a Minimal Module Set
      26. Restricting Access to Files Outside Your Web Root
      27. Limiting Methods by User
      28. Restricting Range Requests
    7. SSL
      1. Installing SSL
      2. Generating SSL Certificates
      3. Generating a Trusted CA
      4. Serving a Portion of Your Site via SSL
      5. Authenticating with Client Certificates
    8. Dynamic Content
      1. Enabling a CGI Directory
      2. Enabling CGI Scripts in Non-ScriptAliased Directories
      3. Using Windows File Extensionsto Launch CGI Programs
      4. Using Extensions to Identify CGI Scripts
      5. Testing That CGI Is Set Up Correctly
      6. Reading Form Parameters
      7. Invoking a CGI Program for Certain Content Types
      8. Getting SSIs to Work
      9. Displaying Last Modified Date
      10. Including a Standard Header
      11. Including the Output of a CGI Program
      12. Running CGI Scripts as a Different User with suexec
      13. Installing a mod_perl Handler from CPAN
      14. Writing a mod_perl Handler
      15. Enabling PHP Script Handling
      16. Verifying PHP Installation
    9. Error Handling
      1. Handling a Missing Host Field
      2. Changing the Response Status for CGI Scripts
      3. Customized Error Messages
      4. Providing Error Documents in Multiple Languages
      5. Redirecting Invalid URLs to Some Other Page
      6. Making Internet Explorer Display Your Error Page
      7. Notification on Error Conditions
    10. Proxies
      1. Securing Your Proxy Server
      2. Preventing Your Proxy Server from Being Used as an Open Mail Relay
      3. Forwarding Requests to Another Server
      4. Blocking Proxied Requests to Certain Places
      5. Proxying mod_perl Content to Another Server
      6. Configuring a Caching Proxy Server
      7. Filtering Proxied Content
      8. Requiring Authentication for a Proxied Server
    11. Performance
      1. Determining How Much Memory You Need
      2. Benchmarking Apache with ab
      3. Tuning Keepalive Settings
      4. Getting a Snapshot of Your Site's Activity
      5. Avoiding DNS Lookups
      6. Optimizing Symbolic Links
      7. Minimizing the Performance Impact of .htaccess Files
      8. Disabling Content Negotiation
      9. Optimizing Process Creation
      10. Tuning Thread Creation
      11. Caching Frequently Viewed Files
      12. Sharing Load Between Servers Using mod_proxy
      13. Distributing Load Evenly Between Several Servers
      14. Caching Directory Listings
      15. Speeding Up Perl CGI Programs with mod_perl
    12. Miscellaneous Topics
      1. Placing Directives Properly
      2. Renaming .htaccess Files
      3. Generating Directory/Folder Listings
      4. Solving the "Trailing Slash" Problem
      5. Setting the Content-Type According to Browser Capability
      6. Handling Missing Host: Header Fields
      7. Alternate Default Document
      8. Setting Up a Default "Favicon"
    13. Using Regular Expressions in Apache
    14. Troubleshooting
  2. Index