Drupal

Drupal Logo

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:

Drupal

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:

Drupal

Select the option to Install the solution in English:

Drupal

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

Drupal

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:

Drupal

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

Drupal

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:

Drupal

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:

Drupal

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

Drupal

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:

Drupal


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.