Download all files FTP
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
use Duplicator\Installer\Core\Params\PrmMng;
|
||||
|
||||
$recoveryLink = PrmMng::getInstance()->getValue(PrmMng::PARAM_RECOVERY_LINK);
|
||||
?>
|
||||
<div id="ajaxerr-area" class="no-display">
|
||||
<p>
|
||||
<b>ERROR:</b> <div class="message"></div>
|
||||
<i>Please try again an issue has occurred.</i>
|
||||
</p>
|
||||
<div>Please see the <?php DUPX_View_Funcs::installerLogLink(); ?> file for more details.</div>
|
||||
<div id="ajaxerr-data" class="margin-top-1">
|
||||
<div class="html-content" ></div>
|
||||
<pre class="pre-content"></pre>
|
||||
<iframe class="iframe-content"></iframe>
|
||||
</div>
|
||||
<p>
|
||||
<b>Additional Resources:</b><br/>
|
||||
» <a target='_blank' href="<?php echo DUPX_Constants::FAQ_URL; ?>how-to-read-fix-various-http-status-codes" >
|
||||
Check the documentation</a> for general information about each status code<br>
|
||||
» <a target='_blank' href='<?php echo DUPX_Constants::FAQ_URL; ?>'>Help Resources</a><br/>
|
||||
» <a target='_blank' href='https://duplicator.com/knowledge-base-article-categories/troubleshooting'>Technical FAQ</a>
|
||||
</p>
|
||||
<p class="text-center">
|
||||
<input id="ajax-error-try-again" type="button" class="default-btn" value="« Try Again" />
|
||||
<?php if (!empty($recoveryLink)) { ?>
|
||||
<a href="<?php echo DUPX_U::esc_url($recoveryLink); ?>" class="default-btn" target="_parent">
|
||||
<i class="fas fa-house-fire"></i> Restore Backup
|
||||
</a>
|
||||
<?php } ?>
|
||||
</p>
|
||||
<p class="text-center">
|
||||
<i style='font-size:11px'>See online help for more details at <a href='https://duplicator.com/my-account/support/' target='_blank'>
|
||||
duplicator.com
|
||||
</a></i>
|
||||
</p>
|
||||
</div>
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var string $paramView
|
||||
*/
|
||||
|
||||
if (!isset($paramView)) {
|
||||
$paramView = '';
|
||||
}
|
||||
|
||||
$archiveConfig = DUPX_ArchiveConfig::getInstance();
|
||||
?>
|
||||
<span class="dup-help-header-link">
|
||||
<?php DUPX_View_Funcs::helpLink($paramView, 'Help'); ?>
|
||||
</span>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
$archiveConfig = DUPX_ArchiveConfig::getInstance();
|
||||
?>
|
||||
<span class="dup-log-header-link">
|
||||
<?php DUPX_View_Funcs::installerLogLink(); ?>
|
||||
</span>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
$archiveConfig = DUPX_ArchiveConfig::getInstance();
|
||||
?>
|
||||
<span class="dup-version-header-link">
|
||||
<a href="javascript:void(0)" onclick="DUPX.openServerDetails()">version:<?php echo $archiveConfig->version_dup; ?></a>
|
||||
<?php DUPX_View_Funcs::helpLockLink(); ?>
|
||||
</span>
|
||||
<?php
|
||||
dupxTplRender('pages-parts/head/server-details');
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var string $currentAction
|
||||
*/
|
||||
?>
|
||||
<div
|
||||
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_PRO_Extraction::ACTION_DO_NOTHING .
|
||||
($currentAction == DUP_PRO_Extraction::ACTION_DO_NOTHING ? '' : ' no-display'); ?>"
|
||||
>
|
||||
Note: <b>Files are extracted over existing files.</b>
|
||||
After install, the destination folder will contain a combination of the old site files and the files extracted from the archive.<br>
|
||||
This option is the most conservative option for those who want to make sure they do not want to lose data.
|
||||
</div>
|
||||
<div
|
||||
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_PRO_Extraction::ACTION_REMOVE_ALL_FILES .
|
||||
($currentAction == DUP_PRO_Extraction::ACTION_REMOVE_ALL_FILES ? '' : ' no-display'); ?>"
|
||||
>
|
||||
Note: Before extracting the package files, <b>all files and folders in the installation folder will be removed</b>
|
||||
except for folders that contain WordPress installations or Duplicator backup folders<br>
|
||||
This option is recommended for those who want to delete all files related to old installations or external applications.
|
||||
</div>
|
||||
<div
|
||||
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_PRO_Extraction::ACTION_REMOVE_UPLOADS .
|
||||
($currentAction == DUP_PRO_Extraction::ACTION_REMOVE_UPLOADS ? '' : ' no-display'); ?>"
|
||||
>
|
||||
Note: Before extracting the package files, <b>all current media files will be removed</b> (wp-content/uploads)<br>
|
||||
This option is for those who want to avoid having old site media mixed with new but have other files/folders
|
||||
in the home path that they don't want to delete.
|
||||
</div>
|
||||
<div
|
||||
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_PRO_Extraction::ACTION_REMOVE_WP_FILES .
|
||||
($currentAction == DUP_PRO_Extraction::ACTION_REMOVE_WP_FILES ? '' : ' no-display'); ?>"
|
||||
>
|
||||
Note: Before extracting the package files, <b>all current WordPress core and content files and folders will be removed</b> (wp-include, wp-content ... )<br>
|
||||
This option is for those who want to avoid having old site media mixed with new but have other files/folders
|
||||
in the home path that they don't want to delete.
|
||||
</div>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package templates/default
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
?>
|
||||
<span class="s2-warning-db-donothing requires-no-db">
|
||||
<i class="fa fa-exclamation-triangle"></i> With this option selected the database will not be installed.
|
||||
This is useful if you want to just extract the archive and not perform any actions on the database.
|
||||
</span>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package templates/default
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
?>
|
||||
<span class="s2-warning-emptydb">
|
||||
Warning: The selected 'Action' above will remove <u>all data</u> from this database!
|
||||
</span>
|
||||
<span class="s2-warning-renamedb">
|
||||
Notice: The selected 'Action' will rename <u>all existing tables</u> from the database name above with a prefix <?php echo $GLOBALS['DB_RENAME_PREFIX']; ?>
|
||||
The prefix is only applied to existing tables and not the new tables that will be installed.
|
||||
</span>
|
||||
<span class="s2-warning-manualdb">
|
||||
Notice: The 'Skip Database Extraction' action will prevent the SQL script in the archive from running. The database above should already be
|
||||
pre-populated with data which will be updated in the next step. No data in the database will be modified until after Step 3 runs.
|
||||
</span>
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var string $currentSkipMode
|
||||
*/
|
||||
?>
|
||||
<div
|
||||
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_PRO_Extraction::FILTER_NONE .
|
||||
($currentSkipMode == DUP_PRO_Extraction::FILTER_NONE ? '' : ' no-display'); ?>"
|
||||
>
|
||||
All Files in the archive are going to be extracted.
|
||||
</div>
|
||||
<div
|
||||
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_PRO_Extraction::FILTER_SKIP_WP_CORE .
|
||||
($currentSkipMode == DUP_PRO_Extraction::FILTER_SKIP_WP_CORE ? '' : ' no-display'); ?>"
|
||||
>
|
||||
When this option is chosen the WordPress core files, if any, are not modified. They are not deleted and/or extracted.
|
||||
</div>
|
||||
<div
|
||||
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_PRO_Extraction::FILTER_SKIP_CORE_PLUG_THEMES .
|
||||
($currentSkipMode == DUP_PRO_Extraction::FILTER_SKIP_CORE_PLUG_THEMES ? '' : ' no-display'); ?>"
|
||||
>
|
||||
When this option is chosen the WordPress core files, if any, are not modified. They are not deleted and/or extracted. </br>
|
||||
Also, if a plugin (theme) exists on BOTH the host and and the archive, the contents of the host plugin (theme) are going to be kept.
|
||||
</div>
|
||||
<div
|
||||
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_PRO_Extraction::FILTER_ONLY_MEDIA_PLUG_THEMES .
|
||||
($currentSkipMode == DUP_PRO_Extraction::FILTER_ONLY_MEDIA_PLUG_THEMES ? '' : ' no-display'); ?>"
|
||||
>
|
||||
When this option is chosen only the "uploads" folder and plugins (themes) that don't exist on the host are going to be extracted.
|
||||
</div>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Duplicator/Installer
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
?>
|
||||
<p>
|
||||
<b>Import:</b> Adds all users from the source site to the target site. Does not remove or alter existing target users.
|
||||
</p>
|
||||
<p>
|
||||
<b>Ignore:</b> Don't import users from the source site.
|
||||
All content on the source site will be assigned to the <u>content author</u> selected user.
|
||||
</p>
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Duplicator/Installer
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
?>
|
||||
<p>
|
||||
<b>Overwrite:</b> Overwrites users is the classic mode, users from the source site will be installed and those from the target site will be discarded.
|
||||
</p>
|
||||
<p>
|
||||
<b>Keep:</b> Keeps all users of the target site by discarding users of the source site.
|
||||
All content on the source site will be assigned to the <u>content author</u> selected user.
|
||||
</p>
|
||||
<p>
|
||||
<b>Merge:</b> Merges users from the target site with users from the source site.
|
||||
The target site users will be unchanged and the source site users will be added by remapping ids and logins if duplicated.
|
||||
</p>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var ?bool $display
|
||||
*/
|
||||
|
||||
$display = (isset($display) ? $display : false);
|
||||
|
||||
?><div id="progress-area" class="<?php echo $display ? '' : 'no-display'; ?>">
|
||||
<div style="width:500px; margin:auto">
|
||||
<div class="progress-text"><i class="fas fa-circle-notch fa-spin"></i> <span id="progress-title"></span> <span id="progress-pct"></span></div>
|
||||
<div id="secondary-progress-text"></div>
|
||||
<div id="progress-notice"></div>
|
||||
<div id="progress-bar"></div>
|
||||
<h3>Please Wait...</h3><br/><br/>
|
||||
<div id="progress-bottom-text"></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Duplicator/Installer
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $numAdded
|
||||
* @var int $numChanged/**
|
||||
* @var string $csvUrl
|
||||
*/
|
||||
|
||||
?>
|
||||
<p>
|
||||
<b><?php echo $numAdded; ?></b> users have been added<br>
|
||||
<b><?php echo $numChanged; ?></b> users were already present and therefore have been modified
|
||||
</p>
|
||||
<?php if ($numAdded == 0 && $numChanged == 0) { ?>
|
||||
<p>
|
||||
No users have been imported and/or modified, all users from the source site are in the target site.
|
||||
</p>
|
||||
<?php } elseif ($csvUrl) { ?>
|
||||
A CSV report has been generated with the list of all the users added/modified and the mapping of the modifications<br>
|
||||
<a href="<?php echo DUPX_U::esc_url($csvUrl); ?>" download="import_users.csv">
|
||||
Download import CSV report
|
||||
</a><br>
|
||||
<i>Note: This report does not contain users who were already at the target site.</i>
|
||||
<?php } else { ?>
|
||||
<p>
|
||||
Csv report rile can't be generated
|
||||
</p>
|
||||
<?php } ?>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
?>
|
||||
<p>
|
||||
<b>Restore backup mode is enabled</b> so most options are disabled.<br>
|
||||
If you want to activate these options to change the migration website you need to restart the installer and deactivate the <b>Restore backup mode</b> option
|
||||
</p>
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
$archiveConfig = DUPX_ArchiveConfig::getInstance();
|
||||
|
||||
?>
|
||||
<table cellspacing="0" class="header-wizard">
|
||||
<tr>
|
||||
<td style="width:100%;">
|
||||
<div class="dupx-branding-header">
|
||||
<?php if (isset($archiveConfig->brand['logo']) && !empty($archiveConfig->brand['logo'])) : ?>
|
||||
Help
|
||||
<?php else : ?>
|
||||
<i class="fa fa-bolt fa-sm"></i> Duplicator Pro help
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
use Duplicator\Installer\Core\Hooks\HooksMng;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var string $paramView
|
||||
*/
|
||||
|
||||
$archiveConfig = DUPX_ArchiveConfig::getInstance();
|
||||
?>
|
||||
<table cellspacing="0" class="header-wizard">
|
||||
<tr>
|
||||
<td style="width:100%;">
|
||||
<div class="dupx-branding-header">
|
||||
<?php
|
||||
if (isset($archiveConfig->brand['logo']) && !empty($archiveConfig->brand['logo'])) {
|
||||
echo $archiveConfig->brand['logo'];
|
||||
} else {
|
||||
?>
|
||||
<i class="fa fa-bolt fa-sm"></i> <?php echo HooksMng::getInstance()->applyFilters('dupx_main_header', 'Duplicator PRO'); ?>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</td>
|
||||
<td class="wiz-dupx-version">
|
||||
<?php dupxTplRender('parts/header-links/version-link'); ?>
|
||||
<div style="padding: 6px 0">
|
||||
<?php if ($paramView !== 'help') { ?>
|
||||
<?php dupxTplRender('parts/header-links/log-link'); ?>
|
||||
<span> | </span>
|
||||
<?php dupxTplRender('parts/header-links/help-link', [ 'paramView' => $paramView ]); ?>
|
||||
<?php } else { ?>
|
||||
|
||||
<?php } ?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
?>
|
||||
<div id="page-top-messages">
|
||||
<?php
|
||||
/* * ************************* */
|
||||
/* * * NOTICE MANAGER TESTS ** */
|
||||
//DUPX_NOTICE_MANAGER::testNextStepFullMessageData();
|
||||
//DUPX_NOTICE_MANAGER::testNextStepMessaesLevels();
|
||||
//DUPX_NOTICE_MANAGER::testFinalReporMessaesLevels();
|
||||
//DUPX_NOTICE_MANAGER::testFinalReportFullMessages();
|
||||
/* * ************************* */
|
||||
|
||||
DUPX_NOTICE_MANAGER::getInstance()->nextStepLog();
|
||||
// display and remove next step notices
|
||||
DUPX_NOTICE_MANAGER::getInstance()->displayStepMessages();
|
||||
?>
|
||||
</div>
|
||||
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var string $cpnlUser
|
||||
* @var string $cpnlHost
|
||||
* @var string $cpnlPass
|
||||
*/
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p>
|
||||
<?php if ($isOk) { ?>
|
||||
<i class='green'>
|
||||
The user <b>[<?php echo htmlentities($cpnlUser); ?>]</b> successfully connected to Cpanel server on host
|
||||
<b>[<?php echo htmlentities($cpnlHost); ?>]</b>.
|
||||
</i>
|
||||
<?php } else { ?>
|
||||
<i class='red'>
|
||||
Unable to connect the user <b>[<?php echo htmlentities($cpnlUser); ?>]</b> to the host <b>[<?php echo htmlentities($cpnlHost); ?>]</b>.<br>
|
||||
Please contact your hosting provider or server administrator.
|
||||
</i>
|
||||
<?php } ?>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks if it is possible to make a connection to Cpanel via API. It validates on the user name, password and host values.
|
||||
The check does not take intothe user permissions. A Cpanel user must exist.
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>Host:</td>
|
||||
<td><b><?php echo htmlentities($cpnlHost); ?></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>User:</td>
|
||||
<td><b><?php echo htmlentities($cpnlUser); ?></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Password:</td>
|
||||
<td><b><?php echo htmlentities($cpnlPass); ?></b></td>
|
||||
</tr>
|
||||
</table><br/>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>Check that the 'Cpanel Host' name settings are correct via your hosts documentation.</li>
|
||||
<li>Triple check the 'User' and 'Password' values are correct.</li>
|
||||
</ul>
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var string $dbuser
|
||||
* @var string $dbpass
|
||||
* @var string $errorMessage
|
||||
*/
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p>
|
||||
<?php if ($isOk) { ?>
|
||||
<i class='green'>
|
||||
Successfully created database user <b>[<?php echo htmlentities($dbuser); ?>]</b> with cPanel API.
|
||||
</i>
|
||||
<?php } else { ?>
|
||||
<i class='red'>
|
||||
Error creating database user <b>[<?php echo htmlentities($dbuser); ?>]</b> with cPanel API.
|
||||
</i>
|
||||
<?php } ?>
|
||||
</p>
|
||||
<?php if (!empty($errorMessage)) { ?>
|
||||
<p>
|
||||
Error detail: <span class="maroon" ><?php echo htmlentities($errorMessage); ?></span>
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks that the cPanl API is allowed to create a database user. This option is only visible when cPanel is selected.
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>User:</td>
|
||||
<td><b><?php echo htmlentities($dbuser); ?></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Password:</td>
|
||||
<td><b><?php echo htmlentities($dbpass); ?></b></td>
|
||||
</tr>
|
||||
</table><br/>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>Contact your host to make sure they support the cPanel API.</li>
|
||||
<li>Check with your host to make sure the user name provided meets the cPanel requirements.</li>
|
||||
</ul>
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Installer\Core\InstState;
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var string $message
|
||||
* @var int $affectedTableCount
|
||||
* @var string[] $affectedTables
|
||||
*/
|
||||
|
||||
$statusClass = $isOk ? 'green' : 'red';
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
|
||||
<?php if (!$isOk) : ?>
|
||||
<p class="red">
|
||||
The chosen Database Action will result in the modification of <b><?php echo $affectedTableCount; ?></b>
|
||||
table(s).
|
||||
</p>
|
||||
<?php else : ?>
|
||||
<p class="green">
|
||||
<?php if (InstState::isRestoreBackup()) : ?>
|
||||
Restore backup replace tables with the backup tables.
|
||||
<?php else : ?>
|
||||
The chosen Database Action does not affect any tables in the selected database.
|
||||
<?php endif; ?>
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p><?php echo $message; ?></p>
|
||||
|
||||
<div class="s1-validate-flagged-tbl-list">
|
||||
<ul>
|
||||
<?php foreach ($affectedTables as $table) : ?>
|
||||
<li><?php echo htmlentities($table); ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $lowerCaseTableNames
|
||||
* @var array<string[]> $duplicateTableNames
|
||||
* @var string[] $reduntantTableNames
|
||||
*/
|
||||
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="red">
|
||||
The following tables have the same name but different casing. Underlined tables are going to be excluded from the database extraction.
|
||||
</p>
|
||||
<ul>
|
||||
<?php foreach ($duplicateTableNames as $tableName => $tableNames) { ?>
|
||||
<li>
|
||||
<?php
|
||||
foreach ($tableNames as $index => $name) {
|
||||
if (in_array($name, $reduntantTableNames)) { ?>
|
||||
<u class="red"><b><?php echo $name; ?></b></u>
|
||||
<?php
|
||||
} else {
|
||||
echo $name;
|
||||
}
|
||||
|
||||
if ($index < (count($tableNames) - 1)) {
|
||||
echo ', ';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
The database setting <b>lower_case_table_names</b> is set to <b>[<?php echo $lowerCaseTableNames; ?>]</b> which doesn't allow case sensitive table names.
|
||||
This will cause issues trying to create tables with the same case insensitive table name. To change the filtered tables switch to "Advanced" and
|
||||
mode and choose the tables to extract in Step 2.
|
||||
</p>
|
||||
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var int $lowerCaseTableNames
|
||||
* @var string $errorMessage
|
||||
*/
|
||||
|
||||
$statusClass = $isOk ? 'green' : 'red';
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($isOk) { ?>
|
||||
No table casing issues detected. This servers variable setting for lower_case_table_names is [<?php echo $lowerCaseTableNames; ?>]
|
||||
<?php } else { ?>
|
||||
An upper case table name was found in the database SQL script and the server variable lower_case_table_names is set to
|
||||
<b>[<?php echo $lowerCaseTableNames; ?>]</b>.
|
||||
When both of these conditions are met it can lead to issues with creating tables with upper case characters.<br/>
|
||||
<b>Options</b>:<br/>
|
||||
- On this server have the host company set the lower_case_table_names value to 1 or 2 in the my.cnf file.<br/>
|
||||
- On the build server set the lower_case_table_names value to 2 restart server and build package.<br/>
|
||||
- Optionally continue the install with data creation issues on upper case tables names.<br/>
|
||||
<?php } ?>
|
||||
</p>
|
||||
<?php if (!empty($errorMessage)) { ?>
|
||||
<p>
|
||||
Error detail: <span class="maroon" ><?php echo htmlentities($errorMessage); ?></span>
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks if any tables have upper case characters as part of the name.
|
||||
On some systems creating tables with upper case can cause issues if the server
|
||||
setting for <a href="https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html" target="_help">
|
||||
lower_case_table_names
|
||||
</a> is set to zero and upper case
|
||||
table names exist.
|
||||
</p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>
|
||||
In the my.cnf (my.ini) file set the
|
||||
<a href="https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_lower_case_table_names" target="_help">
|
||||
lower_case_table_names
|
||||
</a>
|
||||
to 1 or 2 and restart the server.
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-external-link"></i>
|
||||
<a href='http://www.inmotionhosting.com/support/website/general-server-setup/edit-mysql-my-cnf' target='_help'>
|
||||
How to edit MySQL config files my.cnf (linux) or my.ini (windows) files
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var bool $isCpanel
|
||||
* @var bool $alreadyExists
|
||||
* @var string $dbname
|
||||
* @var string $errorMessage
|
||||
*/
|
||||
|
||||
$statusClass = $isOk ? 'green' : 'red';
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($isOk) { ?>
|
||||
Successfully removed database <b>[<?php echo htmlentities($dbname); ?>]</b>
|
||||
<?php
|
||||
} else {
|
||||
if ($alreadyExists) {
|
||||
?>
|
||||
The database <b>[<?php echo htmlentities($dbname); ?>]</b> was successfully created.
|
||||
However removing the database was not successful <?php echo $isCpanel ? 'via Cpanel API' : ''; ?> with the following response:<br/>
|
||||
To continue refresh the page, change the setup action and continue with the install
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
<?php if (!empty($errorMessage)) { ?>
|
||||
<p>
|
||||
Error detail: <span class="maroon" ><?php echo htmlentities($errorMessage); ?></span>
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks if the database can be removed by the database user <?php echo $isCpanel ? 'using Cpanel API' : ''; ?>.
|
||||
The test will attempt drop the database name provided as part of the overall test.
|
||||
</p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>
|
||||
Check the database user privileges:
|
||||
<ul class='vids'>
|
||||
<li>
|
||||
<i class="fa fa-video-camera"></i>
|
||||
<a href="https://www.youtube.com/watch?v=FfX-B-h3vo0" target="_video">Add database user in phpMyAdmin</a>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-video-camera"></i>
|
||||
<a href="https://www.youtube.com/watch?v=peLby12mi0Q" target="_video">Add database user in cPanel older versions</a>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-video-camera"></i>
|
||||
<a href="https://www.youtube.com/watch?v=CHwxXGPnw48" target="_video">Add database user in cPanel newer versions</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="<?php echo DUPX_U::esc_attr(DUPX_Constants::FAQ_URL); ?>how-to-fix-database-connection-issues/" target="_help"
|
||||
title="I'm running into issues with the Database what can I do?">
|
||||
[Additional FAQ Help]
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var string $dbuser
|
||||
* @var string $dbhost
|
||||
* @var string $dbpass
|
||||
* @var string $mysqlConnErr
|
||||
*/
|
||||
|
||||
$statusClass = $isOk ? 'green' : 'red';
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($isOk) { ?>
|
||||
The user <b>[<?php echo htmlentities($dbuser); ?>]</b> successfully connected to the database server on host
|
||||
<b>[<?php echo htmlentities($dbhost); ?>]</b>.
|
||||
<?php } else { ?>
|
||||
Unable to connect the user <b>[<?php echo htmlentities($dbuser); ?>]</b> to the host
|
||||
<b>[<?php echo htmlentities($dbhost); ?>]</b>.<br>
|
||||
<?php if ($mysqlConnErr) { ?>
|
||||
The server error response was: <i><?php echo htmlentities($mysqlConnErr); ?></i>'
|
||||
<?php } else { ?>
|
||||
Please contact your hosting provider or server administrator.
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks that the database user is allowed to connect to the database server.
|
||||
It validates on the user name, password and host values.
|
||||
The check does not take into account the database name or the user permissions. A database user must first exist and have access to the host
|
||||
database server before any additional checks can be made.
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>Host:</td>
|
||||
<td><b><?php echo htmlentities($dbhost); ?></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>User:</td>
|
||||
<td><b><?php echo htmlentities($dbuser); ?></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Password:</td>
|
||||
<td><b><?php echo htmlentities($dbpass); ?></b></td>
|
||||
</tr>
|
||||
</table><br/>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>Check that the 'Host' name settings are correct via your hosts documentation.</li>
|
||||
<li>On some servers, the default name 'localhost' will not work. Be sure to contact your hosting provider.</li>
|
||||
<li>Triple check the 'User' and 'Password' values are correct.</li>
|
||||
<li>
|
||||
Check to make sure the 'User' has been added as a valid database user
|
||||
<ul class='vids'>
|
||||
<li>
|
||||
<i class="fa fa-video-camera"></i>
|
||||
<a href="https://www.youtube.com/watch?v=FfX-B-h3vo0" target="_video">Add database user in phpMyAdmin</a>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-video-camera"></i>
|
||||
<a href="https://www.youtube.com/watch?v=peLby12mi0Q" target="_video">Add database user in cPanel older versions</a>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-video-camera"></i>
|
||||
<a href="https://www.youtube.com/watch?v=CHwxXGPnw48" target="_video">Add database user in cPanel newer versions</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
If using the 'Basic' option then try using the <a href="javascript:void(0)" onclick="DUPX.togglePanels('cpanel')">'cPanel'</a> option.
|
||||
</li>
|
||||
<li>
|
||||
<a href="<?php echo DUPX_U::esc_attr(DUPX_Constants::FAQ_URL); ?>how-to-fix-database-connection-issues/" target="_help"
|
||||
title="I'm running into issues with the Database what can I do?">
|
||||
[Additional FAQ Help]
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var bool $isCpanel
|
||||
* @var string $dbname
|
||||
* @var string $errorMessage
|
||||
* @var bool $alreadyExists
|
||||
*/
|
||||
|
||||
$statusClass = $isOk ? 'green' : 'red';
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($isOk) { ?>
|
||||
Successfully created database <b>[<?php echo htmlentities($dbname); ?>]</b>
|
||||
<?php
|
||||
} else {
|
||||
if ($alreadyExists) {
|
||||
?>
|
||||
DATABASE CREATION FAILURE: A database named <b>[<?php echo htmlentities($dbname); ?>]</b> already exists.<br/><br/>
|
||||
Please continue with the following options:<br/>
|
||||
- Choose a different database name or remove this one.<br/>
|
||||
- Change the action drop-down to an option like "Connect and Remove All Data".<br/>
|
||||
<?php } else { ?>
|
||||
Error creating database <b>[<?php echo htmlentities($dbname); ?>]</b>.
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
<?php if (!empty($errorMessage)) { ?>
|
||||
<p>
|
||||
Error detail: <span class="maroon" ><?php echo htmlentities($errorMessage); ?></span>
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks if the database can be created by the database user <?php echo $isCpanel ? 'using Cpanel API' : ''; ?>.
|
||||
The test will attempt to create and drop the database name provided as part of the overall test.
|
||||
</p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>
|
||||
Check the database user privileges:
|
||||
<ul class='vids'>
|
||||
<li>
|
||||
<i class="fa fa-video-camera"></i>
|
||||
<a href="https://www.youtube.com/watch?v=FfX-B-h3vo0" target="_video">Add database user in phpMyAdmin</a>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-video-camera"></i>
|
||||
<a href="https://www.youtube.com/watch?v=peLby12mi0Q" target="_video">Add database user in cPanel older versions</a>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-video-camera"></i>
|
||||
<a href="https://www.youtube.com/watch?v=CHwxXGPnw48" target="_video">Add database user in cPanel newer versions</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<?php if (!$isCpanel) { ?>
|
||||
<li>Try using the <a href="javascript:void(0)" onclick="DUPX.togglePanels('cpanel')">'cPanel'</a> option.</li>
|
||||
<?php } ?>
|
||||
<li>
|
||||
<a href="<?php echo DUPX_U::esc_attr(DUPX_Constants::FAQ_URL); ?>how-to-fix-database-connection-issues/" target="_help"
|
||||
title="I'm running into issues with the Database what can I do?">
|
||||
[Additional FAQ Help]
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var bool $dbExcluded
|
||||
*/
|
||||
|
||||
$statusClass = $isOk ? 'green' : 'red';
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($dbExcluded) { ?>
|
||||
The database was excluded from the package during build.
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($isOk) { ?>
|
||||
The installer is going to perform all database actions.
|
||||
<?php } else { ?>
|
||||
The installer is going to skip any actions it would usually perform on the database, and act as a smart file extractor.
|
||||
<?php } ?>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks whether the "Extract Only Files" database action was selected or the database as excluded from the package during build and adjusts
|
||||
the installer parameters accordingly. When the database is excluded, there is no need for Database credentials.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var string $errorMessage
|
||||
*/
|
||||
|
||||
$statusClass = $isOk ? 'green' : 'red';
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($isOk) { ?>
|
||||
The installer has not detected GTID mode.
|
||||
<?php } else { ?>
|
||||
GTID mode is enabled on your database server, which can potentially cause problems during the database installation step.<br/>
|
||||
<?php } ?>
|
||||
</p>
|
||||
<?php if (!empty($errorMessage)) { ?>
|
||||
<p>
|
||||
Error detail: <span class="maroon" ><?php echo htmlentities($errorMessage); ?></span>
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks whether GTID mode is enabled on the database server. When GTID mode is enabled you might get
|
||||
"Statement violates GTID consistency" errors. For more information checkout the links in the "Troubleshoot"
|
||||
section.
|
||||
</p>
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li><i class="far fa-file-code"></i> <a href='https://dev.mysql.com/doc/refman/5.6/en/replication-gtids-concepts.html' target='_help'>What is GTID?</a></li>
|
||||
<li>
|
||||
<i class="far fa-file-code"></i>
|
||||
<a href= "https://dev.mysql.com/doc/refman/5.7/en/replication-mode-change-online-disable-gtids.html" target="_blank">How to disable GTID mode?</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var string $host
|
||||
* @var string $fixedHost
|
||||
*/
|
||||
?>
|
||||
<p>
|
||||
<b>Database host:</b>
|
||||
<?php
|
||||
if ($isOk) {
|
||||
?><i class='green'>
|
||||
<b>[<?php echo htmlentities($host); ?>]</b> is valid.
|
||||
</i><?php
|
||||
} else {
|
||||
?><i class='red'>
|
||||
<b>[<?php echo htmlentities($host); ?>]</b> is not a valid. Try using <b>[<?php echo htmlentities($fixedHost); ?>]</b> instead.
|
||||
</i>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var string $dbname
|
||||
* @var int $numTables
|
||||
* @var string $errorMessage
|
||||
*/
|
||||
|
||||
$statusClass = $isOk ? 'green' : 'red';
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($isOk) { ?>
|
||||
This test passes. A WordPress database looks to be setup.
|
||||
<?php } else { ?>
|
||||
The database [<?php echo htmlentities($dbname); ?>] has <?php echo $numTables; ?> tables. This does not look to be a valid WordPress database.
|
||||
The base WordPress install has 12 tables. Please validate that this database is indeed pre-populated with a valid WordPress database.
|
||||
The "Skip Database Extraction" mode requires that you have a valid WordPress database already installed.
|
||||
<?php } ?>
|
||||
</p>
|
||||
<?php if (!empty($errorMessage)) { ?>
|
||||
<p>
|
||||
Error detail: <span class="maroon" ><?php echo htmlentities($errorMessage); ?></span>
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks if the database looks to represents a base WordPress install. Since this option is advanced it is left upto the user to
|
||||
have the correct database tables installed.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var string[] $uniquePrefixes
|
||||
*/
|
||||
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
|
||||
<?php if ($isOk) : ?>
|
||||
<p class="green">
|
||||
The selected database action does not affect other WordPress installations.
|
||||
</p>
|
||||
<?php else : ?>
|
||||
<p class="red">
|
||||
The selected database action affects <b><?php echo count($uniquePrefixes); ?></b> WordPress installations.
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test makes sure that the selected database action affects at most one WordPress installation. Please make sure that the
|
||||
chosen database action will not cause unwanted consequences for tables of other sites residing on the same database. In case
|
||||
you want to avoid removing the tables of the second WordPress installation we recommend switching the Database action to
|
||||
"Overwrite Existing Tables".
|
||||
</p>
|
||||
<?php if (count($uniquePrefixes) > 0) : ?>
|
||||
<p>WordPress tables with the following table prefixes will be affected by the chosen database action:</p>
|
||||
<ul>
|
||||
<?php foreach ($uniquePrefixes as $prefix) : ?>
|
||||
<li><b><?php echo DUPX_U::esc_html($prefix); ?></b></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif;
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var string $errorMessage
|
||||
* @var string[] $tooLongNewTableNames
|
||||
*/
|
||||
|
||||
$statusClass = $isOk ? 'green' : 'red';
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($isOk) { ?>
|
||||
There are no table names whose length exceeds limit of 64 characters after adding prefix.
|
||||
<?php } else { ?>
|
||||
Some table names exceed limit of 64 characters after adding prefix.
|
||||
<?php } ?>
|
||||
</p>
|
||||
<?php if (!empty($errorMessage)) { ?>
|
||||
<p>
|
||||
Error detail: <span class="maroon" ><?php echo htmlentities($errorMessage); ?></span>
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks if there are any tablenames that would be too long after adding prefix to them.
|
||||
MySQL accepts length of table names with maximum of 64 characters
|
||||
(see <a href="https://dev.mysql.com/doc/refman/8.0/en/identifier-length.html" target="_blank">length limits</a>).
|
||||
With a too long prefix, tables can exceed this limit.
|
||||
</p>
|
||||
|
||||
<?php if (!$isOk) { ?>
|
||||
<b>List of database tables that are too long after adding prefix</b><br/>
|
||||
<div class="s1-validate-flagged-tbl-list">
|
||||
<ul>
|
||||
<?php foreach ($tooLongNewTableNames as $table) : ?>
|
||||
<li><?php echo htmlentities($table); ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>Choose a shorter prefix in Options -> Database Settings -> Table Prefix.</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $pass
|
||||
*/
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<?php if ($pass) : ?>
|
||||
<p class="green">
|
||||
Successfully read database variables.
|
||||
</p>
|
||||
<?php else : ?>
|
||||
<p class="maroon">
|
||||
Error reading database variables.
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
Query executed: <i>SHOW VARIABLES like 'version'</i><br/><br/>
|
||||
The "<a href="https://dev.mysql.com/doc/refman/5.7/en/show-variables.html" target="_blank">SHOW VARIABLES</a>" query statement is required to obtain
|
||||
necessary information about the database and safely execute the installation process. There is not a single setting that will make this query work
|
||||
for all hosting providers. Please contact your hosting provider or server admin with
|
||||
<a href="https://dev.mysql.com/doc/refman/5.7/en/show-variables.html" target="_blank">this link</a> and ask for them to provide support for the
|
||||
"SHOW VARIABLES" when called from PHP. <br/><br/>
|
||||
|
||||
Additional FAQ resources for this issue can be found here:<br/>
|
||||
<a href="<?php echo DUPX_Constants::FAQ_URL; ?>digital-ocean-digitalocean-com" target="_blank">
|
||||
Digital Ocean -- digitalocean.com
|
||||
</a>
|
||||
</p>
|
||||
@@ -0,0 +1,139 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $testResult DUPX_Validation_abstract_item::[LV_FAIL|LV_HARD_WARNING|...]
|
||||
* @var string[] $invalidCharsets
|
||||
* @var string[] $invalidCollations
|
||||
* @var string[] $charsetsList
|
||||
* @var string[] $collationsList
|
||||
* @var string $usedCharset
|
||||
* @var string $usedCollate
|
||||
* @var string $errorMessage
|
||||
*/
|
||||
|
||||
|
||||
|
||||
$statusClass = $testResult > DUPX_Validation_abstract_item::LV_SOFT_WARNING ? 'green' : 'red';
|
||||
|
||||
$dupDatabase = basename(DUPX_Package::getSqlFilePath());
|
||||
$dupDatabaseDupFolder = basename(DUPX_INIT) . '/' . $dupDatabase;
|
||||
$invalidCheckboxTitle = '';
|
||||
$subTitle = '';
|
||||
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php
|
||||
switch ($testResult) {
|
||||
case DUPX_Validation_abstract_item::LV_FAIL:
|
||||
?>
|
||||
It is impossible to verify the list of charsets in the database.
|
||||
<?php
|
||||
break;
|
||||
case DUPX_Validation_abstract_item::LV_HARD_WARNING:
|
||||
if (!empty($invalidCharsets) && !empty($invalidCollations)) {
|
||||
$invalidCheckboxTitle = '"Legacy Character set" and "Legacy Collation"';
|
||||
$subTitle = 'character set and collation';
|
||||
} elseif (!empty($invalidCharsets)) {
|
||||
$invalidCheckboxTitle = '"Legacy Character set"';
|
||||
$subTitle = 'character set';
|
||||
} elseif (!empty($invalidCollations)) {
|
||||
$invalidCheckboxTitle = '"Legacy Collation"';
|
||||
$subTitle = 'collation';
|
||||
}
|
||||
?>
|
||||
<?php echo htmlentities($subTitle); ?> isn't supported on current database.
|
||||
<?php echo htmlentities($invalidCheckboxTitle); ?> will be replaced with default values.<br>
|
||||
<?php
|
||||
break;
|
||||
default:
|
||||
?>
|
||||
Character set and Collate test passed! This database supports the required table character sets and collations.
|
||||
<?php
|
||||
break;
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
<?php if (!empty($errorMessage)) { ?>
|
||||
<p>
|
||||
Error detail: <span class="maroon" ><?php echo htmlentities($errorMessage); ?></span>
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks to make sure this database can support the character set and collations found in the
|
||||
<b><?php echo htmlentities($dupDatabaseDupFolder); ?></b> script.
|
||||
</p>
|
||||
|
||||
<table class="validation-charset-list margin-bottom-1">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2" >
|
||||
<b>Character set list</b>
|
||||
</td>
|
||||
</tr>
|
||||
<?php foreach ($charsetsList as $charset) { ?>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $charset; ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php $testLv = in_array($charset, $invalidCharsets) ? DUPX_Validation_abstract_item::LV_FAIL : DUPX_Validation_abstract_item::LV_PASS; ?>
|
||||
<span class="status-badge <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($testLv); ?>">
|
||||
</td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr>
|
||||
<td colspan="2" >
|
||||
<b>Collations list</b></b>
|
||||
</td>
|
||||
</tr>
|
||||
<?php foreach ($collationsList as $collate) { ?>
|
||||
<tr>
|
||||
<td><?php echo $collate; ?></td>
|
||||
<td>
|
||||
<?php $testLv = in_array($collate, $invalidCollations) ? DUPX_Validation_abstract_item::LV_FAIL : DUPX_Validation_abstract_item::LV_PASS; ?>
|
||||
<span class="status-badge <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($testLv); ?>">
|
||||
</td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tbody>
|
||||
</table>
|
||||
<?php if ($testResult == DUPX_Validation_abstract_item::LV_HARD_WARNING) { ?>
|
||||
<p>
|
||||
The database where the package was created has a <b><?php echo htmlentities($subTitle); ?></b> that is not supported on this server.
|
||||
This issue happens when a site is moved from an newer version of MySQL to a older version of MySQL.
|
||||
The recommended fix is to update MySQL on this server to support the character set that is failing below.
|
||||
<b>If this is not an option for your host, then you can continue the installation. Invalid values will be replaced with the default values.</b>
|
||||
For more details about this issue and other details regarding this issue see the FAQ link below.
|
||||
</p>
|
||||
<?php } ?>
|
||||
<p>
|
||||
<i>Default charset and setting in current installation</i><br>
|
||||
<i>DB_CHARSET = <b><?php echo $usedCharset; ?></b></i><br>
|
||||
<i>DB_COLLATE = <b><?php echo $usedCollate; ?></b></i>
|
||||
<p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>
|
||||
<i class="far fa-file-code"></i>
|
||||
<a href='<?php echo DUPX_U::esc_attr(DUPX_Constants::FAQ_URL); ?>how-to-fix-database-write-issues/' target='_help'>
|
||||
What is Compatibility mode & 'Unknown Collation' errors?
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
In case the default charset/collates are not the desired ones you can <b>change the setting</b> in the <b>advanced installation mode</b>.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $testResult DUPX_Validation_abstract_item::[LV_FAIL|LV_HARD_WARNING|...]
|
||||
* @var bool $charsetOk
|
||||
* @var bool $collateOk
|
||||
* @var string $sourceCharset
|
||||
* @var string $sourceCollate
|
||||
* @var string $usedCharset
|
||||
* @var string $usedCollate
|
||||
* @var string $errorMessage
|
||||
*/
|
||||
|
||||
$statusClass = ($testResult === DUPX_Validation_abstract_item::LV_FAIL || !$charsetOk || !$collateOk) ? 'red' : 'green';
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($testResult === DUPX_Validation_abstract_item::LV_FAIL) { ?>
|
||||
It is not possible to read the list of available charsets in the database.<br>
|
||||
Message: <?php echo $errorMessage; ?>
|
||||
<?php } elseif (!$charsetOk) { ?>
|
||||
This server's database does not support the source site's character set [<b><?php echo $sourceCharset; ?></b>],
|
||||
so the installer is going to use default character [<b><?php echo $usedCharset; ?></b>].
|
||||
<?php } elseif (!$collateOk) { ?>
|
||||
This server's database does not support the source site's collate [<b><?php echo $sourceCollate; ?></b>],
|
||||
so the installer is going to use default collate of current charset [<b><?php echo $usedCollate; ?></b>].
|
||||
<?php } else { ?>
|
||||
The current server supports the source site's charset [<b><?php echo $sourceCharset; ?></b>]
|
||||
and Collate [<b><?php echo empty($sourceCollate) ? 'default' : $sourceCollate; ?></b>]
|
||||
(set in the wp-config file).<br>
|
||||
<?php } ?>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
<i>Settings used in the current installation</i><br>
|
||||
<i>DB_CHARSET = <b><?php echo $usedCharset; ?></b></i><br>
|
||||
<i>DB_COLLATE = <b><?php echo $usedCollate; ?></b></i>
|
||||
<p>
|
||||
<p>
|
||||
DB_CHARSET and DB_COLLATE are set in wp-config.php
|
||||
(see: <a href="https://wordpress.org/support/article/editing-wp-config-php/#database-character-set" target="_blank">Editing wp-config.php</a> ).<br>
|
||||
When the charset or collate of the source site is not supported in the database of the target site, the default is automatically set.
|
||||
</p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>In case the default charset/collates are not the desired ones you can <b>change the setting</b> in the <b>advanced installation mode</b>.</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $testResult DUPX_Validation_abstract_item::[LV_FAIL|LV_HARD_WARNING|...]
|
||||
* @var string[] $invalidEngines
|
||||
* @var string $defaultEngine
|
||||
* @var string $errorMessage
|
||||
* @var bool $engineListRead
|
||||
*/
|
||||
|
||||
|
||||
|
||||
$statusClass = $testResult > DUPX_Validation_abstract_item::LV_SOFT_WARNING ? 'green' : 'red';
|
||||
|
||||
$dupDatabase = basename(DUPX_Package::getSqlFilePath());
|
||||
$dupDatabaseDupFolder = basename(DUPX_INIT) . '/' . $dupDatabase;
|
||||
$invalidCheckboxTitle = '';
|
||||
$subTitle = '';
|
||||
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php
|
||||
switch ($testResult) {
|
||||
case DUPX_Validation_abstract_item::LV_HARD_WARNING:
|
||||
if ($engineListRead) {
|
||||
?>
|
||||
The following MySQL engines Engine(s) were found to not be supported by the current database:
|
||||
<?php
|
||||
echo "[" . implode(",", $invalidEngines) . "]";
|
||||
?>
|
||||
<br>
|
||||
and are going to be replaced by the default MySQL Engines
|
||||
<?php
|
||||
echo "[" . $defaultEngine . "]";
|
||||
} else {
|
||||
?>
|
||||
Impossible to verify list of supported engines
|
||||
<?php
|
||||
}
|
||||
break;
|
||||
default:
|
||||
?>
|
||||
Database engine for MySQL compatibility passed! This database supports the required MySQL engine types.
|
||||
<?php
|
||||
break;
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
<?php if (strlen($errorMessage)) : ?>
|
||||
<p>
|
||||
Error detail: <span class="maroon" ><?php echo htmlentities($errorMessage); ?></span>
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks to make sure this database can support the MySQL engines found in the
|
||||
<b><?php echo htmlentities($dupDatabaseDupFolder); ?></b> script.
|
||||
</p>
|
||||
|
||||
<?php if ($testResult == DUPX_Validation_abstract_item::LV_HARD_WARNING && $engineListRead) : ?>
|
||||
<p>
|
||||
The following MySQL Engine(s) were found to not be supported by the current database:
|
||||
</p>
|
||||
<ul>
|
||||
<?php foreach ($invalidEngines as $engine) : ?>
|
||||
<li><b><?php echo DUPX_U::esc_html($engine); ?></b></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
and are going to be replaced by the default MySQL Engine <b>[<?php echo DUPX_U::esc_html($defaultEngine); ?>]</b>.
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>
|
||||
In case some of the MySQL engines of the source site are not supported, not verified and replacing them with the default engine
|
||||
is not desired, please try getting in touch with your hosting provider and asking them to enable the engine.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var array<string, object> $triggers
|
||||
*/
|
||||
|
||||
$statusClass = $isOk ? 'green' : 'red';
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($isOk) {
|
||||
?>
|
||||
The source database did not contain any triggers.
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
The source database contained <b><?php echo count($triggers); ?> TRIGGERS</b> which will have to be manually imported.
|
||||
<?php
|
||||
} ?>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
TRIGGERS are not being imported along side the rest of the database, because their presence might cause unintended
|
||||
behavior. You can copy the CREATE queries by clicking the button below and manually add triggers via PHPMyAdmin, if necessary.
|
||||
</p>
|
||||
|
||||
<div class="copy-to-clipboard-block">
|
||||
<button type="button" <?php echo $isOk ? 'disabled' : '' ?> class="default-btn">Copy Queries to Clipboard</button>
|
||||
<textarea <?php echo $isOk ? 'disabled' : '' ?> readonly="readonly"><?php
|
||||
if ($isOk) {
|
||||
echo 'No triggers found.';
|
||||
} else {
|
||||
foreach ($triggers as $name => $info) {
|
||||
echo $info->create . "\n\n";
|
||||
}
|
||||
}
|
||||
?>
|
||||
</textarea>
|
||||
</div>
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var string $dbuser
|
||||
* @var string $errorMessage
|
||||
*/
|
||||
|
||||
$statusClass = $isOk ? 'green' : 'red';
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($isOk) { ?>
|
||||
Successfully removed database user <b>[<?php echo htmlentities($dbuser); ?>]</b> with cPanel API.
|
||||
<?php } else { ?>
|
||||
The database user <b>[<?php echo htmlentities($dbuser); ?>]</b> was successfully created.
|
||||
However removing the user was not successful via the cPanel API with the following response:<br/>
|
||||
To continue refresh the page, uncheck the 'Create New Database User' checkbox and select the user from the drop-down.
|
||||
<?php } ?>
|
||||
</p>
|
||||
<?php if (!empty($errorMessage)) { ?>
|
||||
<p>
|
||||
Error detail: <span class="maroon" ><?php echo htmlentities($errorMessage); ?></span>
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks that the cPanl API is allowed to remove database user crated before.
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>User:</td>
|
||||
<td><b><?php echo htmlentities($dbuser); ?></b></td>
|
||||
</tr>
|
||||
</table><br/>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>Contact your host to make sure they support the cPanel API.</li>
|
||||
<li>Check with your host to make sure the user name provided meets the cPanel requirements.</li>
|
||||
</ul>
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $testResult
|
||||
* @var string $dbuser
|
||||
* @var string $dbname
|
||||
* @var array<string, int> $perms
|
||||
* @var string[] $errorMessages
|
||||
*/
|
||||
|
||||
$statusClass = $testResult == DUPX_Validation_test_db_user_perms::LV_PASS ? 'green' : 'red';
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php
|
||||
switch ($testResult) {
|
||||
case DUPX_Validation_test_db_user_perms::LV_PASS:
|
||||
?>
|
||||
The user <b>[<?php echo htmlentities($dbuser); ?>]</b> has the correct privileges on the database <b>[<?php echo htmlentities($dbname); ?>]</b>.
|
||||
<?php
|
||||
break;
|
||||
case DUPX_Validation_test_db_user_perms::LV_FAIL:
|
||||
?>
|
||||
The user <b>[<?php echo htmlentities($dbuser); ?>]</b> is missing privileges on the database <b>[<?php echo htmlentities($dbname); ?>]</b>
|
||||
<?php
|
||||
break;
|
||||
case DUPX_Validation_test_db_user_perms::LV_HARD_WARNING:
|
||||
?>
|
||||
The user <b>[<?php echo htmlentities($dbuser); ?>]</b> is missing privileges on the database <b>[<?php echo htmlentities($dbname); ?>]</b><br>
|
||||
You can continue with the installation but some features may not be restored correctly.
|
||||
<?php
|
||||
break;
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
<?php if (!empty($errorMessages)) { ?>
|
||||
<p>
|
||||
Error detail: <br>
|
||||
<?php foreach ($errorMessages as $errorMessage) { ?>
|
||||
<span class="maroon" ><?php echo htmlentities($errorMessage); ?></span><br>
|
||||
<?php } ?>
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks the privileges of the current database user. In order to successfully use Duplicator Pro all of the privileges should pass.
|
||||
In the event the checks below fail, contact your hosting provider to make sure the database user has the correct permissions listed below.
|
||||
<br/><br/>
|
||||
|
||||
<i>
|
||||
Note: In some cases "Create Views, Procedures, Functions and Triggers" will not pass, but continuing with the install will still work.
|
||||
It is however recommended that a green pass on all permissions is set when possible. Please work with your hosting provider to get all
|
||||
values to pass.
|
||||
</i>
|
||||
</p><br/>
|
||||
|
||||
<div class="sub-title">TABLE PRIVILEGES ON [<?php echo htmlentities($dbname); ?>]</div>
|
||||
|
||||
<table class="s1-validate-sub-status">
|
||||
<tr>
|
||||
<td>Create</td>
|
||||
<td><span class="status-badge right <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($perms['create']); ?>"></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Select</td>
|
||||
<td><span class="status-badge right <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($perms['select']); ?>"></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Insert</td>
|
||||
<td><span class="status-badge right <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($perms['insert']); ?>"></span> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Update</td>
|
||||
<td><span class="status-badge right <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($perms['update']); ?>"></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Delete</td>
|
||||
<td><span class="status-badge right <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($perms['delete']); ?>"></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Drop</td>
|
||||
<td><span class="status-badge right <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($perms['drop']); ?>"></span></td>
|
||||
</tr>
|
||||
<?php if ($perms['view'] < DUPX_Validation_abstract_item::LV_SKIP) : ?>
|
||||
<tr>
|
||||
<td>Create Views</td>
|
||||
<td><span class="status-badge right <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($perms['view']); ?>"></span></td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($perms['proc'] < DUPX_Validation_abstract_item::LV_SKIP) : ?>
|
||||
<tr>
|
||||
<td>Procedures <small>(Create & Alter)</small> </td>
|
||||
<td><span class="status-badge right <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($perms['proc']); ?>"></span></td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($perms['func'] < DUPX_Validation_abstract_item::LV_SKIP) : ?>
|
||||
<tr>
|
||||
<td>Functions <small>(Create & Alter)</small> </td>
|
||||
<td><span class="status-badge right <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($perms['func']); ?>"></span></td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($perms['trigger'] < DUPX_Validation_abstract_item::LV_SKIP) : ?>
|
||||
<tr>
|
||||
<td>Trigger</td>
|
||||
<td><span class="status-badge right <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($perms['trigger']); ?>"></span></td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</table><br/>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>Validate that the database user is correct per your hosts documentation</li>
|
||||
<li>
|
||||
Check to make sure the 'User' has been granted the correct privileges
|
||||
<ul class='vids'>
|
||||
<li>
|
||||
<i class="fa fa-video-camera"></i>
|
||||
<a href='https://www.youtube.com/watch?v=UU9WCC_-8aI' target='_video'>How to grant user privileges in cPanel</a>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-video-camera"></i>
|
||||
<a href="https://www.youtube.com/watch?v=FfX-B-h3vo0" target="_video">How to grant user privileges in phpMyAdmin</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="<?php echo DUPX_U::esc_attr(DUPX_Constants::FAQ_URL); ?>how-to-fix-database-connection-issues/" target="_help"
|
||||
title="I'm running into issues with the Database what can I do?">
|
||||
[Additional FAQ Help]
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var array<string, int> $userResources
|
||||
*/
|
||||
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<?php if ($isOk) : ?>
|
||||
<p class="green">
|
||||
No restrictions on the current DB user's resources were detected.
|
||||
</p>
|
||||
<?php else : ?>
|
||||
<p class="maroon">
|
||||
Restrictions on the current DB user's resources were detected.
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
Some server's put in place restrictions on the resources available to a user, which <i>may</i> cause errors during
|
||||
the installation process since a significant number of connections are made and queries are run.
|
||||
</p>
|
||||
|
||||
<?php if (is_array($userResources) && count($userResources) > 0) : ?>
|
||||
<div class="sub-title">USER RESOURCES</div>
|
||||
<ul>
|
||||
<?php foreach ($userResources as $resourceName => $limit) : ?>
|
||||
<li class="<?php echo $limit > 0 ? 'red' : 'green';?>">
|
||||
<b><?php echo $resourceName; ?>:</b> <?php echo $limit > 0 ? $limit : 'unlimited'; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<p>
|
||||
We suggest asking your hosting provider to undo the restrictions in case they are present or if you have root access to the mysql server
|
||||
you can use the methods described in the <a href="https://dev.mysql.com/doc/refman/5.7/en/user-resources.html" target="_blank">official documentation</a>
|
||||
to remove the restrictions.
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var string $hostDBVersion
|
||||
* @var string $sourceDBVersion
|
||||
* @var string $dbsOfSameType
|
||||
* @var string $hostDBEngine
|
||||
* @var string $sourceDBEngine
|
||||
*/
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p>
|
||||
<?php if (!$dbsOfSameType) { ?>
|
||||
<i class='red'>
|
||||
The current database engine is <b>[<?php echo htmlentities($hostDBEngine . ' ' . $hostDBVersion); ?>]</b> while the host database engine was
|
||||
<b>[<?php echo htmlentities($sourceDBEngine . ' ' . $sourceDBVersion); ?>]</b>.
|
||||
</i>
|
||||
<?php } else { ?>
|
||||
<i class='red'>
|
||||
The current database version is <b>[<?php echo htmlentities($hostDBVersion); ?>]</b> which is below the source database version of
|
||||
<b>[<?php echo htmlentities($sourceDBVersion); ?>]</b>.
|
||||
</i>
|
||||
<?php } ?>
|
||||
In some cases this might cause problems with the migration.
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
<?php if (!$dbsOfSameType) { ?>
|
||||
Some versions of different database engines are not compatible with each other, which might cause problems with the database import.
|
||||
We suggest continuing the install as usual.
|
||||
In case there are problems with the database install please consult the links in the
|
||||
troubleshoot section to find out which features are not compatible.
|
||||
<?php } else { ?>
|
||||
The source site used a newer version of <?php echo htmlentities($hostDBEngine); ?>,
|
||||
which may result in problems during the installation if there were changes
|
||||
made which are not backward-compatible. We suggest continuing with the install as usual.
|
||||
In case of problems with the database try contacting your hosting provider and asking for a database version upgrade.
|
||||
<?php } ?>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li><a href="https://www.percona.com/software/mysql-database/percona-server" target="_blank">Percona official website</a></li>
|
||||
<li><a href="https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql-compatibility/" target="_blank">MariaDB vs MySQL compatibility chart</a></li>
|
||||
<li>
|
||||
<a href="<?php echo DUPX_U::esc_attr(DUPX_Constants::FAQ_URL); ?>how-to-fix-database-connection-issues/" target="_help"
|
||||
title="I'm running into issues with the Database what can I do?">
|
||||
[Additional FAQ Help]
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var string $hostDBVersion
|
||||
*/
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p>
|
||||
<?php if ($isOk) { ?>
|
||||
<i class='green'>
|
||||
This test passes with a current database version of <b>[<?php echo htmlentities($hostDBVersion); ?>]</b>
|
||||
</i>
|
||||
<?php } else { ?>
|
||||
<i class='red'>
|
||||
The current database version is <b>[<?php echo htmlentities($hostDBVersion); ?>]</b> which is below the required version of 5.0.0.
|
||||
Please work with your server admin or hosting provider to update the database server.
|
||||
</i>
|
||||
<?php } ?>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
The minimum supported database server is MySQL Server 5.0 or the
|
||||
<a href="https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql-compatibility/" target="_blank">MariaDB equivalent</a>.
|
||||
Versions prior to MySQL 5.0 are over 10 years old and will not be compatible with Duplicator Pro.
|
||||
If your host is using a legacy version, please ask them
|
||||
to upgrade the MySQL database engine to a more recent version.
|
||||
</p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>Contact your host and have them upgrade your MySQL server.</li>
|
||||
<li>
|
||||
<a href="<?php echo DUPX_U::esc_attr(DUPX_Constants::FAQ_URL); ?>how-to-fix-database-connection-issues/" target="_help"
|
||||
title="I'm running into issues with the Database what can I do?">
|
||||
[Additional FAQ Help]
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var string $dbuser
|
||||
* @var string $dbname
|
||||
* @var string[] $databases
|
||||
* @var string $errorMessage
|
||||
*/
|
||||
|
||||
$statusClass = $isOk ? 'green' : 'red';
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($isOk) { ?>
|
||||
The database user <b>[<?php echo htmlentities($dbuser); ?>]</b> has visible access to see the database named
|
||||
<b>[<?php echo htmlentities($dbname); ?>]</b>
|
||||
<?php } else { ?>
|
||||
The user <b>[<?php echo htmlentities($dbuser); ?>]</b> is unable to see the database named
|
||||
<b>[<?php echo htmlentities($dbname); ?>]</b>.<br>
|
||||
Be sure the database name already exists.
|
||||
If you want to create a new database choose the action 'Create New Database'.<br>
|
||||
<?php } ?>
|
||||
</p>
|
||||
<?php if (!empty($errorMessage)) { ?>
|
||||
<p>
|
||||
Error detail: <span class="maroon" ><?php echo htmlentities($errorMessage); ?></span>
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test checks if the database user is allowed to connect or view the database.
|
||||
This test will not be ran if the 'Create New Database' action is selected.
|
||||
</p>
|
||||
|
||||
<?php if (!$isOk) { ?>
|
||||
<b>Databases visible to user [<?php echo htmlentities($dbuser); ?>]</b><br/>
|
||||
<ul class="db-list">
|
||||
<?php
|
||||
if (count($databases)) {
|
||||
foreach ($databases as $database) {
|
||||
?>
|
||||
<li>
|
||||
<?php echo htmlentities($database); ?>
|
||||
</li>
|
||||
<?php
|
||||
}
|
||||
} else {
|
||||
?>
|
||||
<li>
|
||||
<i>No databases are viewable</i>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>Check the database user privileges.</li>
|
||||
<li>
|
||||
Check to make sure the 'User' has been added as a valid database user
|
||||
<ul class='vids'>
|
||||
<li>
|
||||
<i class="fa fa-video-camera"></i>
|
||||
<a href="https://www.youtube.com/watch?v=FfX-B-h3vo0" target="_video">Add database user in phpMyAdmin</a>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-video-camera"></i>
|
||||
<a href="https://www.youtube.com/watch?v=peLby12mi0Q" target="_video">Add database user in cPanel older versions</a>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-video-camera"></i>
|
||||
<a href="https://www.youtube.com/watch?v=CHwxXGPnw48" target="_video">Add database user in cPanel newer versions</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="<?php echo DUPX_U::esc_attr(DUPX_Constants::FAQ_URL); ?>how-to-fix-database-connection-issues/" target="_help"
|
||||
title="I'm running into issues with the Database what can I do?">
|
||||
[Additional FAQ Help]
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $testResult DUPX_Validation_abstract_item::[LV_FAIL|LV_HARD_WARNING|...]
|
||||
* @var string[] $pathsList
|
||||
*/
|
||||
|
||||
$statusClass = ($testResult > DUPX_Validation_abstract_item::LV_SOFT_WARNING ? 'green' : 'red' );
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if (count($pathsList) === 0) { ?>
|
||||
No addon site detected.
|
||||
<?php } else { ?>
|
||||
Detected addon sites, see the details section for the list of sites.<br>
|
||||
<?php if ($testResult > DUPX_Validation_abstract_item::LV_SOFT_WARNING) { ?>
|
||||
Normal installation generally does not interfere with these sites.
|
||||
<?php } else { ?>
|
||||
These sites are not deleted even if you have selected an action that removes the files before extracting them.
|
||||
If there are other folders outside the home path that are necessary for the addon site to work, it will be removed
|
||||
so pay attention in the event there are addon custom installations.
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
An addon site is a WordPress installation in a subfolder of the current home path.
|
||||
</p>
|
||||
<?php if (count($pathsList) > 0) { ?>
|
||||
<p>
|
||||
<i>Addons Site Paths</i>
|
||||
</p>
|
||||
<ul>
|
||||
<?php foreach ($pathsList as $path) { ?>
|
||||
<li>
|
||||
<b><?php echo $path; ?></b>
|
||||
</li>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
<?php } ?>
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>
|
||||
The installer doesn't modify addon sites so their presence doesn't cause problems
|
||||
but if you want to be sure you don't lose data it might be useful to make a backup of the addon site.
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $testResult
|
||||
*/
|
||||
|
||||
switch ($testResult) {
|
||||
case DUPX_Validation_test_archive_check::LV_PASS:
|
||||
?>
|
||||
<span class="dupx-pass">Archive file successfully detected.</span>
|
||||
<?php
|
||||
break;
|
||||
case DUPX_Validation_test_archive_check::LV_SOFT_WARNING:
|
||||
?>
|
||||
<span class="dupx-fail" style="font-style:italic">
|
||||
The archive file named above must be the <u>exact</u> name of the archive file placed in the root path (character for character).
|
||||
But you can proceed with choosing Manual Archive Extraction.
|
||||
</span>
|
||||
<?php
|
||||
break;
|
||||
case DUPX_Validation_test_archive_check::LV_FAIL:
|
||||
?>
|
||||
<span class="dupx-fail" style="font-style:italic">
|
||||
The archive file named above must be the <u>exact</u> name of the archive file placed in the root path (character for character).
|
||||
When downloading the package files make sure both files are from the same package line. <br/><br/>
|
||||
|
||||
If the contents of the archive were manually transferred to this location without the archive file then simply create a temp file named with
|
||||
the exact name shown above and place the file in the same directory as the installer.php file. The temp file will not need to contain any data.
|
||||
Afterward, refresh this page and continue with the install process.
|
||||
</span>
|
||||
<?php
|
||||
break;
|
||||
default:
|
||||
?>
|
||||
Invalid test result value <?php
|
||||
echo $testResult;
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $testResult
|
||||
* @var array{wpconfig: bool, htaccess: bool, other: bool} $configsCheck
|
||||
*/
|
||||
|
||||
$statusClass = ($testResult > DUPX_Validation_abstract_item::LV_SOFT_WARNING ? 'green' : 'red' );
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($testResult > DUPX_Validation_abstract_item::LV_SOFT_WARNING) { ?>
|
||||
All configuration files are editable.
|
||||
<?php } else { ?>
|
||||
One or more configuration files cannot be edited, the list is in the details section
|
||||
<?php } ?>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test verifies that the configuration files are editable.
|
||||
Otherwise it is possible to continue with the installation but some settings will be disabled and
|
||||
it will not be possible to modify the configuration file without write permissions.
|
||||
</p>
|
||||
<table class="margin-bottom-1">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<b>wp-config.php</b>
|
||||
</td>
|
||||
<td>
|
||||
<?php $testLv = $configsCheck['wpconfig'] ? DUPX_Validation_abstract_item::LV_PASS : DUPX_Validation_abstract_item::LV_FAIL; ?>
|
||||
<span class="status-badge right <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($testLv); ?>"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>.htaccess</b>
|
||||
</td>
|
||||
<td>
|
||||
<?php $testLv = $configsCheck['htaccess'] ? DUPX_Validation_abstract_item::LV_PASS : DUPX_Validation_abstract_item::LV_FAIL; ?>
|
||||
<span class="status-badge right <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($testLv); ?>"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>Other configs</b><br>
|
||||
[ web.config, php.ini, .user.ini ]
|
||||
</td>
|
||||
<td valign="top">
|
||||
<?php $testLv = $configsCheck['other'] ? DUPX_Validation_abstract_item::LV_PASS : DUPX_Validation_abstract_item::LV_FAIL; ?>
|
||||
<span class="status-badge right <?php echo DUPX_Validation_abstract_item::resultLevelToBadgeClass($testLv); ?>"></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tbody>
|
||||
</table>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>If possible, via FTP or file manager, manually change the permissions of the conditioner files.</li>
|
||||
<li>In case the home path does not have write or run permissions, add them manually.</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
use Duplicator\Installer\Core\Params\PrmMng;
|
||||
|
||||
$paramsManager = PrmMng::getInstance();
|
||||
?><b>Deployment Path:</b> <i><?php echo DUPX_U::esc_html($paramsManager->getValue(PrmMng::PARAM_PATH_NEW)); ?></i>
|
||||
<br/><br/>
|
||||
|
||||
The installer has detected that a WordPress site does not exist at the deployment path above.
|
||||
This installer is currently in 'Database Only' mode because that is how the archive was created.
|
||||
If core WordPress site files do not exist at the path above then they will need to be placed there in order for a WordPress site
|
||||
to properly work. To continue choose one of these options:
|
||||
|
||||
<ol>
|
||||
<li>Place this installer and archive at a path where core WordPress files already exist to hide this message. </li>
|
||||
<li>Create a new package that includes both the database and the core WordPress files.</li>
|
||||
<li>Ignore this message and install only the database (for advanced users only).</li>
|
||||
</ol>
|
||||
|
||||
<small>
|
||||
Note: This test simply looks for the directories <?php echo implode(', ', DUPX_Server::$wpCoreDirsList); ?> and a wp-config.php file.
|
||||
If they are not found in the deployment path above then this notice is shown.
|
||||
</small>
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var int $freeSpace
|
||||
* @var int $requiredSpace
|
||||
*/
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p>
|
||||
<?php if ($isOk) : ?>
|
||||
<span class="green">You have sufficient disk space on your machine to extract the archive.</span>
|
||||
<?php else : ?>
|
||||
<span class="maroon">You don’t have sufficient disk space on your machine to extract the archive.</span>
|
||||
<?php endif; ?>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
Duplicator needs at least enough disk space to be able to host the package file and the extracted files.<br>
|
||||
The available free disk space is <b><?php echo $freeSpace; ?></b>, the required disk space should at least be <b><?php echo $requiredSpace; ?></b>.
|
||||
</p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>Ask your host to increase your disk space.</li>
|
||||
<li>Back-up and remove all unnecessary files you have in the install directory to free up space.</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $testResult validation rest result enum
|
||||
* @var string[] $failMessages fail message
|
||||
*/
|
||||
|
||||
$statusClass = ($testResult > DUPX_Validation_abstract_item::LV_SOFT_WARNING ? 'green' : 'maroon' );
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($testResult > DUPX_Validation_abstract_item::LV_SOFT_WARNING) { ?>
|
||||
The package has all the elements to be imported.
|
||||
<?php } else { ?>
|
||||
You are importing a <b>partial package</b>.<br>
|
||||
A package with filtered elements could cause a malfunction of the current site.
|
||||
<?php } ?>
|
||||
</p>
|
||||
|
||||
<?php if (count($failMessages) > 0) { ?>
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<ul>
|
||||
<?php foreach ($failMessages as $failMessage) { ?>
|
||||
<li><?php echo $failMessage; ?></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>
|
||||
The package can be installed, only the files in the package will be overwritten, make sure they are compatible with the current website.
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $testResult int // DUPX_Validation_abstract_item::[LV_FAIL|LV_HARD_WARNING|...]
|
||||
* @var string $importerVer
|
||||
*/
|
||||
|
||||
$statusClass = ($testResult > DUPX_Validation_abstract_item::LV_SOFT_WARNING ? 'green' : 'red' );
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $statusClass; ?>">
|
||||
<?php if ($testResult > DUPX_Validation_abstract_item::LV_SOFT_WARNING) { ?>
|
||||
The version of Duplicator importer is compatible with the current package.
|
||||
<?php } else { ?>
|
||||
Version of Duplicator importer is old compared to version of current package.
|
||||
<?php } ?>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
Importer version: <b><?php echo $importerVer; ?></b><br>
|
||||
Package version: <b><?php echo DUPX_VERSION; ?></b>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>
|
||||
The version of Duplicator in the importer site must be equal to or greater than the version with which the package was created.<br>
|
||||
<b>Please update Duplicator to the latest version and restart the installation.</b>
|
||||
</li>
|
||||
<li>
|
||||
In case it is not possible to update the plugin, it is possible to perform a classic installation by starting the installer directly
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var string $managedHosting
|
||||
* @var string $failMessage
|
||||
* @var bool $isOk
|
||||
*/
|
||||
?><p>
|
||||
Managed hosting <b><?php echo DUPX_U::esc_html($managedHosting); ?></b> detected. <br>
|
||||
<?php if ($isOk) {
|
||||
?><i class='green'>This managed hosting is supported. </i><?php
|
||||
} else {
|
||||
?><i class='red'><?php echo DUPX_U::esc_html($failMessage); ?></i><?php
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
*/
|
||||
?>
|
||||
<p>
|
||||
<?php
|
||||
if ($isOk) {
|
||||
?><span class="green">
|
||||
The prefix of the existing WordPress configuration table is equal of the prefix of the table of the source site where the package was created.
|
||||
</span><?php
|
||||
} else {
|
||||
?><span class="maroon">
|
||||
The prefix of the existing WordPress configuration table does not match the prefix of the table of the source site where the package was created,
|
||||
so the prefix will be changed to the managed hosting prefix.
|
||||
</span><?php
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
use Duplicator\Installer\Core\Params\PrmMng;
|
||||
|
||||
$paramsManager = PrmMng::getInstance();
|
||||
?><p>
|
||||
<b>Deployment Path:</b> <i><?php echo DUPX_U::esc_html($paramsManager->getValue(PrmMng::PARAM_PATH_NEW)); ?></i>
|
||||
</p>
|
||||
<p>
|
||||
The installer has detected that the archive file has been extracted to the deployment path above. The installer is going
|
||||
to skip the extraction process by default. If you want to re-extract the archive file, switch to "Advanced" mode, and
|
||||
under "Options" > "Extraction Mode" choose the preferred extraction mode.
|
||||
</p>
|
||||
<small>
|
||||
Note: This test looks for a file named <i>dup-manual-extract__[HASH]</i> in the <?php echo DUPX_U::esc_html(DUPX_INIT); ?> directory.
|
||||
If the file exists then this notice is shown.
|
||||
The <i>dup-manual-extract__[HASH]</i> file is created with every archive and removed once the install is complete. For more details on this process see the
|
||||
<a href="<?php echo DUPX_Constants::FAQ_URL; ?>how-to-handle-various-install-scenarios" target="_blank">manual extraction FAQ</a>.
|
||||
</small>
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var string $memoryLimit
|
||||
* @var string $minMemoryLimit
|
||||
* @var bool $isOk
|
||||
*/
|
||||
?>
|
||||
<p>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p>
|
||||
<?php if ($isOk) : ?>
|
||||
<i class='green'>
|
||||
The memory_limit has a value of <b>[<?php echo $memoryLimit; ?>]</b> which is higher or equal to the suggested minimum of
|
||||
<b>[<?php echo $minMemoryLimit; ?>]</b>.
|
||||
</i>
|
||||
<?php else : ?>
|
||||
<i class='red'>
|
||||
The memory_limit has a value of <b>[<?php echo $memoryLimit; ?>]</b>
|
||||
which is lower than the suggested minimum of <b>[<?php echo $minMemoryLimit; ?>]</b>.
|
||||
</i>
|
||||
<?php endif; ?>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
The 'memory_limit' configuration in php.ini sets how much memory a script can use during its runtime.
|
||||
When this value is lower than the suggested minimum of
|
||||
<?php echo $minMemoryLimit; ?> the installer might run into issues.
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>
|
||||
Try Increasing the memory_limit.
|
||||
<a href="<?php echo DUPX_Constants::FAQ_URL; ?>how-to-manage-server-resources-cpu-memory-disk" target="_blank">[Additional FAQ Help]</a>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
*/
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<?php if ($isOk) : ?>
|
||||
<p class="green">
|
||||
You are not trying to install a subdomain multisite into a subdirectory.
|
||||
</p>
|
||||
<?php else : ?>
|
||||
<p class="maroon">
|
||||
You are trying to install subdomain multisite into a subdirectory which is not supported by WordPress.
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
Installing a subdomain multisite into a subdirectory (e.g. http://example.com/subdirectory) is not supported by WordPress.
|
||||
</p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<p>
|
||||
If you still want to install the multisite in a subdirectory proceed with the installation as usual
|
||||
and after finishing it manually edit the wp-config.php and database to turn your subdomain installation into a
|
||||
subdirectory installation.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://www.plesk.com/blog/guides/change-wordpress-multisite-structure/">
|
||||
Changing WP Multisite Structure From Subdomains To Subdirectories And Vice Versa
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
?><p>
|
||||
Support for the PHP <a href='http://us2.php.net/manual/en/mysqli.installation.php' target='_blank'>mysqli extension</a> is required.
|
||||
Please contact your hosting provider or server administrator to enable the mysqli extension. <i>The detection for this call uses
|
||||
the function_exists('mysqli_connect') call.</i>
|
||||
</p>
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $openBaseDirEnabled
|
||||
* @var string[] $pathsOutsideOpenBaseDir
|
||||
* @var bool $isOk
|
||||
*/
|
||||
?>
|
||||
<p>
|
||||
<b>Open BaseDir:</b>
|
||||
<?php
|
||||
if (!$openBaseDirEnabled) {
|
||||
?><i class='green'>Disabled</i><?php
|
||||
} elseif (empty($pathsOutsideOpenBaseDir)) {
|
||||
?><i class='green'>Enabled</i><?php
|
||||
} else {
|
||||
?><i class='red'>Enabled</i><?php
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
|
||||
<?php if (!$openBaseDirEnabled) : ?>
|
||||
The open_basedir configuration is disabled.
|
||||
<?php elseif (empty($pathsOutsideOpenBaseDir)) : ?>
|
||||
All required archive paths were found in the open_basedir path list.
|
||||
<?php else : ?>
|
||||
If <a href="http://php.net/manual/en/ini.core.php#ini.open-basedir" target="_blank">open_basedir</a> is enabled and you're
|
||||
having issues getting your site to install properly please work with your host and follow these steps to prevent issues:
|
||||
<ol style="margin:7px; line-height:19px">
|
||||
<li>Disable the open_basedir setting in the php.ini file</li>
|
||||
<li>If the host will not disable, then add the paths below to the open_basedir setting in the php.ini<br/>
|
||||
<?php foreach ($pathsOutsideOpenBaseDir as $path) : ?>
|
||||
<i class="maroon">"<?php echo DUPX_U::esc_html($path); ?>"</i><br>
|
||||
<?php endforeach;?>
|
||||
</li>
|
||||
<li>Save the settings and restart the web server</li>
|
||||
</ol>
|
||||
<?php endif; ?>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
use Duplicator\Installer\Core\Params\PrmMng;
|
||||
|
||||
$paramsManager = PrmMng::getInstance();
|
||||
?><b>Deployment Path:</b> <i><?php echo DUPX_U::esc_html($paramsManager->getValue(PrmMng::PARAM_PATH_NEW)); ?></i>
|
||||
<br/><br/>
|
||||
|
||||
Duplicator is in "Overwrite Install" mode because it has detected an existing WordPress site at the deployment path above. This mode allows for the installer
|
||||
to be dropped directly into an existing WordPress site and overwrite its contents. Any content inside of the archive file
|
||||
will <u>overwrite</u> the contents from the deployment path. To continue choose one of these options:
|
||||
|
||||
<ol>
|
||||
<li>Ignore this notice and continue with the install if you want to overwrite this sites files.</li>
|
||||
<li>Move this installer and archive to another empty directory path to keep this sites files.</li>
|
||||
</ol>
|
||||
|
||||
<small style="color:maroon">
|
||||
<b>Notice:</b> Existing content such as plugin/themes/images will still show-up after the install is complete if they did not already exist in
|
||||
the archive file. For example if you have an SEO plugin in the current site but that same SEO plugin <u>does not exist</u> in the archive file
|
||||
then that plugin will display as a disabled plugin after the install is completed. The same concept with themes and images applies. This will
|
||||
not impact the sites operation, and the behavior is expected.
|
||||
</small>
|
||||
<br/><br/>
|
||||
<small style="color:#025d02">
|
||||
<b>Recommendation:</b> It is recommended you only overwrite WordPress sites that have a minimal setup (plugins/themes). Typically a fresh install or a
|
||||
cPanel 'one click' install is the best baseline to work from when using this mode but is not required.
|
||||
</small>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $packageDays
|
||||
* @var int $maxPackageDays
|
||||
*/
|
||||
?><p>
|
||||
This package is <?php echo $packageDays; ?> day(s) old.
|
||||
Packages older than <?php echo $maxPackageDays; ?> days might be considered stale. It is recommended to build a new
|
||||
package unless your aware of the content and its data. This is message is simply a recommendation.
|
||||
</p>
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var array<string, array{failLevel: int, pass: bool}> $extensionTests
|
||||
*/
|
||||
?>
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
PHP extensions are compiled libraries which enable specific functions to be used in your PHP code.
|
||||
This test checks if some of the most widely used extensions are
|
||||
installed on your server. Extensions with an asterisk (<i class='red'>*</i>) are required for the installer to work.
|
||||
</p>
|
||||
|
||||
<ul class="tbl-list">
|
||||
<?php foreach ($extensionTests as $extensionName => $extensionTest) : ?>
|
||||
<li>
|
||||
<b>
|
||||
<?php echo $extensionName; ?>
|
||||
<?php if ($extensionTest["failLevel"] < DUPX_Validation_abstract_item::LV_GOOD) : ?>
|
||||
<i class='red'>*</i>
|
||||
<?php endif; ?>:
|
||||
</b>
|
||||
<?php if ($extensionTest["pass"]) :?>
|
||||
<i class='green'>Enabled</i>
|
||||
<?php else : ?>
|
||||
<i class='red'>Disabled</i>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<p>
|
||||
In case this test failed you have to install the required extension on your server or ask your hosting provider to
|
||||
install it for you.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://www.webhostinghub.com/help/learn/website/how-tos/installing-php-extensions-pear">Installing PHP Extensions through the Cpanel</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://linuxize.com/post/how-to-install-php-on-ubuntu-18-04/#installing-php-extensions">Installing PHP extensions on Linux</a>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Libs\Snap\FunctionalityCheck;
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $testResult
|
||||
* @var FunctionalityCheck[] $functionalities
|
||||
*/
|
||||
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<?php
|
||||
switch ($testResult) {
|
||||
case DUPX_Validation_abstract_item::LV_PASS:
|
||||
?>
|
||||
<p class="green">
|
||||
All classes and functions listed below, both essential and non-essential, are enabled on your system.
|
||||
</p>
|
||||
<?php
|
||||
break;
|
||||
case DUPX_Validation_abstract_item::LV_HARD_WARNING:
|
||||
?>
|
||||
<p class="maroon">
|
||||
All required functions and classes are enabled on your system, but some of them that are non-essential are
|
||||
disabled or not present on your server.
|
||||
</p>
|
||||
<?php
|
||||
break;
|
||||
case DUPX_Validation_abstract_item::LV_FAIL:
|
||||
?>
|
||||
<p class="maroon">
|
||||
Some of required functions or classes are disabled or not present on your server.
|
||||
</p>
|
||||
<?php
|
||||
break;
|
||||
}
|
||||
?>
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
List of functions and classes that should be enabled on your system:
|
||||
</p>
|
||||
<div class="s1-validate-flagged-tbl-list margin-bottom-1">
|
||||
<table cellspacing="0" class="validation-results">
|
||||
<thead>
|
||||
<tr>
|
||||
<td width="1">Functionality</td>
|
||||
<td width="1">Required</td>
|
||||
<td width="1">Result</td>
|
||||
<td>Quick troubleshoot</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($functionalities as $func) : ?>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo ($func->getType() == FunctionalityCheck::TYPE_CLASS ? 'Class' : 'Function'); ?>
|
||||
<a href="<?php echo $func->link; ?>" target="_blank">
|
||||
<?php echo $func->getItemKey(); ?>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo ($func->isRequired() ? 'Yes' : 'No'); ?>
|
||||
</td>
|
||||
<td>
|
||||
<span class="status-badge right <?php echo ($func->check() ? 'pass' : 'fail'); ?>"></span>
|
||||
</td>
|
||||
<td style="white-space: normal;">
|
||||
<?php
|
||||
echo $func->troubleshoot;
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>
|
||||
Contact your hosting provider and ask them to enable required functions and classes.
|
||||
You can also read specifics related to each function in the
|
||||
<a href="<?php echo DUPX_Constants::FAQ_URL; ?>how-to-fix-call-to-undefined-function-errors"
|
||||
target="_blank">FAQ section</a>.
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var string $fromPhp
|
||||
* @var string $toPhp
|
||||
* @var bool $isOk
|
||||
*/
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="<?php echo $isOk ? 'green' : 'red'; ?>" >
|
||||
<b style=''>You are migrating site from PHP <?php echo $fromPhp; ?> to PHP <?php echo $toPhp; ?></b>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
If the PHP version of your website is different than the PHP version of your package it <i>may</i> cause problems with the
|
||||
functioning of your website.
|
||||
</p>
|
||||
<?php if (intval($toPhp) === 8) : ?>
|
||||
<p>
|
||||
In case you are migrating your website from an older version of PHP to
|
||||
<a href="https://www.php.net/releases/8.0/en.php" target="blank">PHP 8.x</a> there is a relatively high probability
|
||||
that some plugins or themes will not be compatible and may cause the overall website to not work.
|
||||
</p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>
|
||||
We suggest proceeding in the "Advanced" mode and at Step 3 of the installation process under the "Plugins" tab
|
||||
uncheck all plugins. In this way all plugins will be deactivated after the migration and you can then activate them
|
||||
one-by-one to make sure everything works properly and be able to isolate offending plugins.
|
||||
</li>
|
||||
<li>
|
||||
In case you are still experiencing issues after applying the fix above, the most likely cause of that is that
|
||||
the active theme is not compatible with the new version of PHP. In this case too, it is suggested to
|
||||
<a href="https://mediatemple.net/community/products/grid/360022440131/how-to-deactivate-a-wordpress-theme-for-troubleshooting"
|
||||
target="_blank">deactivate the theme</a> to debug the issue.
|
||||
</li>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $testResult
|
||||
* @var string|false $importPage
|
||||
* @var string|false $recoveryPage
|
||||
* @var bool $recoveryIsOutToDate
|
||||
* @var int $recoveryPackageLife
|
||||
*/
|
||||
|
||||
switch ($testResult) {
|
||||
case DUPX_Validation_test_recovery::LV_GOOD:
|
||||
?>
|
||||
<b>Recovery URL:</b> <i class="green"> is valid. </i>
|
||||
<?php
|
||||
break;
|
||||
case DUPX_Validation_test_recovery::LV_SOFT_WARNING:
|
||||
?>
|
||||
The Recovery Point is set but was created <b class="maroon" ><?php echo $recoveryPackageLife; ?> hours ago.</b>
|
||||
<p>
|
||||
In case of an error and subsequent restore all changes created after the restore point will be lost.
|
||||
</p>
|
||||
<?php
|
||||
break;
|
||||
case DUPX_Validation_test_recovery::LV_HARD_WARNING:
|
||||
default:
|
||||
?><b class="maroon">
|
||||
<i class="fas fa-exclamation-triangle"></i> The Recovery Point is not set!
|
||||
</b>
|
||||
<p>You can continue but in the event you run into an install issue/error you will not be able to restore the current site. In some cases
|
||||
this might be desirable. For example:
|
||||
</p>
|
||||
<ul>
|
||||
<li>This is a completely blank WordPress site and getting it back is simple.</li>
|
||||
<li>Losing access to this site is no big deal and you know how to restore things on your own.</li>
|
||||
</ul>
|
||||
</i>
|
||||
<?php
|
||||
break;
|
||||
}
|
||||
?>
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
Package age: <?php echo $recoveryPackageLife; ?> hours
|
||||
</p>
|
||||
<p>
|
||||
<b>You can
|
||||
<?php if (!$importPage) { ?>
|
||||
go back
|
||||
<?php } else { ?>
|
||||
<a href="<?php echo DUPX_U::esc_attr($importPage) ?>" target="_parent" >go back</a>
|
||||
<?php } ?>
|
||||
and set a new Recovery Point.</b>
|
||||
</p>
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var bool $isOk
|
||||
* @var string $meessage
|
||||
*/
|
||||
?>
|
||||
<p class="maroon">
|
||||
The installer will not perform replacements on database PATHs but only on URLs.
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
|
||||
<?php if (!empty($message)) : ?>
|
||||
<p>
|
||||
<?php echo $message; ?>
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
|
||||
<p>
|
||||
Usually the database does not contain significant references to paths, so you can continue with the installation,
|
||||
but some plugins may write absolute paths in the database and there may be some malfunctions.
|
||||
</p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<p>
|
||||
If you experience any issues after the install you will have to manually replace paths in the database using phpMyAdmin or similar tools.
|
||||
</p>
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var string $errorMessage
|
||||
* @var string $restUrl
|
||||
* @var bool $isOk
|
||||
*/
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<?php if ($isOk) : ?>
|
||||
<p class="green" >
|
||||
<b>Successfully did a test REST API call to the WordPress backend.</b>
|
||||
</p>
|
||||
<?php else : ?>
|
||||
<p class="red" >
|
||||
<b>REST API call failed with the following message:</b> <?php echo $errorMessage; ?>
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
This test makes sure the
|
||||
<a href="https://developer.wordpress.org/rest-api/" target="_blank">WordPress REST API</a>
|
||||
works properly, which is necessary to create new subsites.
|
||||
</p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<p>
|
||||
Some of the possible reasons why the WordPress REST API test might fail are the following:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>The rest API is disabled on WordPress.</b>
|
||||
To test whether the REST API works properly please visit the <a href="<?php echo DUPX_U::esc_attr($restUrl) ?>" target="_blank">following address</a>
|
||||
and make sure you get a valid JSON output.
|
||||
In case you don't get a JSON output, please make sure that you have permalinks enabled. Under "Settings" > "Permalinks" the
|
||||
setting should not be set to "Plain".
|
||||
</li>
|
||||
<li>
|
||||
<b>SSL certificates are expired or invalid.</b>
|
||||
If this is the case please get in touch with your hosting provider to get everything working and up-to-date.
|
||||
</li>
|
||||
<li>
|
||||
<b>Basic Auth Authentication is enabled.</b>
|
||||
If you have basic auth enabled, please go to "Duplicator Pro" > "Settings" > "Packages" > "Advanced Settings" and
|
||||
set the "Basic Auth" option to enabled and enter the username and password. After saving the settings restart the import process.
|
||||
</li>
|
||||
<li>
|
||||
For more information on the topic please check out the
|
||||
<a href="https://developer.wordpress.org/rest-api/frequently-asked-questions/" target="_blank">
|
||||
<b>REST API FAQ</b>
|
||||
</a>.
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var string $fromPhp
|
||||
* @var string $toPhp
|
||||
* @var bool $isOk
|
||||
*/
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="red" >
|
||||
<b>You are installing on a SiteGround server.</b>
|
||||
</p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
To overcome errors while extracting ZipArchive on SiteGround Server throttling has been automatically enabled.
|
||||
</p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>
|
||||
In case you still get errors during the extraction please try switching the "Extraction Mode" to
|
||||
"Shell Exec Zip" in Advanced mode under the "Options" section.
|
||||
</li>
|
||||
<li>
|
||||
If the above doesn't work either, please consider creating a new package on the source using the DAF archive format.
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var string $archiveSize
|
||||
* @var string $maxSize
|
||||
* @var bool $maxTimeZero
|
||||
* @var int $maxTimeIni
|
||||
* @var bool $isOk
|
||||
*/
|
||||
?><p>
|
||||
<b>Archive Size:</b> <?php echo $archiveSize; ?> <small>(detection limit is set at <?php echo $maxSize; ?>)</small><br/>
|
||||
<b>PHP max_execution_time:</b> <?php echo $maxTimeIni; ?> <small>(zero means not limit)</small><br/>
|
||||
<b>PHP set_time_limit:</b> <?php
|
||||
if ($maxTimeZero) {
|
||||
?><i class='green'>Success</i><?php
|
||||
} else {
|
||||
?><i class='red'>Failed</i><?php
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
<p>
|
||||
The PHP <a href="http://php.net/manual/en/info.configuration.php#ini.max-execution-time" target="_blank">max_execution_time</a>
|
||||
setting is used to determine how long a PHP process is allowed to run.
|
||||
If the setting is too small and the archive file size is too large then PHP may not have enough
|
||||
time to finish running before the process is killed causing a timeout.
|
||||
</p>
|
||||
<p>
|
||||
Duplicator Pro attempts to turn off the timeout by using the
|
||||
<a href="http://php.net/manual/en/function.set-time-limit.php" target="_blank">set_time_limit</a> setting.
|
||||
If this notice shows as a warning then it is still safe to continue with the install.
|
||||
However, if a timeout occurs then you will need to consider working with the max_execution_time setting or extracting the
|
||||
archive file using the 'Manual Archive Extraction' method.
|
||||
<a href="<?php echo DUPX_Constants::FAQ_URL; ?>how-to-handle-server-timeout-issues" target="_blank">[Additional FAQ Help]</a>
|
||||
</p>
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var string $wordFencePath
|
||||
*/
|
||||
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="maroon"> A Wordfence firewall instance was detected at <b><?php echo DUPX_U::esc_html($wordFencePath); ?></b>. </p>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<p>
|
||||
The Wordfence Web Application Firewall is a PHP based, application level firewall that filters out malicious
|
||||
requests to your site. Sometimes Wordfence returns false positives on requests done during the installation process,
|
||||
because of which it might fail.
|
||||
</p>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<p>
|
||||
We recommend turning off the Wordfence firewall of the WordPress instance located at "<?php echo DUPX_U::esc_html($wordFencePath); ?>"
|
||||
during the installation process and reactivate it after the migration is completed. To deactivate the firewall follow these steps:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Go to WordPress Admin Dashboard ❯ Wordfence ❯ Firewall and click on the "Manage WAF".</li>
|
||||
<li>Choose Web Application Firewall Status to the "Disabled" option.</li>
|
||||
<li>Click on the "SAVE CHANGES" button and save the changed settings.</li>
|
||||
<li>Wait for the changes to take place</li>
|
||||
</ol>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<p class="green"> Having Wordfence in a parent site can interfere with the install, however no such condition was detected. </p>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $testResult Enum result test
|
||||
* @var string $configPath Old wp config path
|
||||
*/
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<?php if ($testResult == DUPX_Validation_abstract_item::LV_PASS) { ?>
|
||||
<p class="green">
|
||||
Old <b>wp-config</b> is valid.
|
||||
</p>
|
||||
<?php } else { ?>
|
||||
<p class="maroon">
|
||||
There seem to be an issue with parsing your old <b>wp-config</b> file. A new one will be created.
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<div class="margin-bottom-1" >
|
||||
<?php DUPX_U_Html::getLightBoxFileContent('Old wp-config.php', 'OLD WP-CONFIG.PHP', $configPath); ?>
|
||||
</div>
|
||||
<p>
|
||||
The installer can only modify a standard wp-config.php that contains the database access constants and is correctly formed.
|
||||
It cannot modify custom wp-config.php that, for example, includes other files in which database connection information is written.
|
||||
In this case, the installation can continue normally by generating a new wp-config.php from wp-config-sample.php,
|
||||
and the original wp-config.php will be lost.
|
||||
</p>
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>
|
||||
Check if you have not made any adjustments to your wp-config and removed the database constants.
|
||||
</li>
|
||||
<li>
|
||||
Check with your hosting provider if they handle the wp-config differently form the standard WordPress wp-config.
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,134 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
use Duplicator\Installer\Core\Params\PrmMng;
|
||||
use Duplicator\Libs\Shell\Shell;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var int $testResult DUPX_Validation_abstract_item::[LV_FAIL|LV_HARD_WARNING|...]
|
||||
* @var string[] $faildDirPerms
|
||||
* @var array<int, array{pass: bool, message: string, dir: string}> $phpPerms
|
||||
*/
|
||||
?>
|
||||
<div class="sub-title">STATUS</div>
|
||||
<?php if ($testResult < DUPX_Validation_abstract_item::LV_GOOD) { ?>
|
||||
<p class="red">
|
||||
Some folders do not have write permission, see details for more information.
|
||||
</p>
|
||||
<?php } else { ?>
|
||||
<p class="green">
|
||||
Write permissions granted for WordPress core directories.
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">DETAILS</div>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
Deployment Path:
|
||||
</td>
|
||||
<td>
|
||||
<b><?php echo DUPX_U::esc_html(PrmMng::getInstance()->getValue(PrmMng::PARAM_PATH_NEW)); ?></b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Check folders permission:
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
if (count($faildDirPerms) == 0) {
|
||||
?><i class='green'>All existing folders have write permissions</i><?php
|
||||
} else {
|
||||
?><i class='red'>Some folders do not have write permissions</i><?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php foreach ($phpPerms as $phpTest) { ?>
|
||||
<tr>
|
||||
<td>
|
||||
PHP files extraction on <b><?php echo basename($phpTest['dir']); ?></b>:
|
||||
</td>
|
||||
<td>
|
||||
<?php if ($phpTest['pass']) { ?>
|
||||
<span class="green">Pass</span>
|
||||
<?php } else { ?>
|
||||
<span class="red"><?php echo $phpTest['message']; ?></span>
|
||||
<?php } ?>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr>
|
||||
<td>
|
||||
Suhosin Extension:
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
if (!Shell::isSuhosinEnabled()) {
|
||||
?><i class='green'>Disabled</i><?php
|
||||
} else {
|
||||
?><i class='red'>Enabled</i><?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
PHP Safe Mode:
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
if (!DUPX_Server::phpSafeModeOn()) {
|
||||
?><i class='green'>Disabled</i><?php
|
||||
} else {
|
||||
?><i class='red'>Enabled</i><?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<?php if (count($faildDirPerms) > 0) { ?>
|
||||
<p>
|
||||
<b>Overwrite fails for these folders (change permissions or remove then restart):</b>
|
||||
</p>
|
||||
<div class="validation-iswritable-failes-objects">
|
||||
<pre><?php
|
||||
foreach ($faildDirPerms as $failedPath) {
|
||||
echo '- ' . DUPX_U::esc_html($failedPath) . "\n";
|
||||
}
|
||||
?></pre>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sub-title">TROUBLESHOOT</div>
|
||||
<ul>
|
||||
<li>
|
||||
If there are problems with permissions (not writable files or folders) try to change the permissions to 755 for folders or 644 for files.
|
||||
<a href="https://en.wikipedia.org/wiki/File-system_permissions" target="_blank">
|
||||
Here you can find general information about File-system permissions.
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
Generally if the folders have write permissions but it is not possible to extract the PHP files,
|
||||
the cause could be an external security service like "Imunify 360".
|
||||
If this is the case <a href="<?php echo DUPX_Constants::FAQ_URL; ?>how-to-fix-installer-archive-extraction-issues" target="_blank">
|
||||
deactivate the checks
|
||||
</a>
|
||||
temporarily, and run the installation again.
|
||||
</li>
|
||||
<li>
|
||||
Check
|
||||
<a href="<?php echo DUPX_Constants::FAQ_URL; ?>how-to-fix-installer-archive-extraction-issues" target="_blank">
|
||||
our online documentation
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
?>
|
||||
<div id="validate-area-header" class="hdr-sub1 toggle-hdr open" data-type="toggle" data-target="#validate-area">
|
||||
<a id="validate-area-link">
|
||||
<i class="fa fa-plus-square"></i>Validation
|
||||
</a>
|
||||
<span id="validate-global-badge-status" class="status-badge right wait" ></span>
|
||||
</div>
|
||||
<div id="validate-area" class="hdr-sub1-area show-warnings no-display" >
|
||||
<div id="validation-result" >
|
||||
<?php dupxTplRender('parts/validation/validate-noresult'); ?>
|
||||
</div>
|
||||
<div class='info'>
|
||||
<i class="fas fa-exclamation-circle fa-sm"></i> The system validation checks help to make sure the system is ready for install. <br/>
|
||||
During installation the website will be in maintenance mode and not accessible for users.
|
||||
</div>
|
||||
<?php dupxTplRender('pages-parts/step1/actions/hwarn-accept'); ?>
|
||||
</div>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
?>
|
||||
<div id="validate-no-result" class="text-center" >
|
||||
<p><b><i class="far fa-check-circle"></i> Not validated yet, please click validate button.</b></p>
|
||||
</div>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var string $category
|
||||
* @var string $title
|
||||
*/
|
||||
|
||||
$vManager = DUPX_Validation_manager::getInstance();
|
||||
$tests = $vManager->getTestsCategory($category);
|
||||
?>
|
||||
<div class="category-wrapper" >
|
||||
<div class="header" >
|
||||
<div class="category-title" >
|
||||
<?php echo DUPX_U::esc_html($title); ?>
|
||||
<span class="status-badge right <?php echo $vManager->getCagegoryBadge($category); ?>"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="category-content" >
|
||||
<?php
|
||||
foreach ($tests as $test) {
|
||||
dupxTplRender('parts/validation/validation-test', array('test' => $test));
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
use Duplicator\Installer\Core\Params\PrmMng;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var DUPX_Validation_manager $validationManager
|
||||
*/
|
||||
?>
|
||||
<div class="clearfix" >
|
||||
<?php PrmMng::getInstance()->getHtmlFormParam(PrmMng::PARAM_VALIDATION_SHOW_ALL); ?>
|
||||
</div>
|
||||
<?php
|
||||
dupxTplRender('parts/validation/validation-category', array(
|
||||
'title' => 'General',
|
||||
'category' => DUPX_Validation_manager::CAT_GENERAL,
|
||||
));
|
||||
dupxTplRender('parts/validation/validation-category', array(
|
||||
'title' => 'File System',
|
||||
'category' => DUPX_Validation_manager::CAT_FILESYSTEM,
|
||||
));
|
||||
dupxTplRender('parts/validation/validation-category', array(
|
||||
'title' => 'PHP config',
|
||||
'category' => DUPX_Validation_manager::CAT_PHP,
|
||||
));
|
||||
dupxTplRender('parts/validation/validation-category', array(
|
||||
'title' => 'Database',
|
||||
'category' => DUPX_Validation_manager::CAT_DATABASE,
|
||||
));
|
||||
|
||||
DUPX_U_Html::js();
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Installer\Core\Params\PrmMng;
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var DUPX_Validation_abstract_item $test
|
||||
*/
|
||||
|
||||
if (!$test->display()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$validationLevel = PrmMng::getInstance()->getValue(PrmMng::PARAM_VALIDATION_LEVEL);
|
||||
$open = ($test->test() <= DUPX_Validation_abstract_item::LV_HARD_WARNING && $test->test() <= $validationLevel);
|
||||
$icon = $open ? 'fa-caret-down' : 'fa-caret-right';
|
||||
?>
|
||||
<div class="test-wrapper <?php echo $test->getUniqueSelector(); ?> <?php echo $test->getBadgeClass(); ?>" >
|
||||
<div class="test-title" >
|
||||
<i class="fa <?php echo $icon; ?>"></i> <?php echo DUPX_U::esc_html($test->getTitle()); ?>
|
||||
<span class="status-badge right <?php echo $test->getBadgeClass(); ?>"></span>
|
||||
</div>
|
||||
<div class="test-content <?php echo $open ? '' : 'no-display'; ?>" >
|
||||
<?php echo $test->getContent(); ?>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user