User Guide

Sections


Management How to manage your Duplicator Pro plugin
Packages Package creation in the WordPress Administrator
Schedules Schedule setup and configuration
Storage Storage setup and configuration


Plugin Management

Server Requirements

Requirements

  • WordPress 4.0+
  • PHP 5.2.17+ (5.3+ recommended)
  • MySQL 5.0+ (5.5+ recommended)
  • Zlib compression enabled
Note: Duplicator does work with other web servers such as IIS and databases such as MariaDB.
Plugin Installation
Overview:
Installing Duplicator Pro follows the same procedure as manually installing any other WordPress plugin. The only extra step you need to perform is to activate your license once you have installed and activated the plugin.

Step-By-Step:
  1. Download Duplicator Pro Plugin zip file to your desktop.
    - After purchase you will receive an email with a download link
    - You can also login to your SnapCreek Dashboard and download that latest version.
  2. Login to your WordPress Administrator and click "Plugins".
  3. Click the "Add New" button.
  4. Click the "Upload Plugin" button.
  5. Click the "Choose File" and select the Duplicator Pro zip file and click "Install Now".
  6. Click Activate to activate it.
Walk-through:
Installing Duplicator Professional

Click to load video
Plugin Licence Activation
Plugin activation is very simple, just follow these steps:
  1. Install and Activate the plugin
  2. Go to Duplicator Pro ❯ Settings ❯ Licensing ❯ Enter Your License Key
    - Your license key will be sent to you via email after you purchase OR login to your dashboard to view your keys
Plugin Overview
Overview:
The Duplicator Pro plugin is used to backup, migrate and ease the overall work-flow for working with WordPress sites. The plugin allows developers, designers, admins, and business owners to easily backup, restore and move a WordPress site from one location to another. The plugin consists of the following menu items or sections.

Menu Options
Menu Name Description
Packages The starting point for the plugin. This is where all packages are created and viewed.
Schedules Create and setup schedules backups to ran at various durations.
Storage Create storage endpoints to servers like Google Drive, Amazon Cloud, Dropbox and FTP.
Templates Create custom profiles of what your package should include or exclude such as directory/file paths. Include or excluded specific database tables as part of your backup.
Tools Various tools such as package logs and system cleanup.
Settings Global plugin settings used to help facilitate the use of the plugin.


Packages

Packages » All
Overview:
The "Packages » All" screen is the main interface for managing all the packages that have been created.
A Package consists of two core files which are named 'Installer' and 'Archive'. The Installer file is a plain php file that is used to help redeploy or install the Archive file, the two go hand in hand. The Archive file is a compressed zip file of all your WordPress files and a copy of your WordPress database.

The Archive file can be adjusted to include/exclude only directories/files or database specific tables from your WordPress site. These options can be in edited in the Packages » New: Step 1 Setup view found by click the 'Create New' button. Below is a list of all the options available on the packages screen.

Details:
Item Notes
Bulk Actions Delete: By checking each package line and clicking the 'Apply' button you can delete the package information. This will remove any of the local packages on the server including the physical installer and archive files. This will however not any of the packages that may have been stored to a cloud instance such as Google Drive, Dropbox, etc.
Create New This button will start the wizard for creating a new package and will take you to the Step 1 Setup screen.
Origin This value will display either 'Manual', 'Schedule' or 'ScheduleR'.
Manual: The indicates that the package was manually created using the 'Create New' button.
Schedule: The indicates that the package was created by a scheduled routine.
ScheduleR: The indicates that the package was created manually from schedules screen using the 'Run Now' action.
Created The time at which the package was created. This value represents the server time and is controlled by the WordPress Admin ❯ Settings ❯ General ❯ Timezone settings.
Size The size of the Archive.zip file. This value will vary based on if any filters have been enabled.
Name The name of the package. This can be any descriptive name you want.
Package Installer: This button will download the installer.php file. If a local storage option was not set then the button will be disabled.
Archive: This button will download the archive.zip file. If a local storage option was not set then the button will be disabled.
Storage: This button will show the remote storage endpoint links setup otherwise it will be disabled.
Details: This button will show the package details screen which contains all the details about the package.

