The installation, care, and feeding of an Apache Web server is not
terribly difficult, but can seem so if you haven't ventured into those
particular waters before. This quick-start guide will help you get your
feet wet with Apache on a Linux server. You'll find it's relatively
simple to get the Web server set up and running on your Linux of choice.
We'll also install
PHP and
MySQL, though we won't be digging into MySQL configurations, as that deserves a quick start all its own.
The
method of installing the Apache packages on a Linux server varies from
distribution to distribution. We'll cover how to do this on Fedora and
CentOS, as well as on Ubuntu. This is a server-centric walkthrough, so
we'll use the command line exclusively. Naturally, you'll need
root-level privileges. Open the terminal window and type:
su -
[ Prove your expertise with the free OS in InfoWorld's Linux admin IQ test round 1 and round 2. | Track the latest trends in open source with InfoWorld's Open Sources blog and Technology: Open Source newsletter. ]
Then enter the root password. Now we can get started.
First
we'll install the packages themselves. For Fedora and CentOS, this is a
simple step involving Yum, the package installer and updater. To
install the basic Apache and PHP packages, run the following command:
yum install httpd php mysql mysql-server
Follow the prompts, as this tool will locate and install a base set of Apache and PHP packages.
For Ubuntu 10.04 servers and newer, you can install the whole LAMP (Apache, MySQL, and PHP) stack with two commands:
sudo apt-get install tasksel
sudo tasksel install lamp-server
While
this guide does not cover MySQL, the above commands are a quick way to
get all the necessary packages required for LAMP applications. Once the
installation is complete, we can begin configuring the server.
For all file editing, on Fedora, CentOS, or Ubuntu, you may want to use nano:
nano /etc/httpd/conf/httpd.conf
This
command will open the Apache configuration file in a basic editor. You
can save the file with Ctrl-O and exit the editor with Ctrl-X.
Apache on Linux: Initial configuration
While
the Apache and PHP packages are essentially the same across the
different distributions, there are differences in how they are actually
installed on the file system. We'll start with Fedora and CentOS.
Fedora and CentOS.
After installation, you'll find a new directory: /etc/httpd. Within
this directory are all the Apache configuration files. The important
subdirectories for our purposes are /etc/httpd/conf and
/etc/httpd/conf.d. Within /etc/httpd you'll find the main Apache
configuration file, httpd.conf. In /etc/httpd/conf.d you will find
includes, or supplemental files that are included in the main configuration file.
Includes
are a way to break out complex configurations into separate files for
easy organization and management. For instance, if you have an Apache
server that has 20 virtual hosts, then each virtual host should have a
separate file in /etc/httpd/conf.d/ that contains its specific
configuration parameters. In this way, you can easily add or remove
virtual hosts without editing the main Apache configuration file.
In
order for files to be included in the Apache configuration, they must
have a filename that ends with .conf. If we have a virtual host named
www.test.com, all the configuration elements for that virtual host would reside in a file named test.conf or test.com.conf.
You
can see how these files are included in the main configuration file by
looking at /etc/httpd/conf/httpd.conf. Press Ctrl-W to search for
"Include conf.d" and you'll find this line:
Include conf.d/*.conf