There is certainly more than one way to backup your Joomla! website, but without a reliable component (or even a built-in one), backing up a Joomla! website is a feat left to more technically savvy individuals. Without a backup component, the only way to reliably backup your Joomla! website is by using complex database and operating system commands.
Luckily, a wonderful backup component for Joomla! has been developed called Akeeba Backup (http://www.akeebabackup.com/). Akeeba Backup is a native Joomla 1.5/1.6 backup component available in two versions: Akeeba Backup Core (free, limited support) and Akeeba Backup Professional (commercial, full support). The free version is–of course–free, and the professional version will cost you–but not much, luckily. In this tutorial, I will walk you through the installation, configuration, backup, and restoration of your Joomla! site with Akeeba Backup Core.
Before you start this tutorial, you will need to meet the following requirements:
- A working Joomla! installation.
- Ability to create a test website for restoration purposes.
- Akeeba Backup Core component (https://www.akeebabackup.com/download/official/akeeba-backup.html).
- Akeeba Kickstart component (https://www.akeebabackup.com/download/official/akeeba-kickstart.html).
- An SSH/SFTP/FTP client.
Free vs Professional
As I mentioned previously, Akeeba Backup comes in two versions: a free version (Akeeba Backup Core) and a professional version (Akeeba Backup Professional).
The free version of this component provides all the necessary features of a simple backup system. This includes the ability to perform manual and scheduled backups of the website, define separate backup jobs (using profiles), select multiple backup formats, manage the backup files, and restore the backup files. The free version even has the ability to copy a Joomla! website to another web server using the Site Transfer Wizard.
The professional version of this component provides additional features including the ability to backup to cloud storage (DropBox, Amazon S3, RackSpace CloudFiles and more), encrypt backup archives with AES-128 encryption, include multiple databases and directories outside the default Joomla! directory structure, and filter files, directories, and extensions. While Akeeba Backup Core does provide the ability to schedule backups, Akeeba Backup Professional features a native CRON script which can backup a Joomla! website even if the web server is not running!
With over 2.5 million downloads of Akeeba Backup Core, the free version provides a robust feature set to reliably backup millions of Joomla! websites. Depending on your requirements, you may need to upgrade from the free version of the component to the professional version. But before you start deciding which version is right for you and if you will be able to afford it, let’s begin this tutorial so you can see the full power of Akeeba Backup Core.
Configuring Akeeba Backup Core
Before you begin this tutorial, you will need to make sure you have FTP or SFTP access to your web server because you will need to create a directory for your backups. Use your favorite FTP/SFTP client to connect to your web server and display the root directory of your website. Depending on your web server (or web host), your root directory may resemble any of the following:
In this example, my web server uses this directory structure: /home/jpraterdemo/domain.com.
If your are unable to access non-web-accessible directories, you will need to ignore this section and proceed to the Performing a Backup section.
*NOTE: While this step is not required, keep in mind that all of your backups will be stored in a web-accessible directory.
By default, Akeeba Backup stores the backup files in the following directory (starting at the Joomla! root directory): /administrator/components/com_akeeba/backup. While this is a perfectly valid backup directory, it is safer to store your backups in a non-web-accessible directory. Remember, all of your Joomla! directories (/administrator, /components, /plugins, /modules, /includes, etc.) are all web-accessible, meaning anyone with an Internet connection and a computer can access them. This is why you create a backup directory outside the root of your web-accessible directories. You can name your backup directory any name you like–just make sure you remember it (and its location) because you will need to access it later in the tutorial. In this example, I have named my backup directory backups.
After you have created a backup directory, it is time to install the component. The Akeeba Backup component is installed just like any other component. Log in as a Joomla! administrator, then from the main menu, go to Extensions > Install/Uninstall. Browse to the location of the component you downloaded earlier (com_akeeba-x.x.x.zip), then click the Upload File & Install button.
After the component has been installed successfully, a summary of all the installed Akeeba components, modules, and plugins will be displayed.
If you go to your site’s Control Panel (from the main menu, Site > Control Panel), you will now see a new backup icon. This icon quickly informs you of your site’s backup status. Now let’s configure Akeeba Backup for the first time by launching the component.
The first time you launch Akeeba Backup, it will ask you to run some post-installation configuration tasks. These tasks are:
Enable System Restore Points: This feature is very useful. Essentially, whenever you reinstall or uprgade any extension, Akeeba Backup will make a mini-backup of the extension’s database tables and physical files. Should an error occur during the extension’s installation, you can easily roll back the extension to its previous state.
Enable automatic Akeeba Backup update emails: This feature will send you an email whenever an updated Akeeba Backup component is available. If you do not regularly check for updated extensions for your Joomla! website, you may want to check this option so you can easily stay updated of new releases.
Run the Configuration Wizard: If this is your first time launching Akeeba Backup, then I strongly recommend you enable this option. This will configure Akeeba Backup with optimal settings for your server and database environment.
Once you have enabled the necessary options, click the Apply these preferences button.
Akeeba Backup will now optimize itself for your operating environment. Do not close the browser or navigate away from the page.
Once the Configuration Wizard completes its tasks, it will prompt you to either backup or configure Akeeba Backup. Before you start a new backup, let’s first take a look at some of the configuration options by clicking the Configuration button.
After running the Configuration Wizard, Akeeba Backup has already made all the necessary configuration changes. As I mentioned previously, you are going to change the default backup directory to a non-web-accessible directory. To change this directory, click the Browse… button in the Output Directory section.
As you can tell from the directory hierarchy at the top of the window, your backups will be stored in a web-accessible directory. To move to a non-web-accessible directory, click the parent directory of your Joomla! installation. In this example, all of my Joomla! files are stored in the /demo.thoughtreactor.com directory; clicking its parent directory will put me in a non-web-accessible directory. This will be the same directory where you created your backup directory earlier.
Now that you are in Joomla!’s parent directory, you should see the backup directory you created earlier. Click the backup directory move into it.
Once in the backup directory, you will see a warning message indicating the directory may not be readable. Depending on your server configuration, PHP scripts (including your Joomla! installation) may not be able to access directories outside of the web-accessible directories. If your scripts can access non-web-accessible directories, ignore this warning. Now, click the Use button at the top of the window.
Now click the Save button to save your changes.
Now that you have finished configuring Akeeba Backup, it is time to perform your first backup.
Control Panel Overview
After saving the configuration changes, you will be redirected to the Control Panel. The Control Panel is self-explanatory–it provides quick access to the overall backup status of your Joomla! website. The left-hand side of the Control Panel contains shortcuts to all the backup and restore functions. The right-hand side contains summary information about your last backup, backup statistics, and news updates from Akeeba. From the Control Panel, you can quickly discover any problems with your backups, perform new backups, restore mini-backups, and even update the component, all from one place!
Performing a Backup
Now it is time to perform your first backup. Since you have made all the necessary configuration changes, backing up your Joomla! website will only take seconds!
From the Joomla! main menu, go to Components > Akeeba Backup. You are now in the Akeeba Backup Control Panel. From here, you can run the configuration wizard, manually edit the configuration, backup your Joomla! website, administer backup files, transfer your website to another web host, and even check for updates. This section will focus on performing a backup, so click the Backup Now icon.
Whenever you perform a backup with Akeeba Backup, an installer is bundled with the backup. This installer is similar to the Joomla! installer. Whenever you perform a recovery of your Joomla! website, you will actually be performing a new installation using Akeeba Backup’s bundled installer.
Akeeba Backup asks you for a few pieces of information before starting the backup. You will notice the top option is Active Profile. Akeeba Backup supports multiple profiles, and each profile is essentially a separate set of configuration options (modifying the Output Directory in the previous section, for instance). While you may find a good use for them, I have found they are only really useful with Akeeba Backup Professional because of its advanced feature set (backing up to Amazon S3, backing up multiple databases, etc.). By default, a single profile is created which is profile #1. If you click the drop-down box, only one profile will be listed. The short description is automatically generated to display the current date. You are not limited to using this pre-filled description; you can enter any text you like. A comment section is provided for situations where a short description is not enough space. Once you have entered any necessary information, click the Backup Now! button.
The backup process will now begin. During the backup, do not close your browser or navigate to another page. The backup list and progress bar will let you know exactly what is going on behind the scenes. Depending on the size of your Joomla! website, this process can last anywhere from a few seconds to 10+ minutes. The smaller the website, the quicker the backup process, and vice versa.
Once your backup completes successfully, you have the option of viewing the log or administering the backup files. Click the Administer Backup Files button so you can see a list of all of your backups.
You will now see a list of all the backups performed by Akeeba Backup. You can click most of the column headings to sort by a particular column, and description and date search boxes are provided to further filter your backup results. If you recall from the previous section, whenever you update or reinstall an extension, a mini-backup is performed by Akeeba Backup. You can access these mini-backups by clicking the Restore Points tab on the top menu. You can administer both types of backups by clicking the Administer Backup Files icon on the Akeeba Backup Control Panel.
While you can download your backup files directly, it is strongly recommended you download them using an SFTP/FTP client to help prevent any corruption in the download process. Launch your favorite file transfer client and navigate to your backup directory. In this example, my backup directory is: /home/jpraterdemo/backups. All of your backups will use the .jpa file extension. Files are named based on the name of the profile, the domain name of your Joomla! website, and the date. Transfer your backups to another computer (like your home computer) for an extra layer of security.
Now that you have performed your first backup, it is time to learn how to restore a backup.
Performing a Restore
Up to this point, you have learned how to install, configure, and perform backups using Akeeba Backup. The last part of this tutorial will focus on restoring your Joomla! website to a new web host.
There are several ways to restore your Joomla! website using Akeeba’s products. Akeeba eXtract Wizard a program designed to unpack your archive files. This will give you complete access to your backed up files, directories, and databases. Using this wizard, you can then transfer your complete Joomla! website to another web host. The problem with this method is uploading lots of small files usually takes a long time. But do not worry, there is a faster way to restore your Joomla! website!
This is where Akeeba Kickstart comes into play. Akeeba Kickstart is a PHP script which unpacks backup archive online, so the only file you need to transfer to your new web host is simply your backup archive. Since transferring larger files is faster than transferring lots of small files, I recommend using this method to restore your Joomla! website.
Since this is for practice, I would not recommend deleting your current website. You should create a test site to perform your restore to. Follow your web host’s instructions for creating a new website. This will give you the chance to practice performing a restore so when you do need to restore your Joomla! website, you will not be in such a panic to get it done correctly.
First, find the Akeeba Kickstart zip file you downloaded earlier. Unzip it, and look for these two files:
Substitute xx-XX with the code for your language. Since I speak English, I used en-GB.kickstart.ini this example.
Upload these two files to the root web directory of your test website. In other words, you should be able to access Akeeba Kickstart by going to http://www.domain.com/kickstart.php. Next, upload your backup archive. Remember, this will have the .jpa file extension.
Now, open your web browser and go to http://www.domain.com/kickstart.php. As I mentioned in the previous section, Akeeba Backup bundles an installer within the backup archive. Kickstart is simply a web-based tool to unpack your backup–it does not actually restore your backup. But do not worry, you will perform a full restoration very soon!
Before you use Akeeba Kickstart, it provides some guidelines for its appropriate usage. Depending on your web host’s configuration, Akeeba Kickstart may not work at all. If this is the case, you will need to use Akeeba eXtract Wizard to unpack your backup archive, then manually SFTP/FTP the files to your web host. Press the Escape key to close this window and continue with the extraction.
Akeeba Kickstart will scan the directory it was uploaded to for Akeeba Backup archive files. All matching files will be listed in the Archive file drop-down box. In the Write to files section, select Directly. Depending on your web host’s configuration, you may need to change it to Use FTP instead. Keep the default execution times, then click the green Start button.
Depending on the size of your original Joomla! website, the restore could take anywhere from a few seconds to 10+ minutes. As with other Akeeba processes, do not close your browser or navigate to another page during the restore process. The progress bar will keep you updated with the status of the restore.
Once Kickstart has finished unpacking the backup archive, you can refresh your SFTP/FTP client to see your original files.
Click the Run the Installer button. This will launch the installer bundled by Akeeba Backup. You can also access the installer by going to http://www.domain.com/installation/index.php.
The Akeeba Backup Installer is very similar to the Joomla! installer. It will walk you through the same checks, configurations, and post-installation tasks. Make sure all the Required Settings are set to Yes. After verifying your new web host meets the default Joomla! requirements, click the Next button on the top-right.
You will now select your database type and enter the host and authentication information. Make sure you enter the database information for your new (or existing) web host. By default, Joomla! uses jos_ as a table prefix. Make sure this setting matches your previous setting or you may experience compatibility problems with installed extensions. Once you have verified the database settings, click the Next button.
The restore process may take a seconds to a few minutes depending on the size of your database. Unlike Kickstart, this process is only restoring the Joomla! database. The only file that will be altered during the restore process is configuration.php in the root Joomla! directory.
Once the restore process completes successfully, click the OK button on the bottom-right of the window.
You can now enter site information like site name, email address, and URL. You can also configure the FTP options to optimize extension and media uploads. One option you should keep checked is Override tmp and log paths. This setting will set the path for your Joomla! /tmp directory and log files to match your new web host’s configuration. For example, if your previous site was located at /home/name/domain.com and your new site is located at /home/name/public_html, this setting will update the appropriate parameters in configuration.php.
Now your Joomla! website has been completely restored. Similar to the default Joomla! installation process, the /installation directory must be removed. The Akeeba Backup Installer can automate this for you. Click the remove the installation directory link to have this removed for you. Alternatively, you can SFTP/FTP into your web host to remove them.
Once the installation directory has been removed, a small window will open. Click the OK button on the bottom-left to be redirected to your Joomla! website’s homepage.
Congratulations! You have just performed a complete restore of your Joomla! website. Feel free to login to the Administrator panel to begin adding new content, installing new extensions, or, performing a new backup with Akeeba Backup!
Throughout this tutorial, you have learned how to install, configure, backup, and restore a Joomla! website using Akeeba Backup. While there are many ways to perform backups of your Joomla! website, none of them are as easy, efficient, and fool-proof as Akeeba Backup. As you have seen, you can easily install, backup, and restore your Joomla! website in a matter of minutes. There is no need to hassle with complicated commands or terminal windows! Everyone knows the importance of backing up their data on their personal computers and laptops, but how often do people treat their personal websites with the same kind of respect? You may not operate one of the top 500 blogs, but if something were to happen to your Joomla! website, what would you do? Would you be able to restore your previous blog posts and pictures? Now that you have been introduced to Akeeba Backup, there is no need to worry about a disaster because it puts you in total control of the backup and recovery of your website. Now, before you show another friend how to install Joomla!, make sure he knows how to back it up with Akeeba Backup!