Notices:
Build Cancelled: The build was actively cancelled by clicking the 'Stop Build' button shown only when a build is in progress.
Error Processing: The build process failed or was unable to complete successfully. Clicking the link will take you to the Package Details screen where you can view the package build log under the 'General' ❯ Files
Storage Error: This indicates that at least one of the remote storage transferrs failed. If a package has multiple remote endpoint locations and one of the endpoints fail, but the others succeed then the one that failed should show in red and indicate that it failed.
Footer Packages: Shows the number of packages that have been made. This value will also show packages that may have errors.
Total Size: The size of all the packages combined on your server disk.
Server Time: The current time on your server this is controlled by WordPress Admin ❯ Settings ❯ General ❯ Timezone settings.


Packages » New - Step 1: Setup
Overview:
The package setup screen allows you to prepare where the package will be stored and which files and database tables will be placed in the archive file. The setup screen has several sections all of which will be covered below.

Requirements:
The System requirements section must pass for the Duplicator to work properly. If this section shows fail you will not be able to continue with the setup until it shows as passing. There are currently 4 main sections PHP Support, Permissions, Server Support and Installation Files. Clicking on each link will open a description for what actions you can perform to get the requirement to pass.

General:
The following options are not grouped to any section and will apply to the entire package.
Item Description
Apply Template An optional template configuration that can be applied to this package setup. An [Unassigned] template will retain the settings from the last scan/build. Templates can be created from the Templates menu.
Name A name to help identify the package. By default the value from the last package creation is loaded as the default name.
Notes Click the notes button to expand and add additional notes about the package.

Storage:
The storage section allows you to pick from any of the storage locations that have been created such as the local server, Dropbox, Google Drive, Amazon and FTP. If a storage endpoint does not exist in the list then click the 'Add Storage' link in the right corner to add one.

When creating a package choose each location by checking the checkbox. For each location you check the package and installer file will be stored on that location. The main storage title will have the number of actively checked endpoints. To proceed to the 'Scan Step' at least one storage point must be checked. The table below covers the various options for the Storage section.

Item Description
Name A descriptive name that defines the endpoint. For remote locations the line will show a cloud icon. For locations that are on the local servers hard drive it will show a server icon.
Type This defines the endpoint type such as Local, Google Drive, Dropbox, FTP and others.
Location This defines the location where they are stored, some values will be click-able while others will not.

Archive:
The archive.zip file is what contains all your files and a copy of your database via a generated SQL file. By default when the archive file is created all files and directories from your WordPress root path and all the tables in the WordPress database are selected. In order to customize your archive file you can exclude files and database tables.

Excluding items is handy if you don't want to continually create large archive files and only need to select specific items. However if you do exclude specific items please be aware that you will have to manually move those items immediately after package installation. The table below covers all the options for the Archive section.
Item Description
FILES TAB
Enable File
Filters
File filters allow you to ignore directories/files and file extensions. When creating a package only include the data you want and need. This helps to improve the overall archive build time and keep your backups simple and clean. The checkbox allows you to keep all the settings or temporarily ignore them. If any type of file filter (directory, extension, file) is enabled the Archive title will show the following icons .
Directories Add the full path to the directories that should be excluded from being archived. Add a semicolon to separate each path. For example if you want to ignore your uploads path and the WordPress cache then the path(s) might look like this:
//public_html/mysite.com/wp-content/uploads;
//public_html/mysite.com/wp-content/cache;
Extensions File extentions allow you to exclude all files with a specific extention. For example if you wanted to ignore all zip, tar and log files then you would add:
zip;tar;log
Please note that you only need to the extension name and not the '.' separator. Use the links on the right to quickly add common extensions.
Files Add the full path to the file(s) that should be excluded from the archived file. Add a semicolon to separate each path. For example if you want to ignore the readme.html file in your root, a specific file in your uploads folder and all error.log files in the entire site then the path(s) might look like this:
//public_html/mysite.com/readme.html;
//public_html/mysite.com/wp-content/uploads/large_movie.mov;
error.log;
Use filenames without paths to filter same-named files across multiple directories, this can be useful for debug and log files. Note: pattern expressions are currently not supported (i.e. error.*)
DATABASE TAB
Build Mode PHP: This mode uses PHP to build the database.sql script which contains a full copy of your database minus any excluded files. This particular mode is very resource intensive and is much slower on larger databases.

