Did you know that Joomla can be run on a virtual appliance? Nope, well neither did I, until I was asked the question last week and looked into it. So you are probably asking yourself, what is a virtual appliance? Basically it's a preconfigured server that you can load up as a virtual machine, and it dramatically simplifies configuration and system administration. So when we are talking about virtual appliances for Joomla, there are two options. Firstly there is TurnKey Linux, which is a free open source virtual appliance that contains all the stuff you need for Joomla, including Apache, PHP, MySQL, phpMyAdmin etc. A more commercial alternative is JumpBox, but this starts from $60 per month. I've decided to stick with the free option, so this blog will be all about how to set up TurnKey Linux Virtual Appliance for Joomla 3.

I'm setting this up on a Hyper-V virtual machine in Windows 8, but you could run this on most virtual environments such as VM Ware, VirtualBox, Xen etc. So the first thing you need to do is download the appropriate image. I'm using the ISO version, but what you choose will depend on your virtual environment. Make sure you download the correct version to suit your processor, I made the mistake of initially downloading the AMD image. You can see all the alternative options on the mirrors list.

So once you have your virtual appliance image, you need to set up a virtual machine, in this case here is how to do it with Hyper-V.

 First off you need to give your VM a name, and choose where to store the virtual machine.

I'm just sticking with the default 512MB memory, but you can allocate more if needed.

I'm using a virtual ethernet switch to share the ethernet connection on my laptop with the virtual machine.

Choose where the virtual hard disk is going to be, and how big it can grow to.

Select the ISO virtual appliance to boot off. Note that even though this is a Joomla 2.5 image, it will also work fine with Joomla 3 as the PHP & MySQL versions are suitable to run either Joomla version.

Then press finish to create your virtual machine.

Initially it will boot off the ISO image and start the install process.

I've just gone for the easy option and done the guided mode.

Yes write changes to disk.


The default should be fine here.



Now it is time to boot off the new virtual machine.

The first time you boot up you will need to set the root password, this is used for the Web shell and Webmin console later.

You will need to confirm each password.

Now set the MySQL password for the root user.

And confirm that too.

Next will be the password for the admin account on the Joomla 2.5 install that this image comes with.

And confirm that too.

Now put in the email address for the admin user on the default Joomla 2.5 install.

I'm just going to skip this next step.

It would be a good idea to install any updates to make your Linux install more secure.

I initially has issues with this as it couldn't find the network connection. I had to add a Legacy Network Adapter to my virtual machine.

And select Ethernet Virtual Switch, which allows the physically ethernet connection on my laptop to be shared with the virtual machine.

One thing to note here is to turn off your virus scanner before making any changes to the virtual machine, as it can cause errors.

That's pretty much all you need to do now to set up the virtual appliance. When it boots up, you will see the below screen that tells you the URL's to access the Web shell, Webmin, PHPMyAdmin, SFTP etc.

If you now browse to the IP shown above, you should see the default Joomla 2.5 install. You could potentially replace this with Joomla 3, either by upgrading this site or replacing it by restoring an akeeba backup of your site.

The virtual appliance has a Web shell, which is a command line interface that allows you to access the underlying Linux system. The first time you browse to the URL you will need to add an exception.

Confirm security exception

Now log in the root and the password you set during the setup, and you can access Linux and make whatever changes you like.

The Webmin console is a more graphical way of adjusting some of the settings.

You can adjust the PHP configuration etc in here.

The PHPMyAdmin url gives you full access to your database using root user and the password you set during the setup.

You can also connect via SFTP to upload/download files etc.

If you are behind a corporate proxy server, you can use normal Linux commands to set this, for example:

export http_proxy=

You can also manually update the system using the apt-get update command.

For my virtual appliance, I also installed ldap so I can have SSO for my site.

apt-get install php5-ldap

And that all there is to it. Now you have a nicely configured virtual appliance to run your Joomla websites, and if anything goes wrong you can just restore the image and you'll be back up and running in a few minutes.

If you are using a virtual appliance to host Joomla, please let us know in the comments and share any tips you might have.

Leave your comments

Post comment as a guest

Your comments are subject to administrator's moderation.

People in this conversation

  • Guest - john abraham

    It's brief explanation about the joomla platform. I can easily understand the process with the help of screenshots. Thanks for sharing the valuable info.

  • Another tip, if you have file permission problems and get the error "JFolder::create: Could not create directory" when installing extensions, run the following command:
    chown -R www-data:www-data /var/www/joomla

  • When I wrote this blog post, I was using Turnkey Linux 12.1, which has PHP 5.3.3, so you can use this to install up to Joomla 3.2.4. Now that Joomla 3.3 has a minimum PHP requirement of 5.3.10, to use the current version of Joomla you will need to use Turnkey Linux 13.0, which has PHP 5.4.4.