At install time the following actions happen:
- Archive: Your archive file including all WordPress files are extracted along with the database script.
- Database: Your database is then re-created based on the new configuration setup
- Database: Every table in your database is scrubbed for a new URL update and server file path
- Database: Every cell is validated for PHP serlized and Base64 set strings
- Files: The wp-config.php is scrubbed for updates to WP defined variables
- Files: The .htaccess file is reset for the new location
In 99% of most cases it will work with your theme and your plugins. However there can be issues at install type where data was not able to port correctly. This is where you will need to read the final report on step 3 of the installer and validate the options that the plugin could not update. If you run into any errors or warnings please read the section directly below.
No. The free version of Duplicator does not officially support MU (Multi-Site). However you are definitely welcome to try the plug-in with your MU site and provide feedback for the necessary tweaks/updates you made in order to finalize your install back to the community. We have received replies from users who have been able to get an MU site moved with additional steps. If you want to work with tools that are better designed to support MU check out some other alternatives that may help get you more success with MU setups.
Additional MU checks
- wp_site: update values for domain and path
- wp_blogs: update values for domain and path for each sub-site/blog
- wp_x_options (one for each sub-site/blog, where x is the blog-id): update values for option_name like 'siteurl', option_name like 'home', option_name like 'upload_url_path' and there'll be others if you've got things like woocommerce, etc. installed, you can also update these via the network admin > sites > SITE_NAME > edit > settings themselves..
- PHP Support
The Duplicator requires PHP version 5.2.17+ or higher. Note that 5.2.9 or 5.2.8 is not higher than .17... Please contact your host and have them upgrade to a stable secure version of PHP Release. The plugin will also require a few addons that already come installed on most PHP installs.
The ZipArchive extension for PHP is required for compression. Please contact your hosting provider if you're on a hosted server.Duplicator says that the Zip archive extension fails, however my host says it's enabled. What should I do?
The Duplicator uses the following PHP ZipArchive class and if its not found then processing can't be performed. Be sure your host is looking at the same thing as there are several versions of doing Zip compression in PHP. Have your host visit the link above for instructions on how to enable the Zip Archive class. If this is something they won't perform on your behalf here is a list of excellent hosting provider that will enable or already have it enabled for you. Some users have seen successful ZipArchive detection when they asked their host to update to PHP 5.3 or better.
Also see: 4. Resources - Working with PHP ZipArchive
Safe Mode needs to be disabled in order for the Duplicator to operate correctly. Please set safe_mode = Off in you php.ini file. If you're on a hosted server and don't have access to the php.ini file then you will need to request this setting be updated.
Paths that are listed in this section should have permissions of 755 for directories and 644 for files. On some hosts the permission set requires 777. Setting items to 777 is a security issue and should only be set temporarily. Please avoid any hosting company that requires this kind of setup. See the Duplicator Approved Hosts page for a list of approved hosting providers.
Also be sure to check the Owner/Group settings and validate they are correct and match other successful directories/files that are accessible. For more details contact your host or visit their help pages for more information on how they implement permissions and group settings. Also see: 3. Troubleshoot - Permission and System Issues
- Server Support
The Duplicator currently works with these web servers: Apache, LiteSpeed, Nginx, Lighttpd, IIS, WebServerX. However the best success we have seen with Apache
In order to complete an install the mysqli extension for PHP is required. If you are on a hosted server please contact your host and request that mysqli extension be enabled. For more information visit: http://php.net/manual/en/mysqli.installation.php
- Reserved Files
If this check fails then a reserved file was found in the WordPress root directory. The following are reserved file names installer.php, installer-data.sql and installer-log.txt. In order to archive your data correctly please remove any of these files from your WordPress root directory. Then try creating your package again.
- Disable all plugins temporarily except Duplicator and see if the error persists
- Change your theme temporarily and see if the issue persists
If you receive a 'Warn' status on the [Archive > Files > 'Name Checks'] line and the full path to the file is below 256 characters you should be good. A warning is shown at 250 characters to bring attention to the issue and warn users that their might be an issue if the path continues to grow.
Basically is what happens with zip programs like winrar/winzip and even the PHP library used to extract the files is that they work fine to package up the files, however when they are extracted on some operating systems such as windows they run into a path limit. One way to validate if the zip file is corrupt or unusable when extracted to its new destination, is to try and extract it with a program like winrar/winzip and it will throw errors about file length issues if they are present...
'Name Checks' warnings can also be triggered by file or folder paths that have unicode characters that your version of PHP or even OS is having issues interpreting when scanning the files and folders in your system. If you run into issues at install time or even creating a package it is recommend to filter out the paths to the folders where PHP on your system is having issues reading these files. It can be very common for a file/folder to work on one host and have an issue on another. This is an underlying issue with PHP and its lack of support for unicode across all operating systems and can be related to how PHP was configured on a host.
NO FILES FOUND:
If you run a scan and the results show up with no files being found. In your server could be configured with "server separation". You will need to contact your hosting provider for more details however this can be an issue on some systems.
- No forwarding
- Forward to subfolder without service separation
- Forward to subfolder with service separation
- Forward to IP/Host/URL
Open the log file associated with the package you tried to create and look for these items:
- Look for for warnings or errors, then check the Troubleshooting section below for the related issue
- Look for the text 'DONE PROCESSING' at the very end of the log file this indicates the package processed fully. If you do not see this text then you are probably experiencing a timeout issue. Please see the 'Timeout Issues' in the Troubleshoot section below
The number one reason people have issues with a build is because the server automatically kills the Duplicators build process in the middle of building the package. For more details on timeout issues (build interrupt) see the Troubleshoot section below about timeouts.
A quick setting for Apache web servers is create or edit your .htaccess file following these instructions. Add the following text to your .htaccess
AddType application/octet-stream .zip .log .sqlThis tells the Apache Web Server to treat .zip .log and .sql files as downloadable. Other web servers will have simular configurations. In some cases you may need to check with your server administrator to see how the web-server is sending down files. If you can not download the installer.php file then you will need to follow the directions below and get the file off of the server via FTP.
OPTION 1 - Config Update:
Add the following to your .htaccess file
<IfModule mod_dtimeout.c> <Files ~ ".php"> SetEnvIf Request_URI "admin-ajax" DynamicTimeout=240 </Files> </IfModule>
OPTION 2 - Cloudflare:
If your using Cloudflare.
1. Log in to Cloudflare
2. On the Overview page, click "Advanced"
3. Click "Pause"
4. Run installer deployment
5. Turn Cloudflare back on
OPTION 3 - Hosting Provider:
Connect with your hosting provider and let them know your getting a 500 error. Many times your host will have access to the web server logs which can help isolate what is triggering the error on their server configurations.