Easy Joomla Backup - Joomla! Component - Logo

JOOMLA 5.x JOOMLA 4.x JOOMLA 3.x FREE PRO POPULAR

Name: Easy Joomla Backup - Version: 3.4.1.0-FREE / 3.6.3.2-PRO / 4.3.1.0-PRO / 5.0.1.0-PRO - Type: Component, System Plugin and CLI Script - License: GPLv3
Description: EJB creates quickly and easily backups in Joomla! - Joomla! Extensions Directory

Overview of all downloads of the extension: EJB - Easy Joomla Backup Downloads

Create backups with Easy Joomla Backup - Files and database dump as a ZIP archive

Component: EJB - Easy Joomla Backup
Function: Creates backups of Joomla! websites - Full, Database and File Backup
Languages: English and German

Easy Joomla Backup simplifies safeguarding your website by creating comprehensive, no-fuss backups. It compiles all files and a full database dump into a single zip archive, providing an all-in-one package that can fully restore your website if needed.

Coded with user-friendly management in mind, the backups are stored in a specially dedicated folder inaccessible from the outside. The storage component is deliberately streamlined to focus on the crucial task - backing up your Joomla! website.

The backup overview provides a comprehensive list of all backup instances and the option to download any specific backup. Available actions in the top bar include Full Backup, Database Backup, File Backup, Discover, Delete, and Options for further customisation.

Easy Joomla Backup is designed to be swift and resource-efficient in the zip process. It intelligently adjusts relevant settings to avert timeouts on larger sites. However, on certain occasions, if your hosting company imposes strict resource limitations or restricts the execution of lengthy processes, you may encounter issues while creating backups for extensive sites. To mitigate such situations, consider excluding files or folders that don't require frequent backup (e.g., the images folder) or contact your hosting company to extend the available resources.

The component is based on my standalone script Kubik-Rubik Joomla! Backup Script, for which a good article with basic tips exists (in German only): Backups in Joomla! erstellen

Every administrator should regularly create backups to have the possibility to restore the working state in case of problems. Before any significant changes (install updates or new extensions) the creation of a backup is absolutely essential!

Features

  • Create quickly and easily backups in Joomla!
  • Dynamic, Ajax-powered backup process
  • Automatic restoration - Easy Joomla Backup Pro Restore script (PRO)
  • Dropbox Upload - Uploads archives with one click into Dropbox (PRO)
  • Manual restoration - files via FTP, database dump via a database tool, e.g. phpMyAdmin
  • The extension creates Backups of all files and the database
  • Three different backup types: Full, Database and File Backup
  • All files and a database dump are packed into one ZIP archive
  • Extended ACL settings: Configure, Access Administration Interface, Delete, Download, Full Backup, Database Backup, File Backup, Discover
  • Indicator of the backup progress in per cent in the tab/window title
  • Exclude files from the backup archive
  • Exclude folders from the backup archive
  • Add 'DROP TABLE' order to the dump file
  • Add additional tables from the database
  • System Plugin: EJB Cronjob

Installation & Usage

Install the extension in the backend under Extensions and configure it in Components - Easy Joomla Backup.

You can control the component using the buttons at upper right. All existing backups are listed in the main content area. The list can be searched to find a specific backup. The backup files can be downloaded in the last column of the corresponding backup entry. The download process can be executed via FTP or directly with a click on the archive name in the last column. The download option is only activated for user levels which have the needed rights to download the backup archives.

Explanation of each buttons:

  • Full Backup - creates a backup of all files and the database.
  • Database Backup - creates a backup of the database.
  • File Backup - creates a backup of all files.
  • Discover - synchronizes the entries of the backups from the database with existing files. If the files are missing, the entries are removed. If entries are missing but files exist, then new entries are created automatically.
  • Delete - deletes all selected entries and the corresponding backup files.
  • Options - opens the settings of the component (see below).

Following options can be adjusted in the settings:

  • Exclude files from backup archive - excludes single files from the backup archive. The complete path to the file starting from the root folder has to be specified for unique identification.
  • Exclude folders from backup archive - excludes folders from the backup archive. The complete path to the folder starting from the root folder has to be specified for unique identification.
  • Add 'DROP TABLE' instruction to dump file - adds the DROP TABLE order to the database dump. So the dump file can be imported directly into the same database without having to remove all tables first.
  • Add additional tables - adds additional tables to the dump which do not have the same prefix as the Joomla! tables (e.g. a Piwik installation on the same database).

Enter only one entry per line in all the text fields in the settings!

Each action can be accurately controlled through the internal ACL. In the settings you may define for every user group which actions can be performed. So you can allow downloads only for Super Users, but the creation of the backups also for Administrators.

You may occasionally encounter problems on very large sites due to limitations of the server. In such cases, you can solve problems by excluding folders or increase the limits by the hoster. I could backup a test site with over 4GB in my local test environment without incidents.

If you restore the archive directly on the server via SSH in your terminal using unzip, then you should check the permission rights of the files and folders after the unzipping process was executed. If required, you should run the following commands to correct them:

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

How to create a backup?

