Exemplo n.º 1
0
 /**
  * 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);
 }
Exemplo n.º 2
0
    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());
    }
Exemplo n.º 3
0
 /**
  * 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());
 }