Chapter 6
Administering Apache
In this chapter, we’ll build a Linux web server from scratch. You’ll learn how to:
Install and configure Apache, PHP, and MySQL
Manage multiple web sites with virtual hosts
Encrypt sensitive pages with SSL
Enable server-side includes and CGI scripts
Test for performance and security problems
Install vlogger and Webalizer to view site statistics
Install Drupal, a content management system that you’ll find useful in many
environments and that uses many of these elements
This chapter describes an environment with a single web server; in Chapter 7, we’ll
show you how to set up a pair of web servers for load balancing.
Web servers are large and complex, and when configuring them it isn’t always clear
how or why things are done. Along the way, we’ll point out why we have chosen
some alternatives and passed by others. To keep explanations short and simple, we’ll
use standard Debian procedures and defaults. We’ll secure the installations as we go,
to underscore the lesson that you have to think about security and build it in from
the start. Toward the end of the chapter, you’ll find the “Troubleshooting” section.
Static and Dynamic Files
A basic web site consists of files: HTML, graphics, JavaScript, stylesheets, and other
types. The contents of these files are static—they don’t change on the server, and the
only job of the web server is to return them to the browser on request. A web server
needs only a little configuration to serve static files.
Many sites have some dynamic aspects, too, including content generation, access
control, and database storage and retrieval. The simplest way to make static HTML
files dynamic is with server-side includes (SSI), which are specially formatted HTML

Get Linux System Administration now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.