EVOLUTION-MANAGER
Edit File: class.server.php
<?php defined("DUPXABSPATH") or die(""); /** * DUPX_cPanel * Wrapper Class for cPanel API */ class DUPX_Server { /** * A list of the core WordPress directories */ public static $wpCoreDirsList = array( 'wp-admin', 'wp-includes' ); public static function phpSafeModeOn() { if (version_compare(PHP_VERSION, '5.4.0', '>=')) { // safe_mode has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0. return false; } else { return filter_var( ini_get('safe_mode'), FILTER_VALIDATE_BOOLEAN, array( 'options' => array( 'default' => false ) ) ); } } /** * Check given path prefixed with path array * * @param string $checkPath Path to check * @param array $pathsArr check against * @return boolean */ private static function isPathPrefixedWithArrayPath($checkPath, $pathsArr) { foreach ($pathsArr as $path) { if (0 === strpos($checkPath, $path)) { return true; } } return false; } /** * Can this server process in shell_exec mode * * @return bool */ public static function is_shell_exec_available() { if (array_intersect(array('shell_exec', 'escapeshellarg', 'escapeshellcmd', 'extension_loaded'), array_map('trim', explode(',', @ini_get('disable_functions'))))) { return false; } //Suhosin: http://www.hardened-php.net/suhosin/ //Will cause PHP to silently fail. if (extension_loaded('suhosin')) { return false; } // Can we issue a simple echo command? if (!@shell_exec('echo duplicator')) { return false; } return true; } /** * Returns the path this this server where the zip command can be called * * @return null|string // null if can't find unzip */ public static function get_unzip_filepath() { $filepath = null; if (self::is_shell_exec_available()) { if (shell_exec('hash unzip 2>&1') == NULL) { $filepath = 'unzip'; } else { $possible_paths = array('/usr/bin/unzip', '/opt/local/bin/unzip'); foreach ($possible_paths as $path) { if (file_exists($path)) { $filepath = $path; break; } } } } return $filepath; } /** * * @return string[] */ public static function getWpAddonsSiteLists() { $addonsSites = array(); $pathsToCheck = DUPX_ArchiveConfig::getInstance()->getPathsMapping(); if (is_scalar($pathsToCheck)) { $pathsToCheck = array($pathsToCheck); } foreach ($pathsToCheck as $mainPath) { DupProSnapLibIOU::regexGlobCallback($mainPath, function ($path) use (&$addonsSites) { if (DupProSnapLibUtilWp::isWpHomeFolder($path)) { $addonsSites[] = $path; } }, array( 'regexFile' => false, 'recursive' => true )); } return $addonsSites; } /** * Does the site look to be a WordPress site * * @return bool Returns true if the site looks like a WP site */ public static function isWordPress() { $absPathNew = DUPX_Paramas_Manager::getInstance()->getValue(DUPX_Paramas_Manager::PARAM_PATH_WP_CORE_NEW); if (!is_dir($absPathNew)) { return false; } if (($root_files = scandir($absPathNew)) == false) { return false; } $file_count = 0; foreach ($root_files as $file) { if (in_array($file, self::$wpCoreDirsList)) { $file_count++; } } return (count(self::$wpCoreDirsList) == $file_count); } }