Some users are still unsure whether a content management system (CMS) is a website builder, an internal tool for managing documents and other content, or an application framework that can serve as a sort of cloud-based companywide tool. The free, open source Joomla! can do all of those things and more, as I describe in my 2009 TechRepublic review of the CMS.

This tutorial is a walkthrough on how to install the Joomla! platform. Since many of the tools I use are the same or similar on each platform, I run this installation on a Linux Apache MySQL PHP (LAMP) server. In future DIY posts, I’ll provide tips on how to use Joomla!

What you’ll need

Read this DIY post first

Before you begin the Joomla! installation process, please read my post DIY: Troubleshooting Apache installations, so your .php files are being processed and not downloaded.


Joomla! is a database-driven CMS, and the database best suited for it is MySQL. There are a number of ways to create the database for the site, but I find the easiest way is with the MySQL Workbench tool. Once the MySQL Workbench tool is installed, it can easily create the necessary database for the Joomla! installation. Here’s how.

The first step is to connect to your MySQL server, which will require the MySQL administrator credentials. After a successful authentication to the server, click the Create New Schema button in the Overview tab (Figure A).
Figure A

The Create New Schema button in this image is right above the Bacula tab. (Click the image to enlarge.)

After the Create New Schema button is clicked, follow these steps:

  1. Enter the schema name. I recommend naming the schema joomla.
  2. Select utf8-default-collation as the Default Collation option.
  3. Click the Apply button. This will open a new window where you can review the configuration. If the configuration looks correct, click the Apply button, and the new schema will be created.

Once the database is created, it’s time to move on to the actual installation of Joomla!.

Unpack the download

The Joomla! download will be in the form (XXX is the release number). Follow these steps:

  1. Move the file to /var/www/.
  2. Unzip the package with the command sudo unzip (XXX is the release number).

You need to understand that unpacking the Joomla file will not create a handy sub-directory where all of Joomla!’s pieces will be then unpacked; the above command will explode the contents of the Joomla! file into the document root of the Apache server. If that is not a desired end result, try the following:

  1. Create a new directory with the command sudo mkdir /var/www/joomla.
  2. Move the Joomla zip file into the newly created directory.
  3. Unpack the Joomla file within the newly created directory.

Follow the final installation steps below (if a sub-directory has been created for the Joomla! installation, make sure those changes are added to these steps):

  1. Rename the /var/www/installation/configuration.php-dist file to /var/www/configuration.php.
  2. Give the configuration.php file write access with the command sudo chmod 777 /var/www/configuration.php.

Now all of those bits and pieces won’t be cluttering up your document root. If Joomla! will be the only site hosted on your server, it’s fine to unpack in the document root (that will avoid users having to use the address http://ADDRESS_TO_SERVER/joomla/).

With the database created and the file unpacked, it’s time to point your web browser to http://ADDRESS_TO_SERVER/index.php. If Joomla! was packed into a sub-directory, you need to make sure that sub-directory is in the URL (before /index.php).

The next step is to follow the installation wizard, which covers these areas:

  • Language For Installation. This is not the language for your Joomla! site; this is the language to be used for the installation only.
  • Pre-installation Checks. If any checks fail, the fix(es) should be obvious here.
  • License agreement.
  • Database Settings. The default is MySQLi with this installation. You should switch to MySQL and fill out the necessary information.
  • FTP. Unless you need FTP access, don’t bother enabling this feature. If you do need FTP access, an FTP server will have to be installed first.
  • Site Configuration. This is where the Site Name and site administrator are configured. I highly recommend installing the Sample Data (it’s a simple click of a button prior to clicking the Next button). From the Advanced Settings, the site metadata can be configured.
  • Remove The Installation Directory. This is a new feature, where the installation directory can be removed automatically by clicking the Remove Installation Folder button on the final page of the installation. If this button errors out, the installation directory can be removed with the command sudo rm -rf /var/www/installation. That command should be run after first visiting the Administrator control panel (Figure B) or the Site (click either button in the top right of the final installation page).

Figure B

The Administrator panel is where the bulk of the Joomla! work is done. (Click the image to enlarge.)

Now you can log in as the administrator (go to http://ADDRESS_TO_SERVER/administrator/ to log in) and begin configuring your site.

Congratulations! The Joomla! CMS is now installed and ready to serve.