/** * checks system compliance for 4.5+ codebase * @return array Mixed values */ function checkSystemCompliance() { global $sugar_config; global $current_language; global $db; global $mod_strings; global $app_strings; if (!defined('SUGARCRM_MIN_MEM')) { define('SUGARCRM_MIN_MEM', 40); } $installer_mod_strings = getModuleLanguagePack($current_language, './install'); $ret = array(); $ret['error_found'] = false; // PHP version $php_version = constant('PHP_VERSION'); $check_php_version_result = check_php_version($php_version); switch ($check_php_version_result) { case -1: $ret['phpVersion'] = "<b><span class=stop>{$installer_mod_strings['ERR_CHECKSYS_PHP_INVALID_VER']} {$php_version} )</span></b>"; $ret['error_found'] = true; break; case 0: $ret['phpVersion'] = "<b><span class=go>{$installer_mod_strings['ERR_CHECKSYS_PHP_UNSUPPORTED']} {$php_version} )</span></b>"; break; case 1: $ret['phpVersion'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_PHP_OK']} {$php_version} )</span></b>"; break; } // database and connect $canInstall = $db->canInstall(); if ($canInstall !== true) { $ret['error_found'] = true; if (count($canInstall) == 1) { $ret['dbVersion'] = "<b><span class=stop>" . $installer_mod_strings[$canInstall[0]] . "</span></b>"; } else { $ret['dbVersion'] = "<b><span class=stop>" . sprintf($installer_mod_strings[$canInstall[0]], $canInstall[1]) . "</span></b>"; } } // XML Parsing if (function_exists('xml_parser_create')) { $ret['xmlStatus'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_OK']}</span></b>"; } else { $ret['xmlStatus'] = "<b><span class=stop>{$installer_mod_strings['LBL_CHECKSYS_NOT_AVAILABLE']}</span></b>"; $ret['error_found'] = true; } // cURL if (function_exists('curl_init')) { $ret['curlStatus'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_OK']}</span></b>"; } else { $ret['curlStatus'] = "<b><span class=go>{$installer_mod_strings['ERR_CHECKSYS_CURL']}</span></b>"; $ret['error_found'] = false; } // mbstrings if (function_exists('mb_strlen')) { $ret['mbstringStatus'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_OK']}</span></b>"; } else { $ret['mbstringStatus'] = "<b><span class=stop>{$installer_mod_strings['ERR_CHECKSYS_MBSTRING']}</span></b>"; $ret['error_found'] = true; } // imap if (function_exists('imap_open')) { $ret['imapStatus'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_OK']}</span></b>"; } else { $ret['imapStatus'] = "<b><span class=go>{$installer_mod_strings['ERR_CHECKSYS_IMAP']}</span></b>"; $ret['error_found'] = false; } // safe mode if ('1' == ini_get('safe_mode')) { $ret['safeModeStatus'] = "<b><span class=stop>{$installer_mod_strings['ERR_CHECKSYS_SAFE_MODE']}</span></b>"; $ret['error_found'] = true; } else { $ret['safeModeStatus'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_OK']}</span></b>"; } // call time pass by ref if ('1' == ini_get('allow_call_time_pass_reference')) { $ret['callTimeStatus'] = "<b><span class=stop>{$installer_mod_strings['ERR_CHECKSYS_CALL_TIME']}</span></b>"; //continue upgrading } else { $ret['callTimeStatus'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_OK']}</span></b>"; } // memory limit $ret['memory_msg'] = ""; $memory_limit = "-1"; //ini_get('memory_limit'); $sugarMinMem = constant('SUGARCRM_MIN_MEM'); // logic based on: http://us2.php.net/manual/en/ini.core.php#ini.memory-limit if ($memory_limit == "") { // memory_limit disabled at compile time, no memory limit $ret['memory_msg'] = "<b><span class=\"go\">{$installer_mod_strings['LBL_CHECKSYS_MEM_OK']}</span></b>"; } elseif ($memory_limit == "-1") { // memory_limit enabled, but set to unlimited $ret['memory_msg'] = "<b><span class=\"go\">{$installer_mod_strings['LBL_CHECKSYS_MEM_UNLIMITED']}</span></b>"; } else { rtrim($memory_limit, 'M'); $memory_limit_int = (int) $memory_limit; if ($memory_limit_int < constant('SUGARCRM_MIN_MEM')) { $ret['memory_msg'] = "<b><span class=\"stop\">{$installer_mod_strings['ERR_CHECKSYS_MEM_LIMIT_1']}" . constant('SUGARCRM_MIN_MEM') . "{$installer_mod_strings['ERR_CHECKSYS_MEM_LIMIT_2']}</span></b>"; $ret['error_found'] = true; } else { $ret['memory_msg'] = "<b><span class=\"go\">{$installer_mod_strings['LBL_CHECKSYS_OK']} ({$memory_limit})</span></b>"; } } // zip support if (!class_exists("ZipArchive")) { $ret['ZipStatus'] = "<b><span class=stop>{$installer_mod_strings['ERR_CHECKSYS_ZIP']}</span></b>"; $ret['error_found'] = true; } else { $ret['ZipStatus'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_OK']}</span></b>"; } // Suhosin allow to use upload:// $ret['stream_msg'] = ''; if (UploadStream::getSuhosinStatus() == true) { $ret['stream_msg'] = "<b><span class=\"go\">{$installer_mod_strings['LBL_CHECKSYS_OK']}</span></b>"; } else { $ret['stream_msg'] = "<b><span class=\"stop\">{$app_strings['ERR_SUHOSIN']}</span></b>"; $ret['error_found'] = true; } /* mbstring.func_overload $ret['mbstring.func_overload'] = ''; $mb = ini_get('mbstring.func_overload'); if($mb > 1) { $ret['mbstring.func_overload'] = "<b><span class=\"stop\">{$mod_strings['ERR_UW_MBSTRING_FUNC_OVERLOAD']}</b>"; $ret['error_found'] = true; } */ return $ret; }
/** * checks system compliance for 4.5+ codebase * @return array Mixed values */ function checkSystemCompliance() { global $sugar_config; global $current_language; global $db; global $mod_strings; if (!defined('SUGARCRM_MIN_MEM')) { define('SUGARCRM_MIN_MEM', 40); } $installer_mod_strings = getModuleLanguagePack($current_language, './install'); $ret = array(); $ret['error_found'] = false; // PHP version $php_version = constant('PHP_VERSION'); $check_php_version_result = check_php_version($php_version); switch ($check_php_version_result) { case -1: $ret['phpVersion'] = "<b><span class=stop>{$installer_mod_strings['ERR_CHECKSYS_PHP_INVALID_VER']} {$php_version} )</span></b>"; $ret['error_found'] = true; break; case 0: $ret['phpVersion'] = "<b><span class=go>{$installer_mod_strings['ERR_CHECKSYS_PHP_UNSUPPORTED']} {$php_version} )</span></b>"; break; case 1: $ret['phpVersion'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_PHP_OK']} {$php_version} )</span></b>"; break; } // database and connect switch ($sugar_config['dbconfig']['db_type']) { case 'mysql': // mysql version $q = "SELECT version();"; $r = $db->query($q); $a = $db->fetchByAssoc($r); if (version_compare($a['version()'], '4.1.2') < 0) { $ret['error_found'] = true; $ret['mysqlVersion'] = "<b><span class=stop>" . $mod_strings['ERR_UW_MYSQL_VERSION'] . $a['version()'] . "</span></b>"; } break; case 'mssql': break; case 'oci8': break; } // XML Parsing if (function_exists('xml_parser_create')) { $ret['xmlStatus'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_OK']}</span></b>"; } else { $ret['xmlStatus'] = "<b><span class=stop>{$installer_mod_strings['LBL_CHECKSYS_NOT_AVAILABLE']}</span></b>"; $ret['error_found'] = true; } // cURL if (function_exists('curl_init')) { $ret['curlStatus'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_OK']}</font></b>"; } else { $ret['curlStatus'] = "<b><span class=go>{$installer_mod_strings['ERR_CHECKSYS_CURL']}</font></b>"; $ret['error_found'] = false; } // mbstrings if (function_exists('mb_strlen')) { $ret['mbstringStatus'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_OK']}</font></b>"; } else { $ret['mbstringStatus'] = "<b><span class=stop>{$installer_mod_strings['ERR_CHECKSYS_MBSTRING']}</font></b>"; $ret['error_found'] = true; } // imap if (function_exists('imap_open')) { $ret['imapStatus'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_OK']}</span></b>"; } else { $ret['imapStatus'] = "<b><span class=go>{$installer_mod_strings['ERR_CHECKSYS_IMAP']}</span></b>"; $ret['error_found'] = false; } // safe mode if ('1' == ini_get('safe_mode')) { $ret['safeModeStatus'] = "<b><span class=stop>{$installer_mod_strings['ERR_CHECKSYS_SAFE_MODE']}</span></b>"; $ret['error_found'] = true; } else { $ret['safeModeStatus'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_OK']}</span></b>"; } // call time pass by ref if ('1' == ini_get('allow_call_time_pass_reference')) { $ret['callTimeStatus'] = "<b><span class=stop>{$installer_mod_strings['ERR_CHECKSYS_CALL_TIME']}</span></b>"; //continue upgrading } else { $ret['callTimeStatus'] = "<b><span class=go>{$installer_mod_strings['LBL_CHECKSYS_OK']}</span></b>"; } // memory limit $ret['memory_msg'] = ""; $memory_limit = "-1"; //ini_get('memory_limit'); $sugarMinMem = constant('SUGARCRM_MIN_MEM'); // logic based on: http://us2.php.net/manual/en/ini.core.php#ini.memory-limit if ($memory_limit == "") { // memory_limit disabled at compile time, no memory limit $ret['memory_msg'] = "<b><span class=\"go\">{$installer_mod_strings['LBL_CHECKSYS_MEM_OK']}</span></b>"; } elseif ($memory_limit == "-1") { // memory_limit enabled, but set to unlimited $ret['memory_msg'] = "<b><span class=\"go\">{$installer_mod_strings['LBL_CHECKSYS_MEM_UNLIMITED']}</span></b>"; } else { rtrim($memory_limit, 'M'); $memory_limit_int = (int) $memory_limit; if ($memory_limit_int < constant('SUGARCRM_MIN_MEM')) { $ret['memory_msg'] = "<b><span class=\"stop\">{$installer_mod_strings['ERR_CHECKSYS_MEM_LIMIT_1']}" . constant('SUGARCRM_MIN_MEM') . "{$installer_mod_strings['ERR_CHECKSYS_MEM_LIMIT_2']}</span></b>"; $ret['error_found'] = true; } else { $ret['memory_msg'] = "<b><span class=\"go\">{$installer_mod_strings['LBL_CHECKSYS_OK']} ({$memory_limit})</span></b>"; } } /* mbstring.func_overload $ret['mbstring.func_overload'] = ''; $mb = ini_get('mbstring.func_overload'); if($mb > 1) { $ret['mbstring.func_overload'] = "<b><span class=\"stop\">{$mod_strings['ERR_UW_MBSTRING_FUNC_OVERLOAD']}</b>"; $ret['error_found'] = true; } */ return $ret; }