Select a backup type on the overview page and click the corresponding action button. On the following page, you can enter an individual comment for the backup; a further click on Create Backup starts the backup process. Depending on the size of the site, the process can take several minutes to complete. You should not click around on the page or close the window completely during this time. After completion, you will be automatically redirected back to the overview page.

How to restore from the backup archive?

It is easy to restore the state of the website from the backup archive. You can restore the backup created by Easy Joomla Backup Pro with one click directly on the server using the standalone script Easy Joomla Backup Pro Restore! Upload the full backup archive and the script to your server and call the script in your browser. Once clicked on the restore button, everything will be restored and configured automatically!

Easy Joomla Backup - Backup Restoration Script

If you want to restore the backup manually, then you have to upload the files to your server and import the SQL dump into your database (e.g. with the help of phpMyAdmin).

If you recover the website on a different server environment, then you, of course, have to enter the new database connection data and the new paths in the configuration.php. As I said, just 'old-school', as also with usual manual backups! :-)

If you are using the free version of Easy Joomla Backup, then you may use the script Kubik-Rubik Unzip Script to extract zip files within seconds while restoring the website with the backup archive. For the paid version you should use the restoration script Easy Joomla Backup Pro Restore!

Cronjob - Automatic backups with the help of scheduled tasks

CLI script

After the installation, the CLI script is available in the cli folder of the Joomla! instance. Use the script to create backups through the command line directly on the server. With the help of crontab you can create cron jobs to automate the backup process.

Usage in the terminal on the server:

Joomla! 3.x

php path/to/joomla/root/cli/ejbCli.php x [--json]

Argument x can be: 1 - Full Backup, 2 - Database Backup, 3 - File Backup. Default value is 1 if no argument is provided! Add the option --json to display the result with backup information in JSON format.

Joomla! 4.x

php path/to/joomla/root/cli/joomla.php x [--json|--raw]

Argument x can be: backup:full - Full Backup, backup:database - Database Backup, backup:file - File Backup. Default value is backup:full if no argument is provided! Add the option --json to display the result with backup information in JSON format or the option --raw to display the result in minified form (0 - success / 1 - error).

Example for a crontab entry to create full backups daily at midnight on Joomla! 4.x. Open with the cron utility with crontab -e and enter the code with the correct path of your Joomla! installation. Do not forget to restart this service after you've saved the file:

0 0 * * * php path/to/joomla/root/cli/joomla.php backup:full

System Plugin - Easy Joomla Backup Cronjob - EJB Cronjob

EJB Cronjob is a helper plugin for the component Easy Joomla Backup. With this system plugin, you may create backups completely automatically with cronjobs or a custom call! With the self-defined token, you can start the backup process directly from the frontend with the correct query parameters without having to login into the administration area.

How to use the cronjob functionality?

It is really easy! You have to add the cronjob parameters to the URL of the front page (or any other page in the frontend) to activate the backup process. You can use two parameters; one of them is mandatory, the other optional:

ejbtoken - this is the token which you have to set in the settings of the plugin. Only with the correct token, you may execute the plugin. This parameter is mandatory.

ejbtype - with this parameter, you may define the backup type: 1 - full backup, 2 - database backup, 3 - file backup. If you do not use this parameter, then the plugin will use the type from the settings.

Example

In the settings the token is set to 's3cR3T!T0K3n', then a correct call could be with the type 'Full Backup':

http://www.example.com?ejbtoken=s3cR3T!T0K3n&ejbtype=1

Without the type: http://www.example.com?ejbtoken=s3cR3T!T0K3n

Replace in both examples the example domain with your domain. Please use a secure token to avoid unauthorized calls!

Note: The plugin doesn't produce messages after it has been executed; this is not necessary for a cronjob script. The only thing is a redirection to remove the query parameters. If you want to test the functionality of this plugin, then go to the component and check whether the backup file is listed in the overview!

Attention: The backup process will get interrupted if the cronjob does not call the page until the end of the process. If you can not configure the cronjob to call the page until it is loaded completely - the server sends a valid HTTP status code as a response (here it is 303 See other due to the redirection to the front page), then you can bookmark the cronjob URL and still use this functionality to create backups manually from the frontend!

Changelog

+ = Added - ! = Removed - ^ = Changed - # = Fixed

Latest release

Version 4.3.1.0-PRO - 2024-01-30

  • Increased technical requirements for Joomla! 4: Increasing Technical Requirements 2024 - Core & PHP for Joomla! 4 Pro Extensions.
  • + Improved Windows Compatibility. Thanks to Giori for reporting the issue!
    • Enhanced the compatibility with Windows environments, particularly with popular development stacks like WampServer and XAMPP.
    • Backup archives are now created more reliably and correctly in Windows environments, ensuring data integrity and seamless backup operations.
    • Users now have the flexibility to specify custom drive paths for storing their backup archives. For example, it's now possible to direct backups to a specific drive (e.g., D:\backups), providing more control over storage management.
  • ^ Code optimisations

Download

Overview of all downloads of the extension: EJB - Easy Joomla Backup Downloads