template->syscheck = new View("install.html"); $this->template->syscheck->errors = $this->_get_config_errors(); $this->template->syscheck->modules = array(); } private function _get_config_errors() { $errors = array(); if (!file_exists(VARPATH)) { $error = new stdClass(); $error->message = "Missing: " . VARPATH; $error->instructions[] = "mkdir " . VARPATH; $error->instructions[] = "chmod 777 " . VARPATH; $errors[] = $error; } else if (!is_writable(VARPATH)) { $error = new stdClass(); $error->message = "Not writable: " . VARPATH; $error->instructions[] = "chmod 777 " . VARPATH; $errors[] = $error; } $db_php = VARPATH . "database.php"; if (!file_exists($db_php)) { $error = new stdClass(); $error->message = "Missing: $db_php
Run the following commands..."; $error->instructions[] = "cp " . DOCROOT . "kohana/config/database.php $db_php"; $error->instructions[] = "chmod 644 $db_php"; $error->message2 = "...then edit this file and enter your database configuration settings."; $errors[] = $error; } else if (!is_readable($db_php)) { $error = new stdClass(); $error->message = "Not readable: $db_php"; $error->instructions[] = "chmod 644 $db_php"; $error->message2 = "Then edit this file and enter your database configuration settings."; $errors[] = $error; } else { $old_handler = set_error_handler(array("Welcome_Controller", "_error_handler")); try { Database::instance()->connect(); } catch (Exception $e) { $error = new stdClass(); $error->message = "Database error: {$e->getMessage()}"; $db_name = Kohana::config("database.default.connection.database"); if (strchr($error->message, "Unknown database")) { $error->instructions[] = "mysqladmin -uroot create $db_name"; } else { $error->instructions = array(); $error->message2 = "Check " . VARPATH . "database.php"; } $errors[] = $error; } set_error_handler($old_handler); } return $errors; } }