public function installAction() { // database configuration host/unix socket $dbConfig = ['username' => $this->getParam("mysql_username"), 'password' => $this->getParam("mysql_password"), 'dbname' => $this->getParam("mysql_database")]; $hostSocketValue = $this->getParam("mysql_host_socket"); if (file_exists($hostSocketValue)) { $dbConfig["unix_socket"] = $hostSocketValue; } else { $dbConfig["host"] = $hostSocketValue; $dbConfig["port"] = $this->getParam("mysql_port"); } // try to establish a mysql connection try { $db = \Zend_Db::factory($this->getParam("mysql_adapter"), $dbConfig); $db->getConnection(); // check utf-8 encoding $result = $db->fetchRow('SHOW VARIABLES LIKE "character\\_set\\_database"'); if ($result['Value'] != "utf8") { $errors[] = "Database charset is not utf-8"; } } catch (\Exception $e) { $errors[] = "Couldn't establish connection to mysql: " . $e->getMessage(); } // check username & password if (strlen($this->getParam("admin_password")) < 4 || strlen($this->getParam("admin_username")) < 4) { $errors[] = "Username and password should have at least 4 characters"; } if (empty($errors)) { $setup = new Tool\Setup(); // check if /website folder already exists, if not, look for /website_demo & /website_example // /website_install is just for testing in dev environment if (!is_dir(PIMCORE_WEBSITE_PATH)) { foreach (["website_install", "website_demo", "website_example"] as $websiteDir) { $dir = PIMCORE_DOCUMENT_ROOT . "/" . $websiteDir; if (is_dir($dir)) { rename($dir, PIMCORE_WEBSITE_PATH); break; } } } $setup->config(array("database" => array("adapter" => $this->getParam("mysql_adapter"), "params" => $dbConfig))); // look for a template dump // eg. for use with demo installer $dbDataFile = PIMCORE_WEBSITE_PATH . "/dump/data.sql"; $contentConfig = array("username" => $this->getParam("admin_username"), "password" => $this->getParam("admin_password")); if (!file_exists($dbDataFile)) { $setup->database(); \Pimcore::initConfiguration(); $setup->contents($contentConfig); } else { $setup->database(); $setup->insertDump($dbDataFile); \Pimcore::initConfiguration(); $setup->createOrUpdateUser($contentConfig); } $this->_helper->json(array("success" => true)); } else { echo implode("<br />", $errors); die; } }
<?php chdir(__DIR__); include_once "startup.php"; echo "\n"; use Pimcore\Model\Tool; $setup = new Tool\Setup(); $setup->database(); $setup->contents(["username" => "admin", "password" => "Dev_password123"]);