Build a low cost Intranet solution with Joomla
More and more companies are realising the benefit of using an Intranet to communicate with their staff/customers/stakeholders. In the past this has often meant a large investment in bespoke solutions or products such as Microsoft SharePoint. Well my friends, those times have gone.
Joomla is a powerful Open Source content management system. It allows you to easily create an Intranet and then extend its capabilities with Joomla extensions and customised programming. As you will see below you can create a very powerful Intranet in a relatively short period of time and with very little cost. Although Joomla can be installed on various platforms it was originally designed for Linux and that is where it runs best so grab yourself a SLES server (either physical or virtual – it works brilliantly with XEN) and off we go.
N.B. I have blanked out some parts of my screen shots to protect my clients identity.
- Install SLES 10 SP1 onto your server hardware. The default settings will generally be fine however on the Installation Settings screen click on the Software heading and then select the “Web and LAMP Server” software package. All other ‘Primary Functions’ packages can be deselected.
- If you didn’t register with the Novell Customer Center during your SLES 10 installation complete this step now by running the Novell Customer Center Configuration Wizard from within YaST. This will allow you to input your SLES 10 activation code which in turn allows you to run Online Update.
- In YaST select the Online Update module and install any outstanding updates.
- We now need to install two additional software components. To do this open YaST and select Software Management. In the ‘Search’ field on the left hand side type php5. Then click on Search. All packages with ‘php5’ in their name will be listed in the right hand window. Place a tick in the box next to the php5-mysql and php-zlib packages. Click Accept to install the packages. Click Continue to any dependency warning messages.N.B. You could complete this step during the initial installation process.
- To start your Apache web server open a server terminal and type /etc/init.d/apache2 start.
- Before proceeding open a web browser on your server and browse to http://localhost. If Apache is working correctly you should see a page saying “It works!”.
- Next configure Apache to start when the server boots by typing inserve apache2 in the server terminal.
- You now need to download the latest version of the Joomla software from http://joomlacode.org/gf/project/joomla/frs.
- Extract the downloaded file either using the GUI or the command line.If you downloaded the software to your desktop you can use the following commands in a server terminal to extract the files to a folder called Joomla on your desktop:
cd ~/Desktop mkdir Joomla cd Joomla tar –xvf ~/Desktop/Joomla_<version>-Stable-Full_Package.tar.gz
- I always recommend backing up your default Apache files before doing anything else. To do this enter the following into a server terminal:
cd /srv/www/htdocs mkdir apache_backup mv * apache_backup
- Next copy your extracted Joomla files into the root of your web sever (/srv/www/htodcs) by using the following command in the server terminal:
cd /srv/www/htdocs cp –r ~/Desktop/Joomla/. .
To ensure the wwwrun user and www group (used by Apache) have access to these files type the following commands in your terminal:
chown –R wwwrun.www /srv/www/htdocs chmod –R 744 /srv/www/htdocs
- Next we need to modify the /etc/php5/apache2/php.ini configuration file to ensure the settings are correct for Joomla. To do this open a server terminal and perform the following tasks:
- Type vi/etc/php5/apache2/php.ini
- Once vi has loaded type /magic to find the magic_quotes_qpc directive. The first reference is simply a description of the setting. Press n to find the next reference. You should now see the line ‘magic_quotes_qpc = Off’. Press the Ins key (to change to Insert mode) and change this setting to On.
- Press the Esc key to return to Command mode and type /display_errors.
- The first instance of this directive is again probably a description of the directive. Press n several times (3 times in my case) to find the line “display_errors = Off’. Press the Ins key (to change to Insert mode) and change this to ‘display_errors = On’.
- Press Esc to return to Command mode.
- Finally type to save the file and exit vi.
- Now restart Apache to ensure these settings take effect. Type /etc/init.d/apache2 restart in your terminal.
- Again open the web browser on your server and browse to http://localhost. You may need to refresh your browser if it is still open from earlier in the installation. You should see the first page of the Joomla Installation, as shown below. Select your Language and click on the Next button.
- On the Pre-Installation Check page you can see that Joomla automatically checks that the settings on your system are correct before the installation continues. All items should be displayed in green. If not resolve these issues before you proceed. Click Next.
- Read the License agreement and then click Next.
- On the Database Configuration page you need to enter parameters for your MySQL database. These options are explained below:
Database Type Leave this as the default, mysql. Host name This is the name of your server hosting mysql. If you have mysql installed on your local server (the same server as Joomla) use localhost. If not specify the host name. User Name The default MySQL user is root. If you are happy to use this simply enter root. Password By default the password for the root MySQL user is blank. This is obviously insecure. To configure this open a terminal and use the following commands to set a password:/etc/init.d/mysql start
mysql –u root
SET PASSWORD FOR ‘root’@'localhost’ = PASSWORD(‘YOURPASSWORDHERE’);
Type your new password in this field.
Database Name Type joomla. (This is created for you by the installation)
Click Next to continue.
- On the FTP Configuration page I am going to leave the option No selected for now. You can manually enable this at a later date if you wish. Click Next.
- On the Main Configuration page input the following information:
Site Name Specify a name for your site. This will be displayed on your web site. You can easily modify it at a later stage. Your Email Email your email address. This address will be used for the admin user account (within Joomla). Admin password Type a secure password and confirm it. Install Default Sample Data Ensure this option is ticked and then click on the Install Sample Data button. Unless you are experienced with Joomla getting the system up and running without any sample data can be difficult. You can easily remove this data later.
- The installation is now complete. Read the message carefully on the page as shown below.
As mentioned on the page above you must remove the installation directory before your Joomla web site will work. To do this open a terminal window and type the following commands:
cd /srv/www/htdocs rm –r installation
- You can now use your browser to go to http://localhost. You will see the default Joomla home page as shown below. Please note in my installation I didn’t install any sample data, which is why it’s blank!!
- To access the backend administrator area of the site browse to http://localhost/administrator. Login with the username admin and the password you specified during the installation.
Once logged in you can very easily customise and extend your web site using the tools provided by Joomla.
- Finally create an entry in your DNS to point to the IP address of the server hosting your Joomla site e.g. intranet.yourcompany.co.uk.The ability to customise and add features to Joomla is almost unlimited using Joomla Templates (many of which are free or very low cost) and Joomla Extensions. Joomla also has many built-in features such as LDAP authentication so you can authenticate users to your Novell eDirectory servers!
An example of a Joomla web site after some work can be seen below:
The Billets Support Desk extension gives you the ability to add a very smart cleverly designed Helpdesk system.
The Codingfish Limited Market Place extension allows employees to buy/sell items on the intranet:
For advice/assistance email slesNOSPAM@runbox.com (without the NO SPAM) or better still post a comment to this article so other users can see. I try endeavour to respond to all emails, depending on demand!