Mysqldump: This is the preferred mode and should be used if the option is supported on your server. It uses less server resources and is much faster for larger databases. Please contact your server admin or hosting provider to enable both shell_exec and mysqldump for this option to work with in your site.
Enable Table
Filters
Table filters allow you to ignore certain tables from a database. When creating a package only include the data you want and need. This helps to improve the overall archive build time and keep your backups simple and clean.

When a table is checked it will be excluded from the generated database file. If any type of table is enabled the Archive title will show the following icon indicating that a database filter has been applied.

Compatibility
Mode
This is an advanced database back-wards compatibility feature that should ONLY be used if having problems installing packages and you have no option to update the mysql server version. If the database server version is lower than the version where the package was built then these options "might" help generate a script that is more compliant with the older database server. It is recommended to try each option separately starting with mysql40.

How to use Compatibility Mode
  1. MySQL Dump must be enabled. See Settings ❯ Packages Tab ❯ Use mysqldump radio button ❯ Save
  2. Packages ❯ Create New ❯ Open Archive Section ❯ Database Tab ❯ Compatibility Mode
  3. Read "full overview" link to understand options that may pertain to your setup
  4. Check the compatibility option(s) that apply to your setup and try to create the package
  5. On the scan screen you will see a notice that one of the compatibility modes have been checked
  6. Run the installer.php and check the install-log.txt for any deploy errors that may occur
Since we do not recommend this approach we don't offer support for working with and using these settings. The time involved with trying to find the right combination and determine if the data will even be stable is beyond our support for the product. We have partners who can help you work through these issues. For additional developer help consider Tilden Tasks from our partners page.

Installer:
The installer file is what is used to help redeploy or install the archive file. The installer section of the package setup has several optional options for the installer. These values are all optional on this screen and not required.

SETUP
The setup section allows for how the installer will behave when you initially browse to it.
Item Description
Password Protection Enabling this option will allow for basic password protection on the installer. Before running the installer the password saved in this value must be entered before proceeding with an install. This password is a general deterrent and should not be substituted for properly keeping your files secure.
Skip System Scan By default every time the installer is opened it will run a simple scan on the server environment. If the scan check passes then enabling this option automatically take you to step one of the installer and will skip the system scan screen.

INPUTS
All values in this section are optional. The installer can have these fields pre-filled at install time. If you would like to have the installer pre-filled with these values then enter them here. All of these values are covered in detail in the Installer section of this guide.

Packages » New - Step 2: Scan
Overview:
The system scan step helps to ensure the build process runs smoothly. The scan step can help determine potential issues that might occur during the build phase and even the install process. The more ' Warn' checks that are found the higher the potential for running into issues during the build and install phases. Getting all the scan checks to show ' Good' will help ensure a clean build and install process, however continuing with a 'Warn' status is still possible.

Details:
The scan report covers server settings, archive files and database tables. Scan checks are not required to pass, however they can cause issues on some systems if they are not addressed. If you receive a 'Warn' status on any of the items; then open the specific link and read the suggestions.

It is OK to try and build a package even if you have a 'Warn' status. If you are able to build a package with a 'Warn' status then you can ignore the warning. However if you have issue during the build or install process you may want to work with your hosting provider to try and address the warning.

The Build Mode section covers the different ways in which the files and database can be archived. The modes can be adjusted via Duplicator Pro ❯ Settings ❯ Packages Tab ❯ Database & Archive Engine
Item Description
Archive ZipArchive: This setting uses core PHP code to zip up all of the requested files. While this setting is much more common place on most hosting providers it can be more resource intensive and it some cases slower than shell_exec.

Shell_exec: This setting is recommend if your server supports the setting. Shell_exec uses PHP to call out to your server system zip command which can be faster and less resource intensive on some servers.
Database PHP: This setting uses core PHP code to build the database script. While this setting is supported on all servers it is more resource intensive and it some cases slower than mysqldump.

