X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FConsole%2FAutomaticInstallation.php;h=294009ada015e5939955c550dbdc2b257de8d309;hb=4f01a198e18368e81fb86eaba82b7e950799e871;hp=c4e542e762738a674e3f3213f68d88b69c875273;hpb=59d6dd809d14852204aad9b4aa9f9b27af861427;p=friendica.git diff --git a/src/Core/Console/AutomaticInstallation.php b/src/Core/Console/AutomaticInstallation.php index c4e542e762..294009ada0 100644 --- a/src/Core/Console/AutomaticInstallation.php +++ b/src/Core/Console/AutomaticInstallation.php @@ -5,7 +5,7 @@ namespace Friendica\Core\Console; use Asika\SimpleConsole\Console; use Friendica\BaseObject; use Friendica\Core\Config; -use Friendica\Core\Install; +use Friendica\Core\Installer; use Friendica\Core\Theme; use Friendica\Database\DBA; use Friendica\Database\DBStructure; @@ -76,7 +76,21 @@ HELP; $a = BaseObject::getApp(); - $install = new Install(); + $installer = new Installer(); + + $this->out(" Complete!\n\n"); + + // Check Environment + $this->out("Checking environment...\n"); + + $installer->resetChecks(); + + if (!$this->runBasicChecks($installer)) { + $errorMessage = $this->extractErrors($installer->getChecks()); + throw new RuntimeException($errorMessage); + } + + $this->out(" Complete!\n\n"); // if a config file is set, $config_file = $this->getOption(['f', 'file']); @@ -111,7 +125,11 @@ HELP; $tz = $this->getOption(['T', 'tz'], (!empty('FRIENDICA_TZ')) ? getenv('FRIENDICA_TZ') : ''); $lang = $this->getOption(['L', 'lang'], (!empty('FRIENDICA_LANG')) ? getenv('FRIENDICA_LANG') : ''); - $install->createConfig( + if (empty($php_path)) { + $php_path = $installer->getPHPPath(); + } + + $installer->createConfig( $php_path, $url_path, ((!empty($db_port)) ? $db_host . ':' . $db_port : $db_host), @@ -127,30 +145,13 @@ HELP; $this->out(" Complete!\n\n"); - // Check basic setup - $this->out("Checking basic setup...\n"); - - $checkResults = []; - - $this->runBasicChecks($install); - - $checkResults['basic'] = $install->getChecks(); - $errorMessage = $this->extractErrors($checkResults['basic']); - - if ($errorMessage !== '') { - throw new RuntimeException($errorMessage); - } - - $this->out(" Complete!\n\n"); - // Check database connection $this->out("Checking database...\n"); - $checkResults['db'] = array(); - $checkResults['db'][] = $this->runDatabaseCheck($db_host, $db_user, $db_pass, $db_data); - $errorMessage = $this->extractErrors($checkResults['db']); + $installer->resetChecks(); - if ($errorMessage !== '') { + if (!$installer->checkDB($db_host, $db_user, $db_pass, $db_data)) { + $errorMessage = $this->extractErrors($installer->getChecks()); throw new RuntimeException($errorMessage); } @@ -159,10 +160,11 @@ HELP; // Install database $this->out("Inserting data into database...\n"); - $checkResults['data'] = DBStructure::update(false, true, true); + $installer->resetChecks(); - if ($checkResults['data'] !== '') { - throw new RuntimeException("ERROR: DB Database creation error. Is the DB empty?\n"); + if (!$installer->installDatabase()) { + $errorMessage = $this->extractErrors($installer->getChecks()); + throw new RuntimeException($errorMessage); } $this->out(" Complete!\n\n"); @@ -182,52 +184,43 @@ HELP; } /** - * @param Install $install the Installer instance + * @param Installer $installer the Installer instance + * + * @return bool true if checks were successfully, otherwise false */ - private function runBasicChecks(Install $install) + private function runBasicChecks(Installer $installer) { - $install->resetChecks(); - $install->checkFunctions(); - $install->checkImagick(); - $install->checkLocalIni(); - $install->checkSmarty3(); - $install->checkKeys(); + $checked = true; - if (!empty(Config::get('config', 'php_path'))) { - if (!$install->checkPHP(Config::get('config', 'php_path'), true)) { - throw new RuntimeException(" ERROR: The php_path is not valid in the config.\n"); - } - } else { - throw new RuntimeException(" ERROR: The php_path is not set in the config.\n"); + $installer->resetChecks(); + if (!$installer->checkFunctions()) { + $checked = false; + } + if (!$installer->checkImagick()) { + $checked = false; + } + if (!$installer->checkLocalIni()) { + $checked = false; + } + if (!$installer->checkSmarty3()) { + $checked = false; + } + if (!$installer->checkKeys()) { + $checked = false; } - $this->out(" NOTICE: Not checking .htaccess/URL-Rewrite during CLI installation.\n"); - } - - /** - * @param $db_host - * @param $db_user - * @param $db_pass - * @param $db_data - * - * @return array - */ - private function runDatabaseCheck($db_host, $db_user, $db_pass, $db_data) - { - $result = array( - 'title' => 'MySQL Connection', - 'required' => true, - 'status' => true, - 'help' => '', - ); - + $php_path = null; + if (!empty(Config::get('config', 'php_path'))) { + $php_path = Config::get('config', 'php_path'); + } - if (!DBA::connect($db_host, $db_user, $db_pass, $db_data)) { - $result['status'] = false; - $result['help'] = 'Failed, please check your MySQL settings and credentials.'; + if (!$installer->checkPHP($php_path, true)) { + $checked = false; } - return $result; + $this->out(" NOTICE: Not checking .htaccess/URL-Rewrite during CLI installation.\n"); + + return $checked; } /**