web_architecture1What are the functions of the principal components?

Linux
The Linux operating system provides the platform for secure and reliable operation of the web server. Access to the file system is governed by file permissions and enforced by the operating system. The operating system also provides interfaces to the networks and enforces process and user security.

Apache
When a user requests a page or content from the web server, Apache receives the HTTP Request and interprets the contents. For example, Apache will determine whether a file extension has been supplies as part of the Request. If so it will determine whether the requested resource is a static items, e.g. a simple web page stored as an HTML file, or whether the requested item relates to an application, e.g. a PHP file. Depending on the complexity of the requested item, Apache may be required to locate and respond with a number of resources, e.g. the basic HTML file, CSS files, Javascript, images and other media like MP3 audio files of SWF video files. Apache determines where to locate the content based on the path specified in the HTTP Request and the file paths identified in the HTML content.

PHP
Increasingly users expect to be provided wuth dynamic content, which may be influenced by time, current events, the user’s location or personalisation. With these more complex websites, static HTML pages are largely replaced by applications. One of the most popular scripting languages is PHP and there are a wide range of applications available including content management systems (CMS) like Joomla!, forums, bulletin boards, shopping carts, etc.

For a dynamic site, the Apache web server is configured to recognise when a script needs to be run, this may be through a combination of file extensions and default settings. For example, if a website’s home page is requested and the server has PHP installed, Apache will seek an index.php file in the root directory if there is no index.html file in the website root directory. It is this mechanism which is used to initialise applications like Joomla! The PHP scripts will be used to store and retrieve information and to render the HTML page layouts for transmission back to the user’s browser by the Apache web server.

MySQL

Typically a PHP website will also use a MySQL database to store content and configuration information. It is possibel to build sites where the contents are storeed in flat text files, but the use of relational databases like MySQL gives greater flexibility. The interaction between the Apache webserver and the MySQL database is handled by PHP.

An overview of a Web Server