示例#1
0
 /**
  *
  */
 public function installDbAction()
 {
     $this->setClientFolder($this->getRequestArg('folder', null, true));
     $lsDbPath = 'config' . DS . 'db.php';
     $laDbClientConf = (require $this->_sClientPath . DS . $lsDbPath);
     $lsDbDriver = $this->getRequestArg('driver', $laDbClientConf['production']['driver']);
     $lsDbCharset = $this->getRequestArg('charset', $laDbClientConf['production']['charset']);
     $lsDbHost = $this->getRequestArg('host', $laDbClientConf['production']['hostname']);
     $lsDbPort = $this->getRequestArg('port', $laDbClientConf['production']['port']);
     $lsDbUser = $this->getRequestArg('user', $laDbClientConf['production']['username']);
     $lsDbPass = $this->getRequestArg('pass', $laDbClientConf['production']['password']);
     $lsDbName = $this->getRequestArg('dbname', $laDbClientConf['production']['database'], true);
     $laDbConf = array('driver' => $lsDbDriver, 'charset' => $lsDbCharset, 'hostname' => $lsDbHost, 'port' => $lsDbPort, 'username' => $lsDbUser, 'password' => $lsDbPass);
     $this->_aRepository['newDb'] = new InstallRepository($laDbConf);
     if ($this->_aRepository['newDb']->connect()) {
         if (!$this->_aRepository['newDb']->checkDb($lsDbName)) {
             if (System::confirm("The database [{$lsDbName}] does not exists! Create a new database useing dbname [{$lsDbName}]?")) {
                 if ($this->_aRepository['newDb']->createDb($lsDbName)) {
                     $laDbConf['database'] = $lsDbName;
                 } else {
                     System::echoError($this->_aRepository['newDb']->getErrorMsg());
                     return;
                 }
             } else {
                 System::echoWarning("You need a database to continue. Aborting proccess!");
                 return;
             }
         } elseif (System::confirm("The database [{$lsDbName}] already exists! Confirm use this database?")) {
             $laDbConf['database'] = $lsDbName;
         } else {
             System::echoWarning("You need a database to continue. Aborting proccess!");
             return;
         }
     } else {
         System::echoError($this->_aRepository['newDb']->getErrorMsg());
         return;
     }
     echo "Select a database type:\n";
     echo "[1] onion-base (default)\n";
     echo "[2] onion-full\n";
     echo "[3] onion-parking\n";
     echo "[4] onion-service\n";
     echo "[5] onion-telmsg\n";
     $lsAnswer = System::prompt("Option:");
     switch ($lsAnswer) {
         case "2":
             $lsDbFile = "onion-full.sql";
             break;
         case "3":
             $lsDbFile = "onion-parking.sql";
             break;
         case "4":
             $lsDbFile = "onion-service.sql";
             break;
         case "5":
             $lsDbFile = "onion-telmsg.sql";
             break;
         default:
             $lsDbFile = "onion-base.sql";
     }
     $lsDbBase = System::localRequest($this->_sDbPath . DS . $lsDbFile);
     $this->_aRepository['newDb']->setDbConf($laDbConf);
     if (!$this->_aRepository['newDb']->importDb($lsDbBase)) {
         System::echoError($this->_aRepository['newDb']->getErrorMsg());
     } else {
         System::echoSuccess("Success in configure database!");
     }
     $this->confDbAction($laDbConf);
 }
示例#2
0
 /**
  */
 public function checkEnvAction()
 {
     $lbCheck = true;
     $laPHPExtensions = array("date", "ereg", "bz2", "calendar", "hash", "session", "sockets", "zip", "PDO", "curl", "gd", "intl", "json", "mysql", "pdo_mysql", "mhash");
     if (version_compare(phpversion(), '5.4', '>=')) {
         System::echoSuccess("PHP " . phpversion() . " - OK");
         foreach ($laPHPExtensions as $lsExtension) {
             if (in_array($lsExtension, get_loaded_extensions())) {
                 System::echoSuccess("PHP extension {$lsExtension} - OK");
             } else {
                 System::echoWarning("PHP extension {$lsExtension} - FAIL");
                 $lbCheck = false;
             }
         }
         if (ini_get('allow_url_fopen')) {
             System::echoSuccess("PHP fopen - OK");
         } else {
             System::echoWarning("PHP - DISABLED");
             $lbCheck = false;
         }
         if ($this->checkCommandLine('apachectl')) {
             $laApacheReturn = System::execute("apachectl -M");
         } elseif ($this->checkCommandLine('httpd')) {
             $laApacheReturn = System::execute("httpd -M");
         }
         $laModules = array('php5' => false, 'rewrite' => false, 'deflate' => false, 'expires' => false, 'headers' => false);
         if (is_array($laApacheReturn)) {
             foreach ($laApacheReturn as $lsLine) {
                 if (strpos($lsLine, 'deflate')) {
                     System::echoSuccess("Apache2 mod_deflate - OK");
                     $laModules['deflate'] = true;
                 } elseif (strpos($lsLine, 'php5')) {
                     System::echoSuccess("Apache2 mod_php5 - OK");
                     $laModules['php5'] = true;
                 } elseif (strpos($lsLine, 'rewrite')) {
                     System::echoSuccess("Apache2 mod_rewrite - OK");
                     $laModules['rewrite'] = true;
                 } elseif (strpos($lsLine, 'expires')) {
                     System::echoSuccess("Apache2 mod_expires - OK");
                     $laModules['expires'] = true;
                 } elseif (strpos($lsLine, 'headers')) {
                     System::echoSuccess("Apache2 mod_headers - OK");
                     $laModules['headers'] = true;
                 }
             }
         }
         foreach ($laModules as $lsModule => $lbOk) {
             if (!$lbOk) {
                 System::echoWarning("Apache2 mod_{$lsModule} - DISABLED");
                 $lbCheck = false;
             }
         }
     } else {
         System::echoWarning('You need PHP version 5.4 or latest!');
         $lbCheck = false;
     }
     return $lbCheck;
 }