X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=Civi%2FInstall%2FRequirements.php;h=d5f3d648ebf242cd23a90146144b54c63c8f7d18;hb=9a52418f4e092f720dac199d70eb700f29c7aba2;hp=0381768218aca43d2adb5ac52b82ad088bf7930b;hpb=9a910c398c014ecf79ac14b2847cbf8817312847;p=civicrm-core.git diff --git a/Civi/Install/Requirements.php b/Civi/Install/Requirements.php index 0381768218..d5f3d648eb 100644 --- a/Civi/Install/Requirements.php +++ b/Civi/Install/Requirements.php @@ -28,12 +28,15 @@ class Requirements { */ protected $system_checks = [ 'checkMemory', - 'checkServerVariables', 'checkMysqlConnectExists', 'checkJsonEncodeExists', 'checkMultibyteExists', ]; + protected $system_checks_web = [ + 'checkServerVariables', + ]; + protected $database_checks = [ 'checkMysqlConnection', 'checkMysqlVersion', @@ -58,6 +61,9 @@ class Requirements { * An array of check summaries. Each array contains the keys 'title', 'severity', and 'details'. */ public function checkAll(array $config) { + if (!class_exists('\CRM_Utils_SQL_TempTable')) { + require_once dirname(__FILE__) . '/../../CRM/Utils/SQL/TempTable.php'; + } return array_merge($this->checkSystem($config['file_paths']), $this->checkDatabase($config['db_config'])); } @@ -80,6 +86,12 @@ class Requirements { $errors[] = $this->$check(); } + if (PHP_SAPI !== 'cli') { + foreach ($this->system_checks_web as $check) { + $errors[] = $this->$check(); + } + } + return $errors; } @@ -304,7 +316,8 @@ class Requirements { return $results; } - if (version_compare($info, $min) == -1) { + $versionDetails = mysqli_query($conn, 'SELECT version() as version')->fetch_assoc(); + if (version_compare($versionDetails['version'], $min) == -1) { $results['severity'] = $this::REQUIREMENT_ERROR; $results['details'] = "MySQL version is {$info}; minimum required is {$min}"; return $results; @@ -373,15 +386,15 @@ class Requirements { $results['details'] = "Could not select the database"; return $results; } - - $r = mysqli_query($conn, 'CREATE TEMPORARY TABLE civicrm_install_temp_table_test (test text)'); + $temporaryTableName = \CRM_Utils_SQL_TempTable::build()->setCategory('install')->getName(); + $r = mysqli_query($conn, 'CREATE TEMPORARY TABLE ' . $temporaryTableName . ' (test text)'); if (!$r) { $results['severity'] = $this::REQUIREMENT_ERROR; $results['details'] = "Database does not support creation of temporary tables"; return $results; } - mysqli_query($conn, 'DROP TEMPORARY TABLE civicrm_install_temp_table_test'); + mysqli_query($conn, 'DROP TEMPORARY TABLE ' . $temporaryTableName); return $results; }