Mysqldump: This setting is recommend if your server supports the setting. mysqldump uses PHP to call out to your server system mysqldump command which is faster and less resource intensive.

Packages » New - Step 3: Build
Overview:
The build step is the last step of the package creation process and is displayed directly in the Packages screen. When a package is building you will need to wait for it to complete before attempting another. If a scheduled package is queued up at the same time as a manual package then it will stay in a pending state until the first one completes.

Details:
The different states that the build process may be in at any given time are shown below:
Item Description
Building
Package
When a package is building a indeterminate progress bar with show along with a message saying 'Building Package %50'. The percentage will slowly change as the package is being processed. You can click the button at anytime to stop the current build.

Depending on your server environment the build process can take several minutes. It is very rare (depending on the size) but the process may take upto an hour. The package process however should not take hours. If the process takes much longer than 60 minutes then in most cases the process may be stuck.

When the package is done building the progress bar will go away and on the very left hand side of the row will be a color indicating the state of the build which are:
Running: The package is currently building or transferring to a remote storage location
Success: The package has been successfully built
Error: An error occurred during the package build process
Transferring
Package
Once a build has successfully run the plugin will start the process of transferring the archive and installer files to all the specified remote storage endpoint locations that were selected with this build. The message will change to 'Transferring Package %50' with a current sub status message of the remote endpoint location that it is working on.

The transfer process will continue to work through each storage endpoint that was selected. For example if you choose Google, Dropbox and FTP then it will go through all 3 endpoints copying the files to each endpoint. If say Dropbox fails during the process it will still continue to process the other endpoints.

If an endpoints fails during the transfer phase then then the storage button will be shown as . Clicking the button will open a dialog that shows which transferrs worked and which ones failed. If they all where successful it will show as
Pending
Package
When multiple packages are set to build or attempt to start the build process at the same time, the plugin will check to see if there are any active builds. If another build is running the subsequent queued packages will be put into a pending state until the first package is done building and transferring all its data. Pending items can be cancelled before they are ran by clicking the button.

Packages » Step By Step
Overview:
This section will walk you through creating a package step-by-step. In these steps we will try to cover some general scenarios that may apply to your setup as well. If they don't feel free just skip the step.

  1. Start: Goto Duplicator Pro ❯ Packages ❯ click the 'Create New' button in the upper right corner.
  2. Step 1 Setup:
    1. Give the package a name
    2. Click the Notes button and add some notes
    3. Open the 'Storage' section and be sure that the 'Default' storage location is checked
    4. Open the 'Archive' section and check the 'Enable File Filters' checkbox
      1. Add to the 'File Extensions' input the value log this will exclude all log files with a log extention
      2. Add to the 'Files' input the value error_log this will exclude all files named error_log
      3. Add any additional files to exclude and be sure to enter the full path of the file such as //public_html/mysite.com/myfile.zip
    5. The installer section is optional and should be used for more advanced setups
    6. Click the Next Button & let the scanner run
  3. Step 2 Scan:
    When the scan is done check the status to make sure they are flagged as ' Good'. Then click the 'Build' button. If any status show a ' Warn' status its still OK to continue with the build. By clicking each one of the sections you can get more details about how to get the Warn status to go away.
  4. Step 3 Build:
    When the package starts building you will be taken to the Packages screen were a progress indicator will run until the package is complete. Once the package has completed building you can download or transfer the files or just leave them for later use.

Schedules

Schedules » All
Overview:
The "Schedules » All" screen is the main interface for managing all schedules that have been created. Schedules are used to automatically create a package at a specific time. Schedules can be ran at any time and as frequently as needed. It is however recommend to space out and only run your a schedule when absolutely needed. Creating packages are expensive on your server resources and should be used with caution especially on shared budget hosts.

Schedules use predefined templates to run from. Templates allow you to choose which files and database tables you would like to make as part of your backup process. A schedule can also be tied to a storage endpoint and pushed upto the cloud as part of its runtime directive.

Details:
Item Notes
Name A short descriptive name for the schedule.
EXAMPLES:
"Weekly Full" ❯ A schedule to backup the entire site once a week.
"Bi-Weekly Full" ❯ A schedule to backup the entire site twice a week.
"DB-Daily 00:00" ❯ A schedule to backup only the database at 12am daily.
"DB-Daily 13:00" ❯ A schedule to backup only the database at 1pm daily.

