There are two different ways to upgrade and maintain your Joomla! installation:
- Joomla! application supports upgrades. You can go you your Admin panel and update any plugin, theme or the application itself from the Joomla! dashboard: Extensions -> Extension Manager -> Updates -> Find Updates.
- Migrate your application to a new BitNami AMI with an updated version of the application and/or underlying components. We recommend that you do this from time to time to make sure that you not only have the best and latest version of Joomla!, but also have the latest (and most secure) versions of Apache, MySQL and other software that Wordpress runs on. We regularly refresh the images available in the BitNami library to make sure that you always have access to the most up-to-date software.
This guide describes how to migrate your BitNami Joomla! AMI (Amazon Machine Image) to a new AMI version. In this guide, we will refer to the servers that you have running Joomla! as "instances", which is the terminology that Amazon uses.
How can I create a backup of my instance?
We strongly recommend that you create a backup of your current instance if you are going to do major changes or upgrades. It is not absolutely necessary if you are migrating the data to a new instance because the process does not modify your current instance, but in general it is a best-practice to make a backup before starting on any process where you will be accessing or making changes to your server, particularly if you are new to the process.
There are different ways to create a backup. For this tutorial, we will use the snapshot feature of the Amazon Cloud.
To create a snapshot with a consistent file system, you should stop the server(s) before taking the snapshot. If you have never logged into your machine, see this guide for instructions on connecting to your instance. Once you are logged in, run this command to stop the server(s):
$ sudo /opt/bitnami/ctlscript.sh stop
You can now create a new EBS image (snapshot) based on this instance.
If you run into issues during this process, you can simply launch a new instance from this snapshot and restart the process.
How do I migrate the data to a new BitNami Joomla! instance?
Backing up the files
This section describes how to sync the Joomla! data from your previous instance to a new instance running a later release of the BitNami Joomla! AMI. First, log in to your current instance (or your backed up version) of Joomla!.
- Create a Joomla! backup with Akeeba backup plugin. This plugin is an open-source backup component for the Joomla! CMS. It creates a site backup that can be restored on any Joomla!-capable server.
The installation and backup process is the following:
- Go to http://www.akeebabackup.com and download the latest stable plugin version of "Akeeba Backup Core".
- Go to your Admin panel and select "Extension Manager" -> Install and select the plugin in your machine location
- Go to "Components" -> Akeeba and run the installation wizard.
- Then you can create a full backup of your site and download to your computer. This process will create a .jpa file.
- Create a backup of the configuration files. If you have configured Joomla! to run in the root URL, you may have modified the Joomla! configuration file /opt/bitnami/apps/joomla/conf/joomla.conf file. If this is the case, create a copy of this file:
$ cp /opt/bitnami/apps/joomla/htdocs/.htaccess /home/bitnami/htaccess.backup $ cp /opt/bitnami/apps/joomla/conf/joomla.conf /home/bitnami/joomla_backup.conf
You now have all of the required data to migrate your Joomla! site to a new instance. If you have customized the php.ini, my.cnf, httpd.conf or any other configuration file, you can also update the configuration files in the new instance.
Copying the files to the new instance
To copy your files from the old instance to the new one, complete the following steps:
- Download the backup files to your machine. To download the backed up files to your local machine (so you can upload them to a new one), you can either use the "SCP" command to download them or use your preferred sFTP client. For this tutorial, we will use the SCP command line tool:
$ scp -i /path/to/your/private_key.pem bitnami@old_server:*backup* .
Tip: You can also send the files from the old one to the new one directly. Assuming both servers were started with the same AWS cloud credentials, you can use the same SSH key to connect to both servers. On your local host, add your ssh key to the SSH agent:
$ ssh-add /path/to/your/private_key.pem
- Start the new AMI. Now, start the new version of the BitNami Joomla! AMI. You can view and access the latest version from the BitNami Joomla page. You can also start a BitNami AMI with a different operating system: Ubuntu, RedHat, etc, if you would like to switch operating systems at this time.
- Upload the files to the new instance. Copy the backup files to the new instance. You can also use the sFTP client for uploading them. You will also need to upload the "Akeeba backup kickstart" script from the Akeeba downloads page.
$ scp -i /path/to/your/private_key.pem kickstart-core-3.5.1.zip Joomla_backup.jpa htaccess.backup joomla_backup.conf bitnami@new_server:
Restoring files in the new instance
Before restoring the files, create a copy of your configuration.php file:
$ cp /opt/bitnami/apps/joomla/configuration.php /home/bitnami
- Install the Akeeba kickstart script. This tool should be uncompressed in the main Joomla! directory:
$ unzip kickstart-core-3.5.1.zip -d /opt/bitnami/apps/joomla/htdocs
Create a temporary dir for Akeeba:
$ mkdir /opt/bitnami/apps/joomla/htdocs/akeebatemp $ chmod 777 /opt/bitnami/apps/joomla/htdocs/akeebatemp
Copy the backup file to the htdocs folder:
$ cp Joomla_backup.jpa /opt/bitnami/apps/joomla/htdocs/
- Follow the Akeeba kickstart installation steps. Go to the http://new_machine/joomla/kickstart.php file and continue the installation steps to restore your site backup. You will need to specify the following FTP settings:
FTP user: bitnami
FTP password: find this in the /opt/bitnami/apps/joomla/htdocs/configuration.php
FTP directory: /opt/bitnami/apps/joomla/htdocs/
Temp dir: /opt/bitnami/apps/joomla/htdocs/akeebatemp
- Restore the configuration files. If you have customized the Joomla! configuration, you will need to restore the Apache configuration file.
$ cp /home/bitnami/htaccess.backup /opt/bitnami/apps/joomla/htdocs/.htaccess $ cp /home/bitnami/joomla_backup.conf /opt/bitnami/apps/joomla/conf $ cp /home/bitnami/configuration.php /opt/bitnami/apps/joomla/htdocs $ rm -rf /opt/bitnami/apps/joomla/htdocs/akeebatemp
Restart the servers (if necessary) with the command below. You should then be able to access to your blog in the new instance.
$ sudo /opt/bitnami/ctlscript.sh restart
How to associate the previous IP address to a new instance?
Once you have checked that the application is running properly and all of the data was successfully migrated, you can associate the old server IP address with the new instance. To do so, go to "Elastic IP's" in the Amazon AWS Console and change the instance associated with it. If you do not have any IP address, you can create a new one:
If you are using BitNami Cloud Hosting, you can either delete the old server (if you made a backup, you will still be able to restore it in the future) or use the "assign IP' button in the Manage section for your server to change the IP of the old server. You will then be able to go to the new server, click on the "assign IP" button and select the old IP address for your new server.
Once it has been updated (note that this sometimes takes a few minutes), you can access the new instance using the same domain name that you were using for the previous instance.