Introducing Apacheby Rael Dornfest
Welcome to the first in a series of articles about Apache, the most popular web server software available. In the coming weeks, I'll talk about how to install Apache, its care and feeding, simple tricks to keep it running smoothly, and powerful modules you can add to extend its capabilities. If you'd like me to cover anything in particular, feel free to post your suggestions to the O'Reilly Network Apache Forum.
Your friends and colleagues have you convinced that Linux is the best thing since Scandinavian furniture. You've got the box and the home DSL line, and you're eager to reap the rewards of maintaining your very own server. Now what?
More and more, individuals and small businesses are reaching the functionality limits offered by canned mail- and web-hosting solutions and are bringing their web sites in-house -- literally. The low cost of bandwidth brought about by consumer DSL and increasingly simple Linux installations is making inexpensive, feature-rich servers a reality.
The first job most people want their personal server to do -- and no, it's not e-mail -- is to serve up web pages. And the web server software of choice is usually Apache.
What is a Web Server?
Before we get into the particulars of Apache, let's talk about what a web server is. A web server is a program that runs on a host computer (also, confusingly enough, called a web server) that serves up web sites. In other words, the web server program sits around awaiting requests from visitors' web browsers for objects it has in its possession, and then sends these objects back for the visitor's viewing pleasure. Objects that web servers can serve include HTML documents, plain text, images, sounds, video, and other forms of data. These objects may not necessarily exist in static form, but instead are generated on-the-fly by programs run by the server; CGI scripts are the most common of these programs.
Web servers and browsers communicate using HTTP, Hypertext Transfer Protocol, a simple but effective language for requesting and transmitting data over a network. Thus, you'll sometimes hear web servers referred to as HTTP servers.
Web servers come in various shapes and sizes. They run under a variety of operating systems, have varying levels of power and complexity, and range in price from rather expensive to free.
What's so special about Apache?
- Powerful -- Apache's performance and reliability is legendary.
- Feature-Rich -- The Apache server sports a host of features, including: XML support, server-side includes, powerful URL-rewriting, and virtual hosting, to name but a few. We'll be talking about some of these features in future articles.
- Modular -- Looking for a feature not implemented in the core Apache server? Chances are you'll find a module that can add the functionality you need.
- Extensible -- Can't find a module that suits your purposes? Well, as Apache is open source, you can write one yourself. In fact, you can even make changes to the inner workings of Apache. All the information you need is right there in the source code and numerous online resources. Share your patches or modules with the community by making them open source as well!
- Popular -- At the time of this writing, Apache holds a smidge under 60 percent of the web server market. And, yes, popularity does count; help abounds and is only a mailing list or newsgroup posting away.
- Free -- This is one instance where you don't necessarily get what you pay for.
Where does Apache live?
Apache is maintained by the Apache Software Foundation's Apache Server Project at http://www.apache.org.
- The Apache Web Site
- Mailing Lists
- The O'Reilly Network Apache Forum
- Commercial Support for Apache
Tune in Next Time...
Getting, Installing, and Running Apache