141 lines
4.6 KiB
PHP
141 lines
4.6 KiB
PHP
<?php
|
|
|
|
error_reporting(E_ALL);
|
|
ini_set('display_errors', 'on');
|
|
|
|
class SystemExit extends Exception {}
|
|
try {
|
|
|
|
$pageTitle = "Upgrade";
|
|
include('header.php');
|
|
|
|
require_once('config.php');
|
|
require_once('setup/version.php');
|
|
if (!isset($NEL_SETUP_VERSION_CONFIGURED)) {
|
|
$NEL_SETUP_VERSION_CONFIGURED = 1;
|
|
}
|
|
|
|
?>
|
|
|
|
<div style="margin-left: auto; margin-right: auto; max-width: 1024px;">
|
|
|
|
<?php if ($_POST) { ?>
|
|
|
|
<?php
|
|
|
|
// NOTE: If a config upgrade requires new information, modify the
|
|
// upgrade confirmation form at the bottom of this script.
|
|
|
|
require_once('database.php');
|
|
|
|
if ($continue) {
|
|
if (!extension_loaded('mcrypt')) {
|
|
printalert("danger", "The mcrypt extension is missing. Please check your PHP configuration");
|
|
$continue = false;
|
|
}
|
|
}
|
|
|
|
if (file_exists("role_support")) {
|
|
$continue = upgrade_support_databases($continue);
|
|
}
|
|
|
|
if (file_exists("role_service")) {
|
|
$continue = upgrade_service_databases($continue);
|
|
}
|
|
|
|
if (file_exists("role_domain")) {
|
|
$continue = upgrade_domain_databases($continue);
|
|
}
|
|
|
|
// Rewrite config.php
|
|
if ($continue) {
|
|
$config = file_get_contents($PRIVATE_PHP_PATH . "/setup/config/config.php");
|
|
if (!$config) {
|
|
printalert("danger", "Cannot read <em>config.php</em>");
|
|
$continue = false;
|
|
} else {
|
|
$cwd = getcwd();
|
|
$config = str_replace("%privatePhpDirectory%", addslashes($PRIVATE_PHP_PATH), $config);
|
|
$config = str_replace("%publicPhpDirectory%", addslashes($PUBLIC_PHP_PATH), $config);
|
|
$config = str_replace("%nelSqlHostname%", addslashes($cfg['db']['shard']['host']), $config);
|
|
$config = str_replace("%nelSqlUsername%", addslashes($cfg['db']['shard']['user']), $config);
|
|
$config = str_replace("%nelSqlPassword%", addslashes($cfg['db']['shard']['pass']), $config);
|
|
$config = str_replace("%nelDatabase%", addslashes($cfg['db']['shard']['name']), $config);
|
|
$config = str_replace("%toolDatabase%", addslashes($cfg['db']['tool']['name']), $config);
|
|
$config = str_replace("%amsSqlHostname%", addslashes($cfg['db']['lib']['host']), $config);
|
|
$config = str_replace("%amsSqlUsername%", addslashes($cfg['db']['lib']['user']), $config);
|
|
$config = str_replace("%amsSqlPassword%", addslashes($cfg['db']['lib']['pass']), $config);
|
|
$config = str_replace("%amsDatabase%", addslashes($cfg['db']['web']['name']), $config);
|
|
$config = str_replace("%amsLibDatabase%", addslashes($cfg['db']['lib']['name']), $config);
|
|
$config = str_replace("%nelSetupPassword%", addslashes($NEL_SETUP_PASSWORD), $config);
|
|
$config = str_replace("%nelDomainName%", addslashes($NEL_DOMAIN_NAME), $config);
|
|
$config = str_replace("%nelSetupVersion%", addslashes($NEL_SETUP_VERSION), $config);
|
|
$config = str_replace("%cryptKey%", addslashes($cfg['crypt']['key']), $config);
|
|
$config = str_replace("%cryptKeyIMAP%", addslashes($SUPPORT_GROUP_IMAP_CRYPTKEY), $config);
|
|
if ($NEL_SETUP_VERSION_CONFIGURED < 2) {
|
|
$config = str_replace("%domainDatabase%", "mini01", $config);
|
|
} else {
|
|
$config = str_replace("%domainDatabase%", addslashes($cfg['db']['ring']['name']), $config);
|
|
}
|
|
if (file_put_contents("config.php", $config)) {
|
|
printalert("success", "Generated <em>config.php</em>");
|
|
} else {
|
|
printalert("danger", "Cannot write to <em>config.php</em>");
|
|
$continue = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Create config_user.php if it doesn't exist yet
|
|
if ($continue && !file_exists("config_user.php")) {
|
|
$configUser = file_get_contents($PRIVATE_PHP_PATH . "/setup/config/config_user.php");
|
|
if (!$configUser) {
|
|
printalert("danger", "Cannot read <em>config_user.php</em>");
|
|
$continue = false;
|
|
} else {
|
|
if (file_put_contents("config_user.php", $configUser)) {
|
|
printalert("success", "Copied <em>config_user.php</em>");
|
|
} else {
|
|
printalert("danger", "Cannot write to <em>config.php</em>");
|
|
$continue = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($continue) {
|
|
printalert("success", "Upgrade complete");
|
|
}
|
|
|
|
?>
|
|
|
|
<p>
|
|
<a class="btn btn-primary" href="index.php">Continue</a>
|
|
</p>
|
|
|
|
<?php } else { // NOTE: This is where you may also ask for new configuration fields ?>
|
|
|
|
<div class="panel panel-danger">
|
|
<div class="panel-heading"><span class="glyphicon glyphicon-hdd"></span> Backup</div>
|
|
<div class="panel-body">
|
|
It is strongly recommended to create a backup of your installation before proceeding with an upgrade!
|
|
</div>
|
|
</div>
|
|
|
|
<form class="form" role="form" method="POST" action="" enctype="application/x-www-form-urlencoded">
|
|
<div class="input-group">
|
|
<input name="submit" type="submit" value="Upgrade" class="btn btn-primary">
|
|
</div>
|
|
</form>
|
|
|
|
<?php } ?>
|
|
|
|
</div>
|
|
|
|
<?php
|
|
|
|
include('footer.php');
|
|
|
|
}
|
|
catch (SystemExit $e) { /* do nothing */ }
|
|
|
|
?>
|