QUICK LINKS:
Quick View: This will show additional summary in-line such as the summary and how many times it has been ran.
Edit: Takes you to the edit screen.
Delete: Will delete only the selected schedule.
Run Now: This will activate the package creation process for this schedule right now. Once clicked you will be taken to the package build process on the packages screen.
Storage Every storage location the schedule backup is stored or transferred to. This will be the storage name not the storage type. For example if your storage type is Dropbox but you named it 'My Dropbox' then 'My Dropbox' will show in this column.
Runs Next The next date time the schedule is scheduled to run.
Last Ran The last time the schedule was ran or actively initiated.
Active A schedule must be active for it to run. This will show if the schedule is currently active and ready to be ran.
Footer Total: Shows the number of schedules created.
Active: The number of active schedules.
Time: The current time on your server this is controlled by WordPress Admin ❯ Settings ❯ General ❯ Timezone settings.


Schedules » Add/Edit
Details:
The Add/Edit screen is used to add and edit existing schedules. You can easily copy an existing schedule by using the copy from drop-down in the upper right hand corner.
Item Notes
Name A short descriptive name for the schedule.
EXAMPLES:
"Weekly Full" ❯ A schedule to backup the entire site once a week.
"Bi-Weekly Full" ❯ A schedule to backup the entire site twice a week.
"DB-Daily 00:00" ❯ A schedule to backup only the database at 12am daily.
"DB-Daily 13:00" ❯ A schedule to backup only the database at 1pm daily.
Template Every schedule must be assigned to a template. Templates allow you to choose which files and database tables you would like to make as part of your backup process. The default template will be assigned by default.
Storage Choose at least one or more storage location(s) that your schedule will be stored at. This can be the local server or any number of storage locations such as Dropbox, Google Drive, FTP and others.
Repeats Daily ❯ This will run the schedule every X days. For example if you choose every 7 days then the schedule will run once per week.
Weekly ❯ Choose the days of the week Monday thru Sunday that you would like the schedule to run.
Monthly ❯ Choose which day of the month and the number of months you would like to run.

Start Time The time of day you would like this to run. All times are in 24 hour increments from 00:00 (12am) to 13:00 (1pm).
Activated A schedule must be active for it to run. This is an easy way to enable/disable a schedule without removing it.

Step By Step
  1. Start: Goto Duplicator Pro ❯ Schedules ❯ click the 'Add New' button in the upper right corner.
  2. Copy From: This is an optional step that will allow you to copy from an existing schedule.
  3. Name: Give the schedule a descriptive name for example see Add/Edit section above.
  4. Template: Select an existing template or use the default
  5. Storage: Choose at least one storage location where the package and installer will be stored at.
  6. Repeats: Choose the frequency and duration for how often the schedule should run.
  7. Start Time: Choose the time of day you want the schedule to start on. Values are 00:00 (12am) to 23:00 (11pm).
  8. Activate: Choose if the schedule is active to run. Finally save the schedule and wait for the schedule timed.
  9. Run Now: This is an optional step that will you allow the schedule to be ran right now.

Storage

Storage » Amazon S3
See this full online guide for a complete overview of setting up an Amazon S3 storage endpoint.
Storage » Dropbox
Step-by-Step:
  1. Create New Storage Provider: Duplicator > Storage > Add New
  2. Add Name and Notes and select Type: Dropbox
  3. Under Authorization: Click "Connect to Dropbox"
    • Step 1 Click Authorize Dropbox
    • This will open a new browser window/tab to dropbox.com
    • Click the "Allow" Button and wait for Success Message
    • Close Dropbox window/tab
    • Under Authorization Step 2: Click the Finalize button
    • Duplicator is now authorized to access the following Dropbox account
  4. Under Connection: Click the Test Dropbox Connection button to validate data can be moved between systems.
  5. Finally Click the "Save Provider" button to save this Dropbox storage endpoint
Now when creating a new package or schedule you will check the box for this storage endpoint to be a location where the package (archive.zip and installer.php) will be transferred to after it has been created.