
Drupal (http://drupal.org) is the open source content management platform that this blog site was created using. It provides a quick and easy means of deploying multiple blogs, forums and rss feeds all on the same site, with individual user logins and user-customisable preferences.
Installation
In this example I used the free Linux distribution CentOS (www.centos.org), version 4.7
Install a base configuration of CentOS including the Web Server and MySQL Database Server roles
Once installed, update the PHP installation via yum with the following command:
yum update php
Install the PHP-GD package with the following command:
yum install php-gd
Locate the "php.ini" file in the /etc directory. Locate the line setting the default memory allocation for running php scripts. If the value is set to 8M, increase it to 16M and save the file.
Start the web server with the following command:
service httpd start
Set the service to start automatically at boot with the following command:
chkconfig httpd on
Start the MySQL server withe the following command:
service mysqld start
Set the service to start automatically at boot with the following command:
chkconfig mysqld on
Edit the /etc/httd/conf.d/welcome.conf configuration file, commenting out all lines so that the default Apache welcome page is not displayed.
Download the latest version of Drupal from http://drupal.org
Extract the contents of the archive file. Move the contents to the /var/www/html/ directory with the following command:
mv drupal-x.x/* drupal-x.x/.htaccess /var/www/html
Copy the 'default.settings.php' in /sites/default to 'settings.php'. Make the file writable with a chmod 777 command
Make a directory in the /sites/default folder called 'files' and make it writable with a chmod 777 command
Before we can install Drupal, we first need to a create a MySQL database and user account for it to use. To do this, you may want to download and install webmin (www.webmin.com)
Install the RPM package with the command:
rpm -i webmin-x.x.x
Once installed, browse to the webmin interface from your browser at http://(server):10000
Log in as the root user.
Browse to Servers --> MySQL Database Server:

Create a new database and call it 'drupal' or something suitable.
Click on User Permissions and select the option to create a new user.
Enter a name and password for the new user account and set the database server to 'localhost'. Assign all permissions to the user account.
You are now ready to install Drupal.
Within your web browser navigate to http://(server)/install.php. The following screen will be displayed:

Select the option to Install the solution in English:

You will now be prompted to enter the Database settings. Complete the fields using the information you specified earlier. Click Save and Continue:

You will be prompted to now make the settings.php file unwritable. Do this with a chmod 755 command.
Enter a name for the site and complete the administrator's email address.
Scroll down:

Complete the details of the default site administrator account. Click Save and Continue:

The Drupal installation is now complete and you are ready to customise the installation.
Enabling Clean URLs
Clean URLS are required by some search engines in order to be able to index your new web site effectively. There are 2 steps to this process.
By default, Drupal will process links to articles including the characters "/?q=" in the URL. This can confuse some search engines. To remove this text, a change must be made to the default Apache configuration file.
Locate the file /etc/httpd/conf/httpd.conf and edit it.
Locate the section beginning:
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
and change the AllowOverride value from 'None' to 'All'
Save the file and restart the httpd service
Within the Drupal admin interface, browse to Administer --> Site Configuration --> Clean URLs:

Set the option to Enabled.
This will cause 'clean' URLs to be generated (ie without the ?q=), but this does not generate any useful indexable text: all articles being named /node1, /node2, etc. In order to give articles names including keywords (along the lines of /installing_drupal), URL Aliases must be configured.
This feature is a built-in module that must be enabled within Administer --> Modules:

Enable the PATH module and save the configuration. If you now return to the Administer page, there is a new option for "URL Aliases":

Here Aliases can be created manually by the administrator.
To have aliases created automatically when a new article is saved, based on the article title, download and enable the "PathAuto" module.
This is an optional module available from the Drupal web site. It is well worth having a look at the modules available from the site as there are a wealth of very useful utilities. A wide collection of Themes are also available from the Drupal web site.
Any optional modules need to be saved to the /sites/all/modules/ directory. As soon as they are saved there they will be listed in the Modules administration page.
Once enabled, the PathAuto module will add another option within the Clean URLs page:

Enabling the "Hit Counter"
Drupal can automatically monitor the number of hits each page receives. To enable this functionality, enable the Statistics module.
To make the access statistics viewable on the main site, browse to Administer --> User Permissions
Set the option to View Post Access Counter to be available to Anonymous Users.
Save the configuration.
Additional Modules
The real power of Drupal is in the third party add-on modules that are developed for the platform by the community.
Browse to http://drupal.org/project/modules for more information.
Addendum
In order to install Drupal 7 you will require PHP 5.2 or later. CentOS 5.3 includes PHP 5.1 by default. To install PHP 5.2 you will need to add the development repository to your yum configuration.
Locate the file /etc/yum.repos.d/CentOS-Base.repo and add the following text to the bottom:
# CentOS-Testing: # !!!! CAUTION !!!! # This repository is a proving grounds for packages on their way to CentOSPlus and CentOS Extras. # They may or may not replace core CentOS packages, and are not guaranteed to function properly. # These packages build and install, but are waiting for feedback from testers as to # functionality and stability. Packages in this repository will come and go during the # development period, so it should not be left enabled or used on production systems without due # consideration. [c5-testing] name=CentOS-5 Testing baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing includepkgs=php*
Save the file, then run
yum update
to instal all available updates.
Drupal 7 will also require the PHP-DOM module.