I know most of you will be eager to get going at the moment and might well prefer to dive straight into making modifications to your Drupal site. Before we do so, we can take a few moments to read over this section to gain an appreciation of how everything is put together behind the scenes.
Having a basic knowledge of how the various technologies co-operate in order to produce a working Drupal site will help immeasurably in the long run. While everything we need to run a server will be provided in a single package, let's take a look at each of the individual underlying technologies we will be using:
PHP: PHP, or PHP Hypertext Preprocessor, is the language in which Drupal is written. PHP is widely used on the Internet for a multitude of different projects and is renowned for its ease of use.
Apache: This is the web server we will use to serve web pages during the development phase. Apache is the most popular web server on the Internet, with millions of live sites using it every day. In fact, as the Apache website says: It is more widely used than all the other web servers combined.
MySQL: This is the database software that we will use to store all the information required to keep the website running. Everything from customer details to product information and a host of other things will be stored in the MySQL database. Keeping with the trend of popularity, MySQL is also the world's most popular bit of database software with over six million active installations worldwide.
The package that we will use to get a complete web server (that includes all the above mentioned technologies) for the purposes of this book is called XAMPP .
Note
The XAMPP distribution is available at http://www.apachefriends.org/en/xampp.html.
Now that we know what we are using, it is important to take a quick look at how it is used. The following diagram shows a simplified view of how everything works, with the shaded section denoting the package containing the Apache web server, PHP interpreter, and MySQL database, with Drupal installed on the system:
So whenever a user does anything with your Drupal site (hopefully like contributing meaningfully), here's what happens:
The relevant information is sent to the server in the form of an HTTP (HyperText Transfer Protocol) request.
The server receives the HTTP request and says, Ah! This is a PHP page that has been requested. I need to send it off for processing by the PHP engine. The PHP page then gets processed and executed appropriately, and any actions that are required as a result of the user's request are performed.
Once that is done, an appropriate response is returned by the server to the user's browser, and the cycle continues.
There are quite a few methods of providing dynamic web content that don't rely on PHP server requests. Instead, processing can be done on the browser itself (features like this are often loosely termed Web 2.0), but what you have been shown here is fundamentally how everything works, even if there are exceptions to the rule.