Blame view

sources/core/setup.php 2.17 KB
03e52840d   Kload   Init
1
2
3
4
5
6
7
  <?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;
03e52840d   Kload   Init
8
  	$_POST = array_merge ($_POST, $AUTOCONFIG);
31b7f2792   Kload   Upgrade to ownclo...
9
10
11
12
13
14
15
16
17
18
19
20
  	$_REQUEST = array_merge ($_REQUEST, $AUTOCONFIG);
  }
  
  $dbIsSet = isset($_POST['dbtype']);
  $directoryIsSet = isset($_POST['directory']);
  $adminAccountIsSet = isset($_POST['adminlogin']);
  
  if ($dbIsSet AND $directoryIsSet AND $adminAccountIsSet) {
  	$_POST['install'] = 'true';
  	if( file_exists( $autosetup_file )) {
  		unlink($autosetup_file);
  	}
03e52840d   Kload   Init
21
22
23
24
25
26
27
28
29
30
31
32
33
  }
  
  OC_Util::addScript('setup');
  
  $hasSQLite = class_exists('SQLite3');
  $hasMySQL = is_callable('mysql_connect');
  $hasPostgreSQL = is_callable('pg_connect');
  $hasOracle = is_callable('oci_connect');
  $hasMSSQL = is_callable('sqlsrv_connect');
  $datadir = OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data');
  $vulnerableToNullByte = false;
  if(@file_exists(__FILE__."\0Nullbyte")) { // Check if the used PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)
  	$vulnerableToNullByte = true;
31b7f2792   Kload   Upgrade to ownclo...
34
  }
03e52840d   Kload   Init
35
36
37
38
39
40
41
42
43
44
45
  
  // Protect data directory here, so we can test if the protection is working
  OC_Setup::protectDataDirectory();
  
  $opts = array(
  	'hasSQLite' => $hasSQLite,
  	'hasMySQL' => $hasMySQL,
  	'hasPostgreSQL' => $hasPostgreSQL,
  	'hasOracle' => $hasOracle,
  	'hasMSSQL' => $hasMSSQL,
  	'directory' => $datadir,
31b7f2792   Kload   Upgrade to ownclo...
46
47
  	'secureRNG' => OC_Util::secureRNGAvailable(),
  	'htaccessWorking' => OC_Util::isHtAccessWorking(),
03e52840d   Kload   Init
48
49
  	'vulnerableToNullByte' => $vulnerableToNullByte,
  	'errors' => array(),
31b7f2792   Kload   Upgrade to ownclo...
50
51
  	'dbIsSet' => $dbIsSet,
  	'directoryIsSet' => $directoryIsSet,
03e52840d   Kload   Init
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
  );
  
  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 {
  		header( 'Location: '.OC_Helper::linkToRoute( 'post_setup_check' ));
  		exit();
  	}
  }
  else {
  	OC_Template::printGuestPage("", "installation", $opts);
  }