/** * Checks PHP settings * * @return JsonModel */ public function phpSettingsAction() { $type = $this->getRequest()->getQuery('type'); $data = []; if ($type == ReadinessCheckInstaller::INSTALLER) { $data = $this->phpReadinessCheck->checkPhpSettings(); } elseif ($type == ReadinessCheckUpdater::UPDATER) { $data = $this->getPhpChecksInfo(ReadinessCheck::KEY_PHP_SETTINGS_VERIFIED); } return new JsonModel($data); }
public function testCheckPhpSettingsNoXDebug() { $this->phpInfo->expects($this->once())->method('getCurrent')->willReturn([]); $rawPostMessage = sprintf( 'Your PHP Version is %s, but always_populate_raw_post_data = -1. $HTTP_RAW_POST_DATA is deprecated from PHP 5.6 onwards and will be removed in PHP 7.0. This will stop the installer from running. Please open your php.ini file and set always_populate_raw_post_data to -1. If you need more help please call your hosting provider.', PHP_VERSION ); $expected = [ 'responseType' => ResponseTypeInterface::RESPONSE_TYPE_SUCCESS, 'data' => [] ]; if (!$this->isPhp7OrHhvm()) { $this->setUpNoPrettyVersionParser(); $expected['data'] = [ 'always_populate_raw_post_data' => [ 'message' => $rawPostMessage, 'helpUrl' => 'http://php.net/manual/en/ini.core.php#ini.always-populate-settings-data', 'error' => false ] ]; } $this->assertEquals($expected, $this->phpReadinessCheck->checkPhpSettings()); }
/** * Run the readiness check * * @return bool */ public function runReadinessCheck() { $resultJsonRawData = [self::KEY_READINESS_CHECKS => []]; // checks PHP $phpVersionCheckResult = $this->phpReadinessCheck->checkPhpVersion(); $phpExtensionsCheckResult = $this->phpReadinessCheck->checkPhpExtensions(); $phpSettingsCheckResult = $this->phpReadinessCheck->checkPhpSettings(); $resultJsonRawData[self::KEY_PHP_CHECKS][self::KEY_PHP_VERSION_VERIFIED] = $phpVersionCheckResult; $resultJsonRawData[self::KEY_PHP_CHECKS][self::KEY_PHP_EXTENSIONS_VERIFIED] = $phpExtensionsCheckResult; $resultJsonRawData[self::KEY_PHP_CHECKS][self::KEY_PHP_SETTINGS_VERIFIED] = $phpSettingsCheckResult; // checks Database privileges $success = true; $errorMsg = ''; $write = $this->filesystem->getDirectoryWrite(DirectoryList::VAR_DIR); $dbInfo = $this->deploymentConfig->get(ConfigOptionsListConstants::CONFIG_PATH_DB_CONNECTION_DEFAULT); try { $this->dbValidator->checkDatabaseConnection($dbInfo[ConfigOptionsListConstants::KEY_NAME], $dbInfo[ConfigOptionsListConstants::KEY_HOST], $dbInfo[ConfigOptionsListConstants::KEY_USER], $dbInfo[ConfigOptionsListConstants::KEY_PASSWORD]); } catch (\Exception $e) { $success = false; $errorMsg .= $e->getMessage(); } if ($success) { $resultJsonRawData[self::KEY_READINESS_CHECKS][self::KEY_DB_WRITE_PERMISSION_VERIFIED] = true; } else { $resultJsonRawData[self::KEY_READINESS_CHECKS][self::KEY_DB_WRITE_PERMISSION_VERIFIED] = false; $resultJsonRawData[self::KEY_READINESS_CHECKS][self::KEY_ERROR] = $errorMsg; } // updates timestamp if ($write->isExist(self::SETUP_CRON_JOB_STATUS_FILE)) { $jsonData = json_decode($write->readFile(self::SETUP_CRON_JOB_STATUS_FILE), true); if (isset($jsonData[self::KEY_CURRENT_TIMESTAMP])) { $resultJsonRawData[self::KEY_LAST_TIMESTAMP] = $jsonData[self::KEY_CURRENT_TIMESTAMP]; } } $resultJsonRawData[self::KEY_CURRENT_TIMESTAMP] = time(); $resultJson = json_encode($resultJsonRawData, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); $write->writeFile(self::SETUP_CRON_JOB_STATUS_FILE, $resultJson); return $success; }
public function testCheckPhpSettingsNoXDebug() { $this->phpInfo->expects($this->once())->method('getCurrent')->willReturn([]); $expected = ['responseType' => ResponseTypeInterface::RESPONSE_TYPE_SUCCESS, 'data' => []]; $this->assertEquals($expected, $this->phpReadinessCheck->checkPhpSettings()); }