seeddms-code/install/install.php

152 lines
4.7 KiB
PHP
Raw Permalink Normal View History

2011-07-21 13:17:06 +00:00
<?php
// MyDMS. Document Management System
// Copyright (C) 2010 Matteo Lucarelli, 2011 Uwe Steinmann
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
/**
* Check Update file
*/
if (file_exists("../inc/inc.Settings.old.php")) {
echo "You can't install SeedDMS, unless you delete " . realpath("../inc/inc.Settings.old.php") . ".";
2011-07-21 13:17:06 +00:00
exit;
}
/**
* Check file for installation
*/
if (!file_exists("create_tables-innodb.sql")) {
echo "Can't install SeedDMS, 'create_tables-innodb.sql' missing";
2011-07-21 13:17:06 +00:00
exit;
}
if (!file_exists("create_tables-sqlite3.sql")) {
echo "Can't install SeedDMS, 'create_tables-sqlite3.sql' missing";
2011-07-21 13:17:06 +00:00
exit;
}
2017-02-21 06:30:14 +00:00
if (!file_exists("create_tables-postgres.sql")) {
echo "Can't install SeedDMS, 'create_tables-postgres.sql' missing";
exit;
}
2011-07-21 13:17:06 +00:00
if (!file_exists("settings.xml.template_install")) {
echo "Can't install SeedDMS, 'settings.xml.template_install' missing";
2011-07-21 13:17:06 +00:00
exit;
}
2013-02-04 09:30:11 +00:00
function fileExistsInIncludePath($file) { /* {{{ */
$paths = explode(PATH_SEPARATOR, get_include_path());
$found = false;
foreach($paths as $p) {
$fullname = $p.DIRECTORY_SEPARATOR.$file;
if(is_file($fullname)) {
$found = $fullname;
break;
}
}
return $found;
} /* }}} */
2011-07-21 13:17:06 +00:00
/**
* Load default settings + set
*/
2018-11-16 11:25:16 +00:00
require_once('../inc/inc.Version.php');
$ver = new SeedDMS_Version();
define("SEEDDMS_INSTALL", "on");
2018-11-16 11:25:16 +00:00
define("SEEDDMS_VERSION", $ver->version());
2011-07-21 13:17:06 +00:00
require_once('../inc/inc.ClassSettings.php');
2011-07-21 13:17:06 +00:00
$configDir = Settings::getConfigDir();
/**
* Check if ENABLE_INSTALL_TOOL exists in config dir
*/
if (!$configDir) {
echo "Fatal error! I could not even find a configuration directory.";
exit;
}
2011-07-21 13:17:06 +00:00
if (!file_exists($configDir."/ENABLE_INSTALL_TOOL")) {
2021-08-05 06:41:51 +00:00
echo "For installation of SeedDMS, you must create the file ".$configDir."/ENABLE_INSTALL_TOOL";
2011-07-21 13:17:06 +00:00
exit;
}
if (!file_exists($configDir."/settings.xml")) {
if(!copy("settings.xml.template_install", $configDir."/settings.xml")) {
echo "Could not create initial configuration file from template. Check directory permission of conf/.";
exit;
}
2011-07-21 13:17:06 +00:00
}
// Set folders settings
$settings = new Settings();
$settings->load($configDir."/settings.xml");
$rootDir = realpath ("..");
$installPath = realpath ("install.php");
$installPath = str_replace ("\\", "/" , $installPath);
$tmpToDel = str_replace ($rootDir, "" , $installPath);
$httpRoot = str_replace ($tmpToDel, "" , $_SERVER["SCRIPT_NAME"]).'/';
/* Correct rootDir to ensure it points to 'www' instead of the versioned
* seeddms dir.
*/
if(file_exists($rootDir.'/../www'))
$rootDir = realpath($rootDir.'/..').'/www';
$rootDir = str_replace ("\\", "/" , $rootDir) . "/";
2011-07-21 13:17:06 +00:00
do {
$httpRoot = str_replace ("//", "/" , $httpRoot, $count);
} while ($count<>0);
2021-07-23 11:40:42 +00:00
$msg = '';
if($rootDir != $settings->_rootDir) {
$msg = "Your Root directory has been modified to fit your installation path!";
}
$settings->_rootDir = $rootDir;
2021-07-23 11:40:42 +00:00
if(!$settings->_contentDir || !is_dir($settings->_contentDir)) {
$settings->_contentDir = realpath($settings->_rootDir."..") . '/data/';
$settings->_luceneDir = $settings->_contentDir . 'lucene/';
$settings->_stagingDir = $settings->_contentDir . 'staging/';
$settings->_cacheDir = $settings->_contentDir . 'cache/';
2018-03-14 09:15:48 +00:00
$settings->_backupDir = $settings->_contentDir . 'backup/';
2016-01-26 06:58:40 +00:00
} else {
if(!$settings->_cacheDir) {
$settings->_cacheDir = $settings->_contentDir . 'cache/';
}
}
2021-07-23 11:40:42 +00:00
if($settings->_dbDriver == 'sqlite') {
if(!$settings->_dbDatabase || !file_exists($settings->_dbDatabase)) {
$settings->_dbDatabase = $settings->_contentDir.'content.db';
}
}
$settings->_httpRoot = $httpRoot;
2011-07-21 13:17:06 +00:00
2013-02-04 09:30:11 +00:00
if(isset($settings->_extraPath))
ini_set('include_path', $settings->_extraPath. PATH_SEPARATOR .ini_get('include_path'));
2011-07-21 13:17:06 +00:00
/**
* Include GUI + Language
*/
2016-01-26 06:58:40 +00:00
$theme = "bootstrap";
2011-07-21 13:17:06 +00:00
include("../inc/inc.Language.php");
2013-04-12 07:09:32 +00:00
include "../languages/en_GB/lang.inc";
2011-07-21 13:17:06 +00:00
include("../inc/inc.ClassUI.php");
include("class.Install.php");
2011-07-21 13:17:06 +00:00
$view = new SeedDMS_View_Install(array('settings'=>$settings, 'session'=>null, 'sitename'=>'SeedDMS', 'printdisclaimer'=>0, 'showmissingtranslations'=>0, 'absbaseprefix'=>'/', 'enabledropfolderlist'=>0, 'enablemenutasks'=>0, 'configdir'=>$configDir));
2021-07-23 11:40:42 +00:00
$view->install($msg);
2011-07-21 13:17:06 +00:00