Akeeba Backup 5.0 for Joomla!

IMPORTANT: There is a version 4.7.1 available as well. This is an intermediate release, only required because of the way Joomla! updates work. Installing it will allow Joomla! to see the 5.0.0 release. We understand it is confusing but it has to do with how Joomla! extension updates work. The alternative was to not have automatic updates from Akeeba Backup 3.x/4.x to 5.x. Further information below.

We are happy to announce the immediate availability of Akeeba Backup 5, the next major version of Akeeba Backup. Akeeba Backup 5 is the result of a deep refactoring of the backup component to make it faster and more efficient. It is written on top of our FOF 3 framework with signifficant performance increase and smaller size.

As we had announced nearly two years ago, this version signals the end of support for PHP 5.3. According to our data less than 10% of our users are still on PHP 5.3 and they are mostly on old sites, running old versions of Akeeba Backup. Please bear in mind that PHP 5.3 has been end of life since August 2014 and is considered unsafe for use on live sites. Likewise, PHP 5.3 has been end of life since August 2015 and is also considered unsafe for use on live sites. As we have discussed in the past, even if your host claims that they, or their Linux distribution, backport security fixes from newer versions of PHP this is a half truth. Some of the most major security issue fixes cannot be backported to 5.3 due to the way they affected the internal PHP architecture as a whole. The one and only safe way to run a site at the time of this writing is using PHP 5.5 or later.

Moreover, we no longer support versions of Joomla! earlier than 3.4. Due to some major security vulnerabilities in older versions of Joomla! you can consider any site running Joomla! 1.0.0 through 3.4.5 inclusive to be hacked. On top of that, it doesn't even make sense taking backups of old and insecure versions of Joomla!. For all you know you are backing up a compromised site or, worse, the attacker has access to all information stored on your site including access credentials to off-site storage. For your own safety, do NOT use any version of Joomla! before 3.4.7.

Based on the facts above we made the decision to raise the minimum requirements of Akeeba Backup 5 to

  • PHP 5.4 or later. PHP 5.5 or later recommended. Our software is compatible with PHP 5.4, 5.5, 5.6 and 7.0.
  • Joomla! 3.4 or later. Using the latest Joomla! version is strongly recommended.

As far as databases go, Akeeba Backup for Joomla! supports MySQL, PostgreSQL and Microsoft SQL Server databases. We strongly recommend using MySQL 5.5 or later. Akeeba Backup supports sites with multibyte (utf8mb4) databases, as found in Joomla! 3.5.0 and later, and lets you downgrade utf8mb4 data to plain utf8 data when transfering the site to a server with an older version of MySQL (you might lose some characters which cannot be expressed in plain old utf8).

If you have an older site an/or using an older version of PHP you can still use an older version of Akeeba Backup. However, do bear in mind that by doing so you are exposed to unpatched security issues found in your old PHP and/or Joomla! version. We VERY STRONGLY advise all of our clients to use the latest version of Joomla! on PHP 7: it's secure and it's unbelievably fast (bonus: you get much better placement on Google and other search engines by having a site that's so fast!).

Why did we release both Akeeba Backup 4.7.1 and 5.0.0 at the same time

TL;DR: It has to do with the suboptimal way Joomla! extension updates work.

Joomla! extensions can be of one of several "types" called component, module, plugin, template, library, file and package. In theory, a component type extension can only include a Joomla! component inside its ZIP file. However, most of the times developers like us wanted to distribute and install both a component and accompanying modules, plugins etc together. Back in the olden days of Joomla! 1.5 the only way to do that was through a component type extension using the post-installation script feature of Joomla!. This is what we did for Akeeba Backup 3.x and 4.x.

Since Joomla! 1.6 the package extension type has been available. As the name implies, it is a collection of other extension ZIP files which can all be installed together. Due to some issues regarding this extension type up to and including Joomla! 3.1 we couldn't use it for our software. Now that these issues have been ironed out and we've dropped support for Joomla! 3.3 and lower we could finally use it since it's the proper way to install software like ours.

This created a new conundrum. Joomla! extension updates are linked to the extension name and type. This means that you cannot upgrade the Akeeba Backup 4.x component extension to the Akeeba Backup 5.x package extension automatically. We have to tell Joomla! that there is a package extension available, this is its new update site, the component and package extensions share the same version number, now go fetch the update. The only way to do that automatically is by creating an intermediate version, Akeeba Backup 4.7.1, which does exactly that.

The downside of this automatic update manipulation that you see an upgrade to 4.7.1, install it, and immediately see an update to 5.0.0. We're sorry you have to go through this double update but it's not something that can be avoided. The alternative was to offer no automatic update path between 4.x and 5.x, instead requiring you to manually install the new version. We've tried that with the much less popular Akeeba Ticket System extension last year and there are still people who are unaware that there is an update. Therefore we concluded that the double update experience, while suboptimal, is far better than the no update experience.

Update May 15th: The 4.7.0 intermediate version had a bug which could remove all update site definitions from your Joomla! installation. We apologize for any inconvenience caused. Even though we extensively tested before release there was a condition which triggered the bug that eluded our testing. Version 4.7.1 addresses it and was made available this morning (Eastern European Time).