2012-10-30 23:56:31 +04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
// Check for autosetup:
|
|
|
|
$autosetup_file = OC::$SERVERROOT."/config/autoconfig.php";
|
|
|
|
if( file_exists( $autosetup_file )) {
|
|
|
|
OC_Log::write('core', 'Autoconfig file found, setting up owncloud...', OC_Log::INFO);
|
|
|
|
include $autosetup_file;
|
|
|
|
$_POST = array_merge ($_POST, $AUTOCONFIG);
|
2013-11-29 19:24:48 +04:00
|
|
|
$_REQUEST = array_merge ($_REQUEST, $AUTOCONFIG);
|
2013-09-25 07:31:47 +04:00
|
|
|
}
|
|
|
|
|
2013-09-30 04:16:32 +04:00
|
|
|
$dbIsSet = isset($_POST['dbtype']);
|
|
|
|
$directoryIsSet = isset($_POST['directory']);
|
|
|
|
$adminAccountIsSet = isset($_POST['adminlogin']);
|
2013-09-25 07:31:47 +04:00
|
|
|
|
2013-09-30 04:16:32 +04:00
|
|
|
if ($dbIsSet AND $directoryIsSet AND $adminAccountIsSet) {
|
|
|
|
$_POST['install'] = 'true';
|
|
|
|
if( file_exists( $autosetup_file )) {
|
|
|
|
unlink($autosetup_file);
|
|
|
|
}
|
2012-10-30 23:56:31 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
OC_Util::addScript('setup');
|
|
|
|
|
2012-12-04 23:34:24 +04:00
|
|
|
$hasSQLite = class_exists('SQLite3');
|
2012-10-30 23:56:31 +04:00
|
|
|
$hasMySQL = is_callable('mysql_connect');
|
|
|
|
$hasPostgreSQL = is_callable('pg_connect');
|
|
|
|
$hasOracle = is_callable('oci_connect');
|
2013-02-08 03:00:51 +04:00
|
|
|
$hasMSSQL = is_callable('sqlsrv_connect');
|
2012-10-30 23:56:31 +04:00
|
|
|
$datadir = OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data');
|
2013-03-20 11:43:54 +04:00
|
|
|
$vulnerableToNullByte = false;
|
2013-04-09 23:11:44 +04:00
|
|
|
if(@file_exists(__FILE__."\0Nullbyte")) { // Check if the used PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)
|
2013-03-20 11:43:54 +04:00
|
|
|
$vulnerableToNullByte = true;
|
2013-09-25 07:31:47 +04:00
|
|
|
}
|
2012-10-30 23:56:31 +04:00
|
|
|
|
2012-11-13 11:54:19 +04:00
|
|
|
// Protect data directory here, so we can test if the protection is working
|
|
|
|
OC_Setup::protectDataDirectory();
|
2012-10-30 23:56:31 +04:00
|
|
|
|
|
|
|
$opts = array(
|
|
|
|
'hasSQLite' => $hasSQLite,
|
|
|
|
'hasMySQL' => $hasMySQL,
|
|
|
|
'hasPostgreSQL' => $hasPostgreSQL,
|
|
|
|
'hasOracle' => $hasOracle,
|
2013-02-10 16:07:59 +04:00
|
|
|
'hasMSSQL' => $hasMSSQL,
|
2012-10-30 23:56:31 +04:00
|
|
|
'directory' => $datadir,
|
2013-08-15 10:49:19 +04:00
|
|
|
'secureRNG' => OC_Util::secureRNGAvailable(),
|
2013-08-18 12:33:09 +04:00
|
|
|
'htaccessWorking' => OC_Util::isHtAccessWorking(),
|
2013-03-20 11:43:54 +04:00
|
|
|
'vulnerableToNullByte' => $vulnerableToNullByte,
|
2012-10-30 23:56:31 +04:00
|
|
|
'errors' => array(),
|
2013-09-30 04:16:32 +04:00
|
|
|
'dbIsSet' => $dbIsSet,
|
|
|
|
'directoryIsSet' => $directoryIsSet,
|
2012-10-30 23:56:31 +04:00
|
|
|
);
|
|
|
|
|
|
|
|
if(isset($_POST['install']) AND $_POST['install']=='true') {
|
|
|
|
// We have to launch the installation process :
|
|
|
|
$e = OC_Setup::install($_POST);
|
|
|
|
$errors = array('errors' => $e);
|
|
|
|
|
|
|
|
if(count($e) > 0) {
|
|
|
|
//OC_Template::printGuestPage("", "error", array("errors" => $errors));
|
|
|
|
$options = array_merge($_POST, $opts, $errors);
|
|
|
|
OC_Template::printGuestPage("", "installation", $options);
|
|
|
|
}
|
|
|
|
else {
|
2013-02-06 20:54:20 +04:00
|
|
|
header( 'Location: '.OC_Helper::linkToRoute( 'post_setup_check' ));
|
2012-10-30 23:56:31 +04:00
|
|
|
exit();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
OC_Template::printGuestPage("", "installation", $opts);
|
|
|
|
}
|