4078 lines
155 KiB
PHP
4078 lines
155 KiB
PHP
<?php
|
|
use Froxlor\Database\Database;
|
|
use Froxlor\Settings;
|
|
|
|
/**
|
|
* This file is part of the Froxlor project.
|
|
* Copyright (c) 2010 the Froxlor Team (see authors).
|
|
*
|
|
* For the full copyright and license information, please view the COPYING
|
|
* file that was distributed with this source code. You can also view the
|
|
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
|
|
*
|
|
* @copyright (c) the authors
|
|
* @author Froxlor team <team@froxlor.org> (2010-)
|
|
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
|
* @package Install
|
|
*
|
|
*/
|
|
if (! defined('_CRON_UPDATE')) {
|
|
if (! defined('AREA') || (defined('AREA') && AREA != 'admin') || ! isset($userinfo['loginname']) || (isset($userinfo['loginname']) && $userinfo['loginname'] == '')) {
|
|
header('Location: ../../../../index.php');
|
|
exit();
|
|
}
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9-r0')) {
|
|
|
|
showUpdateStep("Updating from 0.9-r0 to 0.9-r1", false);
|
|
showUpdateStep("Performing database updates");
|
|
|
|
// add missing database-updates if necessary (old: update/update_database.php)
|
|
if (Settings::Get('system.dbversion') !== null && (int) Settings::Get('system.dbversion') < 1) {
|
|
Database::query("
|
|
ALTER TABLE `panel_databases` ADD `dbserver` INT( 11 ) UNSIGNED NOT NULL default '0';");
|
|
}
|
|
if (Settings::Get('system.dbversion') !== null && (int) Settings::Get('system.dbversion') < 2) {
|
|
Database::query("ALTER TABLE `panel_ipsandports` CHANGE `ssl_cert` `ssl_cert_file` VARCHAR( 255 ) NOT NULL,
|
|
ADD `ssl_key_file` VARCHAR( 255 ) NOT NULL,
|
|
ADD `ssl_ca_file` VARCHAR( 255 ) NOT NULL,
|
|
ADD `default_vhostconf_domain` TEXT NOT NULL;");
|
|
|
|
Database::query("INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'ssl_key_file', `value` = '';");
|
|
Database::query("INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'ssl_ca_file', `value` = '';");
|
|
}
|
|
// eof(lostuff)
|
|
|
|
// remove billing tables in database
|
|
define('TABLE_BILLING_INVOICES', 'billing_invoices');
|
|
define('TABLE_BILLING_INVOICES_ADMINS', 'billing_invoices_admins');
|
|
define('TABLE_BILLING_INVOICE_CHANGES', 'billing_invoice_changes');
|
|
define('TABLE_BILLING_INVOICE_CHANGES_ADMINS', 'billing_invoice_changes_admins');
|
|
define('TABLE_BILLING_SERVICE_CATEGORIES', 'billing_service_categories');
|
|
define('TABLE_BILLING_SERVICE_CATEGORIES_ADMINS', 'billing_service_categories_admins');
|
|
define('TABLE_BILLING_SERVICE_DOMAINS_TEMPLATES', 'billing_service_domains_templates');
|
|
define('TABLE_BILLING_SERVICE_OTHER', 'billing_service_other');
|
|
define('TABLE_BILLING_SERVICE_OTHER_TEMPLATES', 'billing_service_other_templates');
|
|
define('TABLE_BILLING_TAXCLASSES', 'billing_taxclasses');
|
|
define('TABLE_BILLING_TAXRATES', 'billing_taxrates');
|
|
|
|
Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_CATEGORIES . "`;");
|
|
Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_CATEGORIES_ADMINS . "`;");
|
|
Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_DOMAINS_TEMPLATES . "`;");
|
|
Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_OTHER . "`;");
|
|
Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_SERVICE_OTHER_TEMPLATES . "`;");
|
|
Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_TAXCLASSES . "`;");
|
|
Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_TAXRATES . "`;");
|
|
Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_INVOICES . "`;");
|
|
Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_INVOICES_ADMINS . "`;");
|
|
Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_INVOICE_CHANGES . "`;");
|
|
Database::query("DROP TABLE IF EXISTS `" . TABLE_BILLING_INVOICE_CHANGES_ADMINS . "`;");
|
|
|
|
// update panel_domains, panel_customers, panel_admins
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "`
|
|
DROP `firstname`,
|
|
DROP `title`,
|
|
DROP `company`,
|
|
DROP `street`,
|
|
DROP `zipcode`,
|
|
DROP `city`,
|
|
DROP `country`,
|
|
DROP `phone`,
|
|
DROP `fax`,
|
|
DROP `taxid`,
|
|
DROP `contract_date`,
|
|
DROP `contract_number`,
|
|
DROP `contract_details`,
|
|
DROP `included_domains_qty`,
|
|
DROP `included_domains_tld`,
|
|
DROP `additional_traffic_fee`,
|
|
DROP `additional_traffic_unit`,
|
|
DROP `additional_diskspace_fee`,
|
|
DROP `additional_diskspace_unit`,
|
|
DROP `taxclass`,
|
|
DROP `setup_fee`,
|
|
DROP `interval_fee`,
|
|
DROP `interval_length`,
|
|
DROP `interval_type`,
|
|
DROP `interval_payment`,
|
|
DROP `calc_tax`,
|
|
DROP `term_of_payment`,
|
|
DROP `payment_every`,
|
|
DROP `payment_method`,
|
|
DROP `bankaccount_holder`,
|
|
DROP `bankaccount_number`,
|
|
DROP `bankaccount_blz`,
|
|
DROP `bankaccount_bank`,
|
|
DROP `service_active`,
|
|
DROP `servicestart_date`,
|
|
DROP `serviceend_date`,
|
|
DROP `lastinvoiced_date`,
|
|
DROP `lastinvoiced_date_traffic`,
|
|
DROP `lastinvoiced_date_diskspace`,
|
|
DROP `customer_categories_once`,
|
|
DROP `customer_categories_period`,
|
|
DROP `invoice_fee`,
|
|
DROP `invoice_fee_hosting`,
|
|
DROP `invoice_fee_hosting_customers`,
|
|
DROP `invoice_fee_domains`,
|
|
DROP `invoice_fee_traffic`,
|
|
DROP `invoice_fee_diskspace`,
|
|
DROP `invoice_fee_other`,
|
|
DROP `edit_billingdata`;");
|
|
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "`
|
|
DROP `taxid`,
|
|
DROP `title`,
|
|
DROP `country`,
|
|
DROP `additional_service_description`,
|
|
DROP `contract_date`,
|
|
DROP `contract_number`,
|
|
DROP `contract_details`,
|
|
DROP `included_domains_qty`,
|
|
DROP `included_domains_tld`,
|
|
DROP `additional_traffic_fee`,
|
|
DROP `additional_traffic_unit`,
|
|
DROP `additional_diskspace_fee`,
|
|
DROP `additional_diskspace_unit`,
|
|
DROP `taxclass`,
|
|
DROP `setup_fee`,
|
|
DROP `interval_fee`,
|
|
DROP `interval_length`,
|
|
DROP `interval_type`,
|
|
DROP `interval_payment`,
|
|
DROP `calc_tax`,
|
|
DROP `term_of_payment`,
|
|
DROP `payment_every`,
|
|
DROP `payment_method`,
|
|
DROP `bankaccount_holder`,
|
|
DROP `bankaccount_number`,
|
|
DROP `bankaccount_blz`,
|
|
DROP `bankaccount_bank`,
|
|
DROP `service_active`,
|
|
DROP `servicestart_date`,
|
|
DROP `serviceend_date`,
|
|
DROP `lastinvoiced_date`,
|
|
DROP `lastinvoiced_date_traffic`,
|
|
DROP `lastinvoiced_date_diskspace`,
|
|
DROP `invoice_fee`,
|
|
DROP `invoice_fee_hosting`,
|
|
DROP `invoice_fee_domains`,
|
|
DROP `invoice_fee_traffic`,
|
|
DROP `invoice_fee_diskspace`,
|
|
DROP `invoice_fee_other`;");
|
|
Database::query("ALTER TABLE `panel_domains`
|
|
DROP `taxclass`,
|
|
DROP `setup_fee`,
|
|
DROP `interval_fee`,
|
|
DROP `interval_length`,
|
|
DROP `interval_type`,
|
|
DROP `interval_payment`,
|
|
DROP `service_active`,
|
|
DROP `servicestart_date`,
|
|
DROP `serviceend_date`,
|
|
DROP `lastinvoiced_date`;");
|
|
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "`
|
|
WHERE `settinggroup` = 'billing';");
|
|
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "`
|
|
MODIFY `traffic` BIGINT(30),
|
|
MODIFY `traffic_used` BIGINT(30)");
|
|
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9-r1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9-r1')) {
|
|
showUpdateStep("Updating from 0.9-r1 to 0.9-r2", false);
|
|
|
|
showUpdateStep("Updating settings table");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('spf', 'use_spf', '0');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('spf', 'spf_entry', '@ IN TXT \"v=spf1 a mx -all\"');");
|
|
Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `varname` = 'froxlor_graphic' WHERE `varname` = 'syscp_graphic'");
|
|
|
|
if (Settings::Get('admin.syscp_graphic') !== null && Settings::Get('admin.syscp_graphic') != '') {
|
|
Settings::Set('admin.froxlor_graphic', Settings::Get('admin.syscp_graphic'));
|
|
} else {
|
|
Settings::Set('admin.froxlor_graphic', 'images/header.gif');
|
|
}
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9-r2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9-r2')) {
|
|
|
|
showUpdateStep("Updating from 0.9-r2 to 0.9-r3", false);
|
|
showUpdateStep("Updating tables");
|
|
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'debug_cron', '0');");
|
|
Database::query("ALTER TABLE `" . TABLE_MAIL_AUTORESPONDER . "` ADD `date_from` int(15) NOT NULL default '-1' AFTER `enabled`");
|
|
Database::query("ALTER TABLE `" . TABLE_MAIL_AUTORESPONDER . "` ADD `date_until` int(15) NOT NULL default '-1' AFTER `date_from`");
|
|
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9-r3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9-r3')) {
|
|
showUpdateStep("Updating from 0.9-r3 to 0.9-r4", false);
|
|
showUpdateStep("Creating new table 'cronjobs_run'");
|
|
|
|
Database::query("CREATE TABLE IF NOT EXISTS `cronjobs_run` (
|
|
`id` bigint(20) NOT NULL auto_increment,
|
|
`module` varchar(250) NOT NULL,
|
|
`cronfile` varchar(250) NOT NULL,
|
|
`lastrun` int(15) NOT NULL DEFAULT '0',
|
|
`interval` varchar(100) NOT NULL DEFAULT '5 MINUTE',
|
|
`isactive` tinyint(1) DEFAULT '1',
|
|
`desc_lng_key` varchar(100) NOT NULL DEFAULT 'cron_unknown_desc',
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=MyISAM;");
|
|
|
|
lastStepStatus(0);
|
|
showUpdateStep("Inserting new values into table");
|
|
|
|
// checking for active ticket-module
|
|
$ticket_active = 0;
|
|
if ((int) Settings::Get('ticket.enabled') == 1) {
|
|
$ticket_active = 1;
|
|
}
|
|
|
|
// checking for active aps-module
|
|
$aps_active = 0;
|
|
if ((int) Settings::Get('aps.aps_active') == 1) {
|
|
$aps_active = 1;
|
|
}
|
|
|
|
// checking for active autoresponder-module
|
|
$ar_active = 0;
|
|
if ((int) Settings::Get('autoresponder.autoresponder_active') == 1) {
|
|
$ar_active = 1;
|
|
}
|
|
|
|
Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/core', 'cron_tasks.php', '5 MINUTE', '1', 'cron_tasks');");
|
|
Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/core', 'cron_legacy.php', '5 MINUTE', '1', 'cron_legacy');");
|
|
Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/aps', 'cron_apsinstaller.php', '5 MINUTE', " . $aps_active . ", 'cron_apsinstaller');");
|
|
Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/autoresponder', 'cron_autoresponder.php', '5 MINUTE', " . $ar_active . ", 'cron_autoresponder');");
|
|
Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/aps', 'cron_apsupdater.php', '1 HOUR', " . $aps_active . ", 'cron_apsupdater');");
|
|
Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/core', 'cron_traffic.php', '1 DAY', '1', 'cron_traffic');");
|
|
Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/ticket', 'cron_used_tickets_reset.php', '1 MONTH', '" . $ticket_active . "', 'cron_ticketsreset');");
|
|
Database::query("INSERT INTO `cronjobs_run` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/ticket', 'cron_ticketarchive.php', '1 MONTH', '" . $ticket_active . "', 'cron_ticketarchive');");
|
|
|
|
lastStepStatus(0);
|
|
showUpdateStep("Updating old settings values");
|
|
|
|
Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = 'Froxlor Support' WHERE `settinggroup`='ticket' AND `varname`='noreply_name' AND `value`='SysCP Support'");
|
|
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9-r4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9-r4')) {
|
|
showUpdateStep("Updating from 0.9-r4 to 0.9 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9')) {
|
|
|
|
showUpdateStep("Updating from 0.9 to 0.9.1", false);
|
|
|
|
showUpdateStep("Updating settings values");
|
|
Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = 'images/header.gif' WHERE `varname` = 'froxlor_graphic' AND `value` = 'images/header.png'");
|
|
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.1 to 0.9.2", false);
|
|
|
|
showUpdateStep("Checking whether last-system-guid is sane");
|
|
$result_stmt = Database::query("SELECT MAX(`guid`) as `latestguid` FROM `" . TABLE_PANEL_CUSTOMERS . "`");
|
|
$result = $result_stmt->fetch(PDO::FETCH_ASSOC);
|
|
|
|
if (isset($result['latestguid']) && (int) $result['latestguid'] > 0 && $result['latestguid'] != Settings::Get('system.lastguid')) {
|
|
checkLastGuid();
|
|
lastStepStatus(1, 'fixed');
|
|
} else {
|
|
lastStepStatus(0);
|
|
}
|
|
\Froxlor\Froxlor::updateToVersion('0.9.2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.2')) {
|
|
showUpdateStep("Updating from 0.9.2 to 0.9.3");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.3')) {
|
|
|
|
showUpdateStep("Updating from 0.9.3 to 0.9.3-svn1", false);
|
|
|
|
showUpdateStep("Updating tables");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'password_min_length', '0');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'store_index_file_subs', '1');");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.3-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.3-svn1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.3-svn1 to 0.9.3-svn2", false);
|
|
|
|
showUpdateStep("Updating tables");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'adminmail_defname', 'Froxlor Administrator');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'adminmail_return', '');");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.3-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.3-svn2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.3-svn2 to 0.9.3-svn3", false);
|
|
|
|
showUpdateStep("Correcting cron start-times");
|
|
// set specific times for some crons (traffic only at night, etc.)
|
|
$ts = mktime(0, 0, 0, date('m', time()), date('d', time()), date('Y', time()));
|
|
Database::query("UPDATE `" . TABLE_PANEL_CRONRUNS . "` SET `lastrun` = '" . $ts . "' WHERE `cronfile` ='cron_traffic.php';");
|
|
$ts = mktime(1, 0, 0, date('m', time()), date('d', time()), date('Y', time()));
|
|
Database::query("UPDATE `" . TABLE_PANEL_CRONRUNS . "` SET `lastrun` = '" . $ts . "' WHERE `cronfile` ='cron_used_tickets_reset.php';");
|
|
Database::query("UPDATE `" . TABLE_PANEL_CRONRUNS . "` SET `lastrun` = '" . $ts . "' WHERE `cronfile` ='cron_ticketarchive.php';");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new language: Polish");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_LANGUAGE . "` SET `language` = 'Polski', `file` = 'lng/polish.lng.php'");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.3-svn3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.3-svn3')) {
|
|
|
|
showUpdateStep("Updating from 0.9.3-svn3 to 0.9.3-svn4", false);
|
|
|
|
showUpdateStep("Adding new DKIM settings");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_algorithm', 'all');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_add_adsp', '1');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_keylength', '1024');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_servicetype', '0');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_add_adsppolicy', '1');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('dkim', 'dkim_notes', '');");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.3-svn4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.3-svn4')) {
|
|
|
|
showUpdateStep("Updating from 0.9.3-svn4 to 0.9.3-svn5", false);
|
|
|
|
showUpdateStep("Adding new settings");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'stdsubdomain', '');");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.3-svn5');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.3-svn5')) {
|
|
showUpdateStep("Updating from 0.9.3-svn5 to 0.9.4 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.4')) {
|
|
|
|
showUpdateStep("Updating from 0.9.4 to 0.9.4-svn1", false);
|
|
|
|
/**
|
|
* some users might still have the setting in their database
|
|
* because we already had this back in older versions.
|
|
* To not confuse Froxlor, we just update old settings.
|
|
*/
|
|
if (Settings::Get('system.awstats_path') !== null && Settings::Get('system.awstats_path') != '') {
|
|
showUpdateStep("Updating awstats path setting");
|
|
Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '/usr/bin/' WHERE `settinggroup` = 'system' AND `varname` = 'awstats_path';");
|
|
lastStepStatus(0);
|
|
} elseif (Settings::Get('system.awstats_path') == null) {
|
|
showUpdateStep("Adding new awstats path setting");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'awstats_path', '/usr/bin/');");
|
|
lastStepStatus(0);
|
|
}
|
|
|
|
if (Settings::Get('system.awstats_domain_file') !== null && Settings::Get('system.awstats_domain_file') != '') {
|
|
showUpdateStep("Updating awstats configuration path setting");
|
|
Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `varname` = 'awstats_conf' WHERE `varname` = 'awstats_domain_file';");
|
|
} else {
|
|
showUpdateStep("Adding awstats configuration path settings");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'awstats_conf', '/etc/awstats/');");
|
|
}
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.4-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.4-svn1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.4-svn1 to 0.9.4-svn2", false);
|
|
|
|
$update_domains = isset($_POST['update_domainwildcardentry']) ? intval($_POST['update_domainwildcardentry']) : 0;
|
|
|
|
if ($update_domains != 1) {
|
|
$update_domains = 0;
|
|
}
|
|
|
|
if ($update_domains == 1) {
|
|
showUpdateStep("Updating domains with iswildcarddomain=yes");
|
|
$query = "SELECT `d`.`id` FROM `" . TABLE_PANEL_DOMAINS . "` `d`, `" . TABLE_PANEL_CUSTOMERS . "` `c` ";
|
|
$query .= "WHERE `parentdomainid`='0' AND `email_only` = '0' AND `d`.`customerid` = `c`.`customerid` AND `d`.`id` <> `c`.`standardsubdomain`";
|
|
$result = Database::query($query);
|
|
$updated_domains = 0;
|
|
while ($domain = $result->fetch(PDO::FETCH_ASSOC)) {
|
|
Database::query("UPDATE `" . TABLE_PANEL_DOMAINS . "` SET `iswildcarddomain` = '1' WHERE `id` ='" . (int) $domain['id'] . "'");
|
|
$updated_domains ++;
|
|
}
|
|
lastStepStatus(0, 'Updated ' . $updated_domains . ' domain(s)');
|
|
} else {
|
|
showUpdateStep("Won't update domains with iswildcarddomain=yes as requested");
|
|
lastStepStatus(1);
|
|
}
|
|
|
|
showUpdateStep("Updating database table definition for panel_domains");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` MODIFY `iswildcarddomain` tinyint(1) NOT NULL default '1';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.4-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.4-svn2')) {
|
|
showUpdateStep("Updating from 0.9.4-svn2 to 0.9.5 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.5');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.5')) {
|
|
|
|
showUpdateStep("Updating from 0.9.5 to 0.9.6-svn1", false);
|
|
|
|
showUpdateStep("Adding time-to-live configuration setting");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'defaultttl', '604800');");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Updating database table structure for panel_ticket_categories");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_TICKET_CATS . "` ADD `logicalorder` int(3) NOT NULL default '1' AFTER `adminid`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.6-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.6-svn1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.6-svn1 to 0.9.6-svn2", false);
|
|
|
|
$update_adminmail = isset($_POST['update_adminmail']) ? validate($_POST['update_adminmail'], 'update_adminmail') : false;
|
|
$do_update = true;
|
|
|
|
if ($update_adminmail !== false) {
|
|
showUpdateStep("Checking newly entered admin-mail");
|
|
if (! \PHPMailer\PHPMailer\PHPMailer::ValidateAddress($update_adminmail)) {
|
|
$do_update = false;
|
|
lastStepStatus(2, 'E-Mail still not valid, go back and try again');
|
|
} else {
|
|
$stmt = Database::prepare("
|
|
UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = :adminmail
|
|
WHERE `settinggroup` = 'panel' AND `varname` = 'adminmail';");
|
|
Database::pexecute($stmt, array(
|
|
'adminmail' => $update_adminmail
|
|
));
|
|
lastStepStatus(0);
|
|
}
|
|
}
|
|
|
|
if ($do_update) {
|
|
\Froxlor\Froxlor::updateToVersion('0.9.6-svn2');
|
|
}
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.6-svn2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.6-svn2 to 0.9.6-svn3", false);
|
|
|
|
$update_deferr_enable = isset($_POST['update_deferr_enable']) ? true : false;
|
|
|
|
$err500 = false;
|
|
$err401 = false;
|
|
$err403 = false;
|
|
$err404 = false;
|
|
|
|
showUpdateStep("Adding new webserver configurations to database");
|
|
if ($update_deferr_enable == true) {
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'enabled', '1');");
|
|
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'defaultwebsrverrhandler',
|
|
`varname` = :varname,
|
|
`value` = :err");
|
|
|
|
if (isset($_POST['update_deferr_500']) && trim($_POST['update_deferr_500']) != '') {
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'err500',
|
|
'err' => $_POST['update_deferr_500']
|
|
));
|
|
$err500 = true;
|
|
}
|
|
|
|
if (isset($_POST['update_deferr_401']) && trim($_POST['update_deferr_401']) != '') {
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'err401',
|
|
'err' => $_POST['update_deferr_401']
|
|
));
|
|
$err401 = true;
|
|
}
|
|
|
|
if (isset($_POST['update_deferr_403']) && trim($_POST['update_deferr_403']) != '') {
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'err403',
|
|
'err' => $_POST['update_deferr_403']
|
|
));
|
|
$err403 = true;
|
|
}
|
|
|
|
if (isset($_POST['update_deferr_404']) && trim($_POST['update_deferr_404']) != '') {
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'err404',
|
|
'err' => $_POST['update_deferr_404']
|
|
));
|
|
$err404 = true;
|
|
}
|
|
}
|
|
|
|
if (! $update_deferr_enable) {
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'enabled', '0');");
|
|
}
|
|
if (! $err401) {
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err401', '');");
|
|
}
|
|
if (! $err403) {
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err403', '');");
|
|
}
|
|
if (! $err404) {
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err404', '');");
|
|
}
|
|
if (! $err500) {
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err500', '');");
|
|
}
|
|
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.6-svn3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.6-svn3')) {
|
|
|
|
showUpdateStep("Updating from 0.9.6-svn3 to 0.9.6-svn4", false);
|
|
|
|
$update_deftic_priority = isset($_POST['update_deftic_priority']) ? intval($_POST['update_deftic_priority']) : 2;
|
|
|
|
showUpdateStep("Setting default support-ticket priority");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('ticket', 'default_priority', '" . (int) $update_deftic_priority . "');");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.6-svn4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.6-svn4')) {
|
|
|
|
showUpdateStep("Updating from 0.9.6-svn4 to 0.9.6-svn5", false);
|
|
|
|
$update_defsys_phpconfig = isset($_POST['update_defsys_phpconfig']) ? intval($_POST['update_defsys_phpconfig']) : 1;
|
|
|
|
if ($update_defsys_phpconfig != 1) {
|
|
showUpdateStep("Setting default php-configuration to user defined config #" . $update_defsys_phpconfig);
|
|
} else {
|
|
showUpdateStep("Adding default php-configuration setting to the database");
|
|
}
|
|
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'mod_fcgid_defaultini', '" . (int) $update_defsys_phpconfig . "');");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.6-svn5');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.6-svn5')) {
|
|
|
|
showUpdateStep("Updating from 0.9.6-svn5 to 0.9.6-svn6", false);
|
|
|
|
showUpdateStep("Adding new FTP-quota settings");
|
|
$update_defsys_ftpserver = isset($_POST['update_defsys_ftpserver']) ? intval($_POST['update_defsys_ftpserver']) : 'proftpd';
|
|
|
|
// add ftp server setting
|
|
$stmt = Database::prepare("INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'ftpserver', `value` = :value;");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $update_defsys_ftpserver
|
|
));
|
|
|
|
// add proftpd quota
|
|
Database::query("CREATE TABLE `ftp_quotalimits` (`name` varchar(30) default NULL, `quota_type` enum('user','group','class','all') NOT NULL default 'user', `per_session` enum('false','true') NOT NULL default 'false', `limit_type` enum('soft','hard') NOT NULL default 'hard', `bytes_in_avail` float NOT NULL, `bytes_out_avail` float NOT NULL, `bytes_xfer_avail` float NOT NULL, `files_in_avail` int(10) unsigned NOT NULL, `files_out_avail` int(10) unsigned NOT NULL, `files_xfer_avail` int(10) unsigned NOT NULL) ENGINE=MyISAM;");
|
|
Database::query("INSERT INTO `ftp_quotalimits` (`name`, `quota_type`, `per_session`, `limit_type`, `bytes_in_avail`, `bytes_out_avail`, `bytes_xfer_avail`, `files_in_avail`, `files_out_avail`, `files_xfer_avail`) VALUES ('froxlor', 'user', 'false', 'hard', 0, 0, 0, 0, 0, 0);");
|
|
Database::query("CREATE TABLE `ftp_quotatallies` (`name` varchar(30) NOT NULL, `quota_type` enum('user','group','class','all') NOT NULL, `bytes_in_used` float NOT NULL, `bytes_out_used` float NOT NULL, `bytes_xfer_used` float NOT NULL, `files_in_used` int(10) unsigned NOT NULL, `files_out_used` int(10) unsigned NOT NULL, `files_xfer_used` int(10) unsigned NOT NULL ) ENGINE=MyISAM;");
|
|
|
|
// fill quota tallies
|
|
$result_ftp_users_stmt = Database::query("SELECT username FROM `" . TABLE_FTP_USERS . "` WHERE 1;");
|
|
|
|
while ($row_ftp_users = $result_ftp_users_stmt->fetch(PDO::FETCH_ASSOC)) {
|
|
$result_ftp_quota_stmt = Database::query("
|
|
SELECT diskspace_used FROM `" . TABLE_PANEL_CUSTOMERS . "`
|
|
WHERE loginname = SUBSTRING_INDEX('" . $row_ftp_users['username'] . "', '" . Settings::Get('customer.ftpprefix') . "', 1);");
|
|
$row_ftp_quota = $result_ftp_quota_stmt->fetch(PDO::FETCH_ASSOC);
|
|
Database::query("INSERT INTO `ftp_quotatallies` (`name`, `quota_type`, `bytes_in_used`, `bytes_out_used`, `bytes_xfer_used`, `files_in_used`, `files_out_used`, `files_xfer_used`) VALUES ('" . $row_ftp_users['username'] . "', 'user', '" . $row_ftp_quota['diskspace_used'] . "'*1024, '0', '0', '0', '0', '0');");
|
|
}
|
|
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.6-svn6');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.6-svn6')) {
|
|
showUpdateStep("Updating from 0.9.6-svn6 to 0.9.6 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.6');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.6')) {
|
|
showUpdateStep("Updating from 0.9.6 to 0.9.7-svn1", false);
|
|
|
|
$update_customredirect_enable = isset($_POST['update_customredirect_enable']) ? 1 : 0;
|
|
$update_customredirect_default = isset($_POST['update_customredirect_default']) ? (int) $_POST['update_customredirect_default'] : 1;
|
|
|
|
showUpdateStep("Adding new tables to database");
|
|
Database::query("CREATE TABLE IF NOT EXISTS `redirect_codes` (
|
|
`id` int(5) NOT NULL auto_increment,
|
|
`code` varchar(3) NOT NULL,
|
|
`enabled` tinyint(1) DEFAULT '1',
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=MyISAM;");
|
|
|
|
Database::query("CREATE TABLE IF NOT EXISTS `domain_redirect_codes` (
|
|
`rid` int(5) NOT NULL,
|
|
`did` int(11) unsigned NOT NULL,
|
|
UNIQUE KEY `rc` (`rid`, `did`)
|
|
) ENGINE=MyISAM;");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Filling new tables with default data");
|
|
Database::query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (1, '---', 1);");
|
|
Database::query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (2, '301', 1);");
|
|
Database::query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (3, '302', 1);");
|
|
Database::query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (4, '303', 1);");
|
|
Database::query("INSERT INTO `redirect_codes` (`id`, `code`, `enabled`) VALUES (5, '307', 1);");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Updating domains");
|
|
$res = Database::query("SELECT `id` FROM `" . TABLE_PANEL_DOMAINS . "` ORDER BY `id` ASC");
|
|
$updated_domains = 0;
|
|
while ($d = $res->fetch(PDO::FETCH_ASSOC)) {
|
|
Database::query("INSERT INTO `domain_redirect_codes` (`rid`, `did`) VALUES ('" . (int) $update_customredirect_default . "', '" . (int) $d['id'] . "');");
|
|
$updated_domains ++;
|
|
}
|
|
lastStepStatus(0, 'Updated ' . $updated_domains . ' domain(s)');
|
|
|
|
showUpdateStep("Adding new settings");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('customredirect', 'enabled', '" . (int) $update_customredirect_enable . "');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('customredirect', 'default', '" . (int) $update_customredirect_default . "');");
|
|
lastStepStatus(0);
|
|
|
|
// need to fix default-error-copy-and-paste-shizzle
|
|
showUpdateStep("Checking if anything is ok with the default-error-handler");
|
|
if (Settings::Get('defaultwebsrverrhandler.err404') == null) {
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err404', '');");
|
|
}
|
|
if (Settings::Get('defaultwebsrverrhandler.err403') == null) {
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err403', '');");
|
|
}
|
|
if (Settings::Get('defaultwebsrverrhandler.err401') == null) {
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err401', '');");
|
|
}
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.7-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.7-svn1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.7-svn1 to 0.9.7-svn2", false);
|
|
|
|
showUpdateStep("Updating open_basedir due to security - issue");
|
|
$result = Database::query("SELECT `id` FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `documentroot` LIKE '%:%' AND `documentroot` NOT LIKE 'http://%' AND `openbasedir_path` = '0' AND `openbasedir` = '1'");
|
|
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
|
|
Database::query("UPDATE `" . TABLE_PANEL_DOMAINS . "` SET `openbasedir_path` = '1' WHERE `id` = '" . (int) $row['id'] . "'");
|
|
}
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.7-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.7-svn2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.7-svn2 to 0.9.7-svn3", false);
|
|
|
|
showUpdateStep("Updating database tables");
|
|
Database::query("ALTER TABLE `redirect_codes` ADD `desc` varchar(200) NOT NULL AFTER `code`;");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Updating field-values");
|
|
Database::query("UPDATE `redirect_codes` SET `desc` = 'rc_default' WHERE `code` = '---';");
|
|
Database::query("UPDATE `redirect_codes` SET `desc` = 'rc_movedperm' WHERE `code` = '301';");
|
|
Database::query("UPDATE `redirect_codes` SET `desc` = 'rc_found' WHERE `code` = '302';");
|
|
Database::query("UPDATE `redirect_codes` SET `desc` = 'rc_seeother' WHERE `code` = '303';");
|
|
Database::query("UPDATE `redirect_codes` SET `desc` = 'rc_tempred' WHERE `code` = '307';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.7-svn3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.7-svn3')) {
|
|
showUpdateStep("Updating from 0.9.7-svn3 to 0.9.7 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.7');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.7')) {
|
|
showUpdateStep("Updating from 0.9.7 to 0.9.8 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.8');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.8')) {
|
|
|
|
showUpdateStep("Updating from 0.9.8 to 0.9.9-svn1", false);
|
|
|
|
$update_defdns_mailentry = isset($_POST['update_defdns_mailentry']) ? '1' : '0';
|
|
showUpdateStep("Adding new settings");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'dns_createmailentry', '" . (int) $update_defdns_mailentry . "');");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.9-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.9-svn1')) {
|
|
showUpdateStep("Updating from 0.9.9-svn1 to 0.9.9 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.9');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.9')) {
|
|
|
|
showUpdateStep("Updating from 0.9.9 to 0.9.10-svn1", false);
|
|
|
|
showUpdateStep("Checking whether you are missing any settings", false);
|
|
$nonefound = true;
|
|
|
|
$update_httpuser = isset($_POST['update_httpuser']) ? $_POST['update_httpuser'] : false;
|
|
$update_httpgroup = isset($_POST['update_httpgroup']) ? $_POST['update_httpgroup'] : false;
|
|
|
|
if ($update_httpuser !== false) {
|
|
$nonefound = false;
|
|
showUpdateStep("Adding missing setting 'httpuser'");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = 'httpuser',
|
|
`value` = :user");
|
|
Database::pexecute($stmt, array(
|
|
':user' => $update_httpuser
|
|
));
|
|
lastStepStatus(0);
|
|
Settings::Set('system.httpuser', $update_httpuser);
|
|
}
|
|
|
|
if ($update_httpgroup !== false) {
|
|
$nonefound = false;
|
|
showUpdateStep("Adding missing setting 'httpgroup'");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = 'httpgroup',
|
|
`value` = :grp");
|
|
Database::pexecute($stmt, array(
|
|
':grp' => $update_httpgroup
|
|
));
|
|
lastStepStatus(0);
|
|
Settings::Set('system.httpgroup', $update_httpgroup);
|
|
}
|
|
|
|
$result_stmt = Database::query("SELECT * FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'debug_cron'");
|
|
$result = $result_stmt->fetch(PDO::FETCH_ASSOC);
|
|
|
|
if (! isset($result) || ! isset($result['value'])) {
|
|
$nonefound = false;
|
|
showUpdateStep("Adding missing setting 'debug_cron'");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'debug_cron', '0');");
|
|
lastStepStatus(0);
|
|
}
|
|
|
|
if ($nonefound) {
|
|
showUpdateStep("No missing settings found");
|
|
lastStepStatus(0);
|
|
}
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.10-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.10-svn1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.10-svn1 to 0.9.10-svn2", false);
|
|
|
|
showUpdateStep("Updating database table definition for panel_databases");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DATABASES . "` ADD `apsdb` tinyint(1) NOT NULL default '0' AFTER `dbserver`;");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding APS databases to customers overview");
|
|
$count_dbupdates = 0;
|
|
Database::needRoot(true);
|
|
$result = Database::query("SHOW DATABASES;");
|
|
Database::needRoot(false);
|
|
|
|
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
|
|
|
|
if (preg_match('/^web([0-9]+)aps([0-9]+)$/', $row['Database'], $matches)) {
|
|
$cid = $matches[1];
|
|
$databasedescription = 'APS DB';
|
|
$result = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_DATABASES . "` SET
|
|
`customerid` = :cid,
|
|
`databasename` = :dbname,
|
|
`description` = :dbdesc,
|
|
`dbserver` = '0',
|
|
`apsdb` = '1'");
|
|
Database::pexecute($result, array(
|
|
'cid' => $cid,
|
|
'dbname' => $row['Database'],
|
|
'dbdesc' => $databasedescription
|
|
));
|
|
Database::query('UPDATE `' . TABLE_PANEL_CUSTOMERS . '` SET `mysqls_used`=`mysqls_used`+1 WHERE `customerid`="' . (int) $cid . '"');
|
|
$count_dbupdates ++;
|
|
}
|
|
}
|
|
|
|
if ($count_dbupdates > 0) {
|
|
lastStepStatus(0, "Found " . $count_dbupdates . " customer APS databases");
|
|
} else {
|
|
lastStepStatus(0, "None found");
|
|
}
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.10-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.10-svn2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.10-svn2 to 0.9.10", false);
|
|
|
|
$update_directlyviahostname = isset($_POST['update_directlyviahostname']) ? (int) $_POST['update_directlyviahostname'] : '0';
|
|
|
|
showUpdateStep("Adding new settings");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'froxlordirectlyviahostname', '" . (int) $update_directlyviahostname . "');");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.10');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.10')) {
|
|
showUpdateStep("Updating from 0.9.10 to 0.9.11-svn1", false);
|
|
|
|
$update_pwdregex = isset($_POST['update_pwdregex']) ? $_POST['update_pwdregex'] : '';
|
|
|
|
showUpdateStep("Adding new settings");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'panel',
|
|
`varname` = 'password_regex',
|
|
`value` = :regex");
|
|
Database::pexecute($stmt, array(
|
|
'regex' => $update_pwdregex
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.11-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.11-svn1')) {
|
|
showUpdateStep("Updating from 0.9.11-svn1 to 0.9.11-svn2", false);
|
|
|
|
showUpdateStep("Adding perl/CGI directory fields");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_HTACCESS . "` ADD `options_cgi` tinyint(1) NOT NULL default '0' AFTER `error401path`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `perlenabled` tinyint(1) NOT NULL default '0' AFTER `aps_packages_used`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.11-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.11-svn2')) {
|
|
showUpdateStep("Updating from 0.9.11-svn2 to 0.9.11-svn3", false);
|
|
|
|
$update_perlpath = isset($_POST['update_perlpath']) ? $_POST['update_perlpath'] : '/usr/bin/perl';
|
|
|
|
showUpdateStep("Adding new settings");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = 'perl_path',
|
|
`value` = :path");
|
|
Database::pexecute($stmt, array(
|
|
'path' => $update_perlpath
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.11-svn3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.11-svn3')) {
|
|
showUpdateStep("Updating from 0.9.11-svn3 to 0.9.11 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.11');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.11')) {
|
|
showUpdateStep("Updating from 0.9.11 to 0.9.12-svn1", false);
|
|
|
|
$update_fcgid_ownvhost = isset($_POST['update_fcgid_ownvhost']) ? (int) $_POST['update_fcgid_ownvhost'] : '0';
|
|
$update_fcgid_httpuser = isset($_POST['update_fcgid_httpuser']) ? $_POST['update_fcgid_httpuser'] : 'froxlorlocal';
|
|
$update_fcgid_httpgroup = isset($_POST['update_fcgid_httpgroup']) ? $_POST['update_fcgid_httpgroup'] : 'froxlorlocal';
|
|
|
|
if ($update_fcgid_httpuser == '') {
|
|
$update_fcgid_httpuser = 'froxlorlocal';
|
|
}
|
|
if ($update_fcgid_httpgroup == '') {
|
|
$update_fcgid_httpgroup = 'froxlorlocal';
|
|
}
|
|
|
|
showUpdateStep("Adding new settings");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = :varname,
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'mod_fcgid_ownvhost',
|
|
'value' => $update_fcgid_ownvhost
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'mod_fcgid_httpuser',
|
|
'value' => $update_fcgid_httpuser
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'mod_fcgid_httpgroup',
|
|
'value' => $update_fcgid_httpgroup
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.12-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.12-svn1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.12-svn1 to 0.9.12-svn2", false);
|
|
|
|
$update_perl_suexecworkaround = isset($_POST['update_perl_suexecworkaround']) ? (int) $_POST['update_perl_suexecworkaround'] : '0';
|
|
$update_perl_suexecpath = isset($_POST['update_perl_suexecpath']) ? \Froxlor\FileDir::makeCorrectDir($_POST['update_perl_suexecpath']) : '/var/www/cgi-bin/';
|
|
|
|
if ($update_perl_suexecpath == '') {
|
|
$update_perl_suexecpath = '/var/www/cgi-bin/';
|
|
}
|
|
|
|
showUpdateStep("Adding new settings for perl/CGI");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'perl',
|
|
`varname` = :varname,
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'suexecworkaround',
|
|
'value' => $update_perl_suexecworkaround
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'suexecpath',
|
|
'value' => $update_perl_suexecpath
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.12-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.12-svn2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.12-svn2 to 0.9.12-svn3", false);
|
|
|
|
showUpdateStep("Adding new field to domain table");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `ismainbutsubto` int(11) unsigned NOT NULL default '0' AFTER `mod_fcgid_maxrequests`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.12-svn3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.12-svn3')) {
|
|
|
|
showUpdateStep("Updating from 0.9.12-svn3 to 0.9.12-svn4", false);
|
|
|
|
$update_awstats_awstatspath = isset($_POST['update_awstats_awstatspath']) ? \Froxlor\FileDir::makeCorrectDir($_POST['update_awstats_awstatspath']) : Settings::Get('system.awstats_path');
|
|
|
|
showUpdateStep("Adding new settings for awstats");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = 'awstats_awstatspath',
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $update_awstats_awstatspath
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.12-svn4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.12-svn4')) {
|
|
|
|
showUpdateStep("Updating from 0.9.12-svn4 to 0.9.12-svn5", false);
|
|
|
|
showUpdateStep("Setting ticket-usage-reset cronjob interval to 1 day");
|
|
Database::query("UPDATE `cronjobs_run` SET `interval`='1 DAY' WHERE `cronfile`='cron_used_tickets_reset.php';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.12-svn5');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.12-svn5')) {
|
|
|
|
showUpdateStep("Updating from 0.9.12-svn5 to 0.9.12-svn6", false);
|
|
|
|
showUpdateStep("Adding new field to table 'panel_htpasswds'");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_HTPASSWDS . "` ADD `authname` varchar(255) NOT NULL default 'Restricted Area' AFTER `password`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.12-svn6');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.12-svn6')) {
|
|
showUpdateStep("Updating from 0.9.12-svn6 to 0.9.12 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.12');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.12')) {
|
|
|
|
showUpdateStep("Updating from 0.9.12 to 0.9.13-svn1", false);
|
|
|
|
showUpdateStep("Adding new fields to admin-table");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` ADD `email_autoresponder` int(5) NOT NULL default '0' AFTER `aps_packages_used`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` ADD `email_autoresponder_used` int(5) NOT NULL default '0' AFTER `email_autoresponder`;");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new fields to customer-table");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `email_autoresponder` int(5) NOT NULL default '0' AFTER `perlenabled`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `email_autoresponder_used` int(5) NOT NULL default '0' AFTER `email_autoresponder`;");
|
|
lastStepStatus(0);
|
|
|
|
if ((int) Settings::Get('autoresponder.autoresponder_active') == 1) {
|
|
$update_autoresponder_default = isset($_POST['update_autoresponder_default']) ? intval_ressource($_POST['update_autoresponder_default']) : 0;
|
|
if (isset($_POST['update_autoresponder_default_ul'])) {
|
|
$update_autoresponder_default = - 1;
|
|
}
|
|
} else {
|
|
$update_autoresponder_default = 0;
|
|
}
|
|
|
|
showUpdateStep("Setting default amount of autoresponders");
|
|
// admin gets unlimited
|
|
Database::query("UPDATE `" . TABLE_PANEL_ADMINS . "` SET `email_autoresponder`='-1' WHERE `adminid` = '" . (int) $userinfo['adminid'] . "'");
|
|
// customers
|
|
Database::query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `email_autoresponder`='" . (int) $update_autoresponder_default . "' WHERE `deactivated` = '0'");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.13-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.13-svn1')) {
|
|
showUpdateStep("Updating from 0.9.13-svn1 to 0.9.13 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.13');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.13')) {
|
|
showUpdateStep("Updating from 0.9.13 to 0.9.13.1 final", false);
|
|
|
|
$update_defaultini_ownvhost = isset($_POST['update_defaultini_ownvhost']) ? (int) $_POST['update_defaultini_ownvhost'] : 1;
|
|
|
|
showUpdateStep("Adding settings for Froxlor-vhost's PHP-configuration");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = 'mod_fcgid_defaultini_ownvhost',
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $update_defaultini_ownvhost
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.13.1');
|
|
}
|
|
|
|
/**
|
|
* be compatible with the few who already use 0.9.14-svn1
|
|
*/
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.14-svn1')) {
|
|
showUpdateStep("Resetting version 0.9.14-svn1 to 0.9.13.1");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.13.1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.13.1')) {
|
|
showUpdateStep("Updating from 0.9.13.1 to 0.9.14-svn2", false);
|
|
|
|
if (Settings::Get('ticket.enabled') == '1') {
|
|
showUpdateStep("Setting INTERVAL for used-tickets cronjob");
|
|
if (function_exists("setCycleOfCronjob")) {
|
|
setCycleOfCronjob(null, null, Settings::Get('ticket.reset_cycle'), null);
|
|
}
|
|
lastStepStatus(0);
|
|
}
|
|
\Froxlor\Froxlor::updateToVersion('0.9.14-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.14-svn2')) {
|
|
showUpdateStep("Updating from 0.9.14-svn2 to 0.9.14-svn3", false);
|
|
|
|
$update_awstats_icons = isset($_POST['update_awstats_icons']) ? \Froxlor\FileDir::makeCorrectDir($_POST['update_awstats_icons']) : Settings::Get('system.awstats_icons');
|
|
|
|
showUpdateStep("Adding AWStats icons path to the settings");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = 'awstats_icons',
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $update_awstats_icons
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.14-svn3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.14-svn3')) {
|
|
|
|
showUpdateStep("Updating from 0.9.14-svn3 to 0.9.14-svn4", false);
|
|
|
|
$update_ssl_cert_chainfile = isset($_POST['update_ssl_cert_chainfile']) ? $_POST['update_ssl_cert_chainfile'] : '';
|
|
|
|
if ($update_ssl_cert_chainfile != '') {
|
|
$update_ssl_cert_chainfile = \Froxlor\FileDir::makeCorrectFile($update_ssl_cert_chainfile);
|
|
}
|
|
|
|
showUpdateStep("Adding SSLCertificateChainFile to the settings");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = 'ssl_cert_chainfile',
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $update_ssl_cert_chainfile
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new field to IPs and ports for SSLCertificateChainFile");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_IPSANDPORTS . "` ADD `ssl_cert_chainfile` varchar(255) NOT NULL AFTER `default_vhostconf_domain`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.14-svn4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.14-svn4')) {
|
|
showUpdateStep("Updating from 0.9.14-svn4 to 0.9.14-svn5", false);
|
|
|
|
showUpdateStep("Adding docroot-field to IPs and ports for custom-docroot settings");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_IPSANDPORTS . "` ADD `docroot` varchar(255) NOT NULL default '' AFTER `ssl_cert_chainfile`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.14-svn5');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.14-svn5')) {
|
|
|
|
showUpdateStep("Updating from 0.9.14-svn5 to 0.9.14-svn6", false);
|
|
|
|
$update_allow_domain_login = isset($_POST['update_allow_domain_login']) ? (int) $_POST['update_allow_domain_login'] : '0';
|
|
|
|
showUpdateStep("Adding domain-login switch to the settings");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'login',
|
|
`varname` = 'domain_login',
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $update_allow_domain_login
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.14-svn6');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.14-svn6')) {
|
|
showUpdateStep("Updating from 0.9.14-svn6 to 0.9.14-svn10", false);
|
|
|
|
// remove deprecated realtime-feature
|
|
showUpdateStep("Removing realtime-feature (deprecated)");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'realtime_port';");
|
|
lastStepStatus(0);
|
|
|
|
// remove deprecated panel_navigation
|
|
showUpdateStep("Removing table `panel_navigation` (deprecated)");
|
|
Database::query("DROP TABLE IF EXISTS `panel_navigation`;");
|
|
lastStepStatus(0);
|
|
|
|
// remove deprecated panel_cronscript
|
|
showUpdateStep("Removing table `panel_cronscript` (deprecated)");
|
|
Database::query("DROP TABLE IF EXISTS `panel_cronscript`;");
|
|
lastStepStatus(0);
|
|
|
|
// make ticket-system ipv6 compatible
|
|
showUpdateStep("Altering IP field in panel_tickets (IPv6 compatibility)");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_TICKETS . "` MODIFY `ip` varchar(39) NOT NULL default '';");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Removing deprecated legacy-cronjob from database");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_CRONRUNS . "` WHERE `cronfile` ='cron_legacy.php';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.14-svn10');
|
|
}
|
|
|
|
/*
|
|
* revert database changes we did for multiserver-support
|
|
* before branching - sorry guys :/
|
|
*/
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.14-svn9')) {
|
|
showUpdateStep("Reverting multiserver-patches (svn)", false);
|
|
|
|
$update_allow_domain_login = isset($_POST['update_allow_domain_login']) ? (int) $_POST['update_allow_domain_login'] : '0';
|
|
|
|
showUpdateStep("Reverting database table-changes");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_SETTINGS . "` DROP `sid`;");
|
|
|
|
showUpdateStep(".");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` DROP `sid`;");
|
|
|
|
showUpdateStep(".");
|
|
Database::query("ALTER TABLE `" . TABLE_MAIL_VIRTUAL . "` DROP `sid`;");
|
|
|
|
showUpdateStep(".");
|
|
Database::query("ALTER TABLE `" . TABLE_FTP_USERS . "` DROP `sid`;");
|
|
|
|
showUpdateStep(".");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_TASKS . "` DROP `sid`;");
|
|
|
|
showUpdateStep(".");
|
|
Database::query("ALTER TABLE `" . TABLE_APS_TASKS . "` DROP `sid`;");
|
|
|
|
showUpdateStep(".");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_LOG . "` DROP `sid`;");
|
|
|
|
showUpdateStep(".");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` DROP `sid`;");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Removing froxlor-clients table");
|
|
Database::query("DROP TABLE IF EXISTS `froxlor_clients`");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.14-svn10');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.14-svn10')) {
|
|
showUpdateStep("Updating from 0.9.14-svn10 to 0.9.14 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.14');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.14')) {
|
|
showUpdateStep("Updating from 0.9.14 to 0.9.15-svn1", false);
|
|
|
|
showUpdateStep("Adding new settings for Nginx support");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = :varname,
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'nginx_php_backend',
|
|
'value' => '127.0.0.1:8888'
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'perl_server',
|
|
'value' => 'unix:/var/run/nginx/cgiwrap-dispatch.sock'
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'phpreload_command',
|
|
'value' => ''
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.15-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.15-svn1')) {
|
|
showUpdateStep("Updating from 0.9.15-svn1 to 0.9.15 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.15');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.15')) {
|
|
showUpdateStep("Updating from 0.9.15 to 0.9.16-svn1", false);
|
|
|
|
$update_phpfpm_enabled = isset($_POST['update_phpfpm_enabled']) ? (int) $_POST['update_phpfpm_enabled'] : '0';
|
|
$update_phpfpm_configdir = isset($_POST['update_phpfpm_configdir']) ? \Froxlor\FileDir::makeCorrectDir($_POST['update_phpfpm_configdir']) : '/etc/php-fpm.d/';
|
|
$update_phpfpm_tmpdir = isset($_POST['update_phpfpm_tmpdir']) ? \Froxlor\FileDir::makeCorrectDir($_POST['update_phpfpm_tmpdir']) : '/var/customers/tmp';
|
|
$update_phpfpm_peardir = isset($_POST['update_phpfpm_peardir']) ? \Froxlor\FileDir::makeCorrectDir($_POST['update_phpfpm_peardir']) : '/usr/share/php/:/usr/share/php5/';
|
|
$update_phpfpm_reload = isset($_POST['update_phpfpm_reload']) ? $_POST['update_phpfpm_reload'] : '/etc/init.d/php-fpm restart';
|
|
|
|
$update_phpfpm_pm = isset($_POST['update_phpfpm_pm']) ? $_POST['update_phpfpm_pm'] : 'static';
|
|
$update_phpfpm_max_children = isset($_POST['update_phpfpm_max_children']) ? (int) $_POST['update_phpfpm_max_children'] : '1';
|
|
$update_phpfpm_max_requests = isset($_POST['update_phpfpm_max_requests']) ? (int) $_POST['update_phpfpm_max_requests'] : '0';
|
|
|
|
if ($update_phpfpm_pm == 'dynamic') {
|
|
$update_phpfpm_start_servers = isset($_POST['update_phpfpm_start_servers']) ? (int) $_POST['update_phpfpm_start_servers'] : '20';
|
|
$update_phpfpm_min_spare_servers = isset($_POST['update_phpfpm_min_spare_servers']) ? (int) $_POST['update_phpfpm_min_spare_servers'] : '5';
|
|
$update_phpfpm_max_spare_servers = isset($_POST['update_phpfpm_max_spare_servers']) ? (int) $_POST['update_phpfpm_max_spare_servers'] : '35';
|
|
} else {
|
|
$update_phpfpm_start_servers = 20;
|
|
$update_phpfpm_min_spare_servers = 5;
|
|
$update_phpfpm_max_spare_servers = 35;
|
|
}
|
|
|
|
if ($update_phpfpm_configdir == '') {
|
|
$update_phpfpm_configdir = '/etc/php-fpm.d/';
|
|
}
|
|
if ($update_phpfpm_reload == '') {
|
|
$update_phpfpm_reload = '/etc/init.d/php-fpm restart';
|
|
}
|
|
|
|
showUpdateStep("Adding new settings for PHP-FPM #1");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'phpfpm',
|
|
`varname` = :varname,
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'enabled',
|
|
'value' => $update_phpfpm_enabled
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'configdir',
|
|
'value' => $update_phpfpm_configdir
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'reload',
|
|
'value' => $update_phpfpm_reload
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'pm',
|
|
'value' => $update_phpfpm_pm
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'max_children',
|
|
'value' => $update_phpfpm_max_children
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'max_requests',
|
|
'value' => $update_phpfpm_max_requests
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'start_servers',
|
|
'value' => $update_phpfpm_start_servers
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'min_spare_servers',
|
|
'value' => $update_phpfpm_min_spare_servers
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'max_spare_servers',
|
|
'value' => $update_phpfpm_max_spare_servers
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'tmpdir',
|
|
'value' => $update_phpfpm_tmpdir
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'peardir',
|
|
'value' => $update_phpfpm_peardir
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.16-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.16-svn1')) {
|
|
showUpdateStep("Updating from 0.9.16-svn1 to 0.9.16-svn2", false);
|
|
|
|
$update_phpfpm_enabled_ownvhost = isset($_POST['update_phpfpm_enabled_ownvhost']) ? (int) $_POST['update_phpfpm_enabled_ownvhost'] : '0';
|
|
$update_phpfpm_httpuser = isset($_POST['update_phpfpm_httpuser']) ? $_POST['update_phpfpm_httpuser'] : 'froxlorlocal';
|
|
$update_phpfpm_httpgroup = isset($_POST['update_phpfpm_httpgroup']) ? $_POST['update_phpfpm_httpgroup'] : 'froxlorlocal';
|
|
|
|
if ($update_phpfpm_httpuser == '') {
|
|
$update_phpfpm_httpuser = 'froxlorlocal';
|
|
}
|
|
if ($update_phpfpm_httpgroup == '') {
|
|
$update_phpfpm_httpgroup = 'froxlorlocal';
|
|
}
|
|
|
|
showUpdateStep("Adding new settings for PHP-FPM #2");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'phpfpm',
|
|
`varname` = :varname,
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'enabled_ownvhost',
|
|
'value' => $update_phpfpm_enabled_ownvhost
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'vhost_httpuser',
|
|
'value' => $update_phpfpm_httpuser
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'vhost_httpgroup',
|
|
'value' => $update_phpfpm_httpgroup
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.16-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.16-svn2')) {
|
|
showUpdateStep("Updating from 0.9.16-svn2 to 0.9.16 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.16');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.16')) {
|
|
|
|
showUpdateStep("Updating from 0.9.16 to 0.9.17-svn1", false);
|
|
|
|
$update_system_report_enable = isset($_POST['update_system_report_enable']) ? (int) $_POST['update_system_report_enable'] : '1';
|
|
$update_system_report_webmax = isset($_POST['update_system_report_webmax']) ? (int) $_POST['update_system_report_webmax'] : '90';
|
|
$update_system_report_trafficmax = isset($_POST['update_system_report_trafficmax']) ? (int) $_POST['update_system_report_trafficmax'] : '90';
|
|
|
|
showUpdateStep("Adding new settings for web- and traffic-reporting");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = :varname,
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'report_enable',
|
|
'value' => $update_system_report_enable
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'report_webmax',
|
|
'value' => $update_system_report_webmax
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'report_trafficmax',
|
|
'value' => $update_system_report_trafficmax
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new cron-module for web- and traffic-reporting");
|
|
$clastrun = mktime(6, 0, 0, date('m'), date('d') - 1, date('Y'));
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_CRONRUNS . "` SET
|
|
`module` = 'froxlor/reports',
|
|
`cronfile` = 'cron_usage_report.php',
|
|
`interval` = '1 DAY',
|
|
`desc_lng_key` = 'cron_usage_report',
|
|
`lastrun` = :lastrun,
|
|
`isactive` = :isactive");
|
|
Database::pexecute($stmt, array(
|
|
'lastrun' => $clastrun,
|
|
'isactive' => $update_system_report_enable
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Updating various database-fields");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'last_traffic_report_run';");
|
|
|
|
$check_stmt = Database::query("
|
|
SELECT `varname` FROM `" . TABLE_PANEL_TEMPLATES . "` WHERE `varname` = 'trafficninetypercent_subject';");
|
|
Database::pexecute($check_stmt);
|
|
$check = $check_stmt->fetch(PDO::FETCH_ASSOC);
|
|
|
|
if (isset($check['varname']) && $check['varname'] == 'trafficninetypercent_subject') {
|
|
Database::query("UPDATE `" . TABLE_PANEL_TEMPLATES . "` SET `varname` = 'trafficmaxpercent_subject' WHERE `varname` = 'trafficninetypercent_subject';");
|
|
}
|
|
|
|
$check_stmt = Database::query("
|
|
SELECT `varname` FROM `" . TABLE_PANEL_TEMPLATES . "` WHERE `varname` = 'trafficninetypercent_mailbody';");
|
|
Database::pexecute($check_stmt);
|
|
$check = $check_stmt->fetch(PDO::FETCH_ASSOC);
|
|
|
|
if (isset($check['varname']) && $check['varname'] == 'trafficninetypercent_mailbody') {
|
|
Database::query("UPDATE `" . TABLE_PANEL_TEMPLATES . "` SET `varname` = 'trafficmaxpercent_mailbody' WHERE `varname` = 'trafficninetypercent_mailbody';");
|
|
}
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.17-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.17-svn1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.17-svn1 to 0.9.17-svn2", false);
|
|
|
|
showUpdateStep("Adding new tables to database");
|
|
Database::query("CREATE TABLE IF NOT EXISTS `ipsandports_docrootsettings` (
|
|
`id` int(5) NOT NULL auto_increment,
|
|
`fid` int(11) NOT NULL,
|
|
`docrootsettings` text NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=MyISAM;");
|
|
Database::query("CREATE TABLE IF NOT EXISTS `domain_docrootsettings` (
|
|
`id` int(5) NOT NULL auto_increment,
|
|
`fid` int(11) NOT NULL,
|
|
`docrootsettings` text NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=MyISAM;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.17-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.17-svn2')) {
|
|
showUpdateStep("Updating from 0.9.17-svn2 to 0.9.17 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.17');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.17')) {
|
|
|
|
showUpdateStep("Updating from 0.9.17 to 0.9.18-svn1", false);
|
|
|
|
showUpdateStep("Checking whether you are missing any settings", false);
|
|
$nonefound = true;
|
|
|
|
$result_stmt = Database::query("SELECT * FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'httpgroup'");
|
|
$result = $result_stmt->fetch(PDO::FETCH_ASSOC);
|
|
|
|
if (! isset($result) || ! isset($result['value'])) {
|
|
$nonefound = false;
|
|
showUpdateStep("Adding missing setting 'httpgroup'");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = 'httpgroup',
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'value' => Settings::Get('system.httpuser')
|
|
));
|
|
lastStepStatus(0);
|
|
}
|
|
|
|
if ($nonefound) {
|
|
showUpdateStep("No missing settings found ;-)");
|
|
lastStepStatus(0);
|
|
}
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.18-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.18-svn1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.18-svn1 to 0.9.18-svn2", false);
|
|
|
|
$update_default_theme = isset($_POST['update_default_theme']) ? $_POST['update_default_theme'] : 'Froxlor';
|
|
|
|
showUpdateStep("Adding new settings for themes");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'panel',
|
|
`varname` = 'default_theme',
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $update_default_theme
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Delete old setting for header-graphic");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup`='admin' AND `varname` = 'froxlor_graphic';");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Updating table layouts");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` ADD `theme` varchar(255) NOT NULL default 'Froxlor' AFTER `email_autoresponder_used`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `theme` varchar(255) NOT NULL default 'Froxlor' AFTER `email_autoresponder_used`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_SESSIONS . "` ADD `theme` varchar(255) NOT NULL default '' AFTER `adminsession`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.18-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.18-svn2')) {
|
|
showUpdateStep("Updating from 0.9.18-svn2 to 0.9.18 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.18');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.18')) {
|
|
showUpdateStep("Updating from 0.9.18 to 0.9.18.1");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.18.1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.18.1')) {
|
|
showUpdateStep("Updating from 0.9.18.1 to 0.9.19");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.19');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.19')) {
|
|
showUpdateStep("Updating from 0.9.19 to 0.9.20-svn1");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new setting for domain validation");
|
|
Database::query("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = 'validate_domain',
|
|
`value` = '1'");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.20-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.20-svn1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.20-svn1 to 0.9.20-svn2");
|
|
|
|
// adding backup stuff
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `backup_allowed` TINYINT( 1 ) NOT NULL DEFAULT '1'");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `backup_enabled` TINYINT( 1 ) NOT NULL DEFAULT '0'");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_enabled', '0')");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_dir', '#froxlor_backup')");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_mysqldump_path', '/usr/bin/mysqldump')");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_count', '1')");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_bigfile', '1')");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_enabled', '0')");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_server', '')");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_user', '')");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_pass', '')");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_CRONRUNS . "` (`module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES ('froxlor/backup', 'cron_backup.php', '1 DAY', '1', 'cron_backup');");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.20-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.20-svn2')) {
|
|
showUpdateStep("Updating from 0.9.20-svn2 to 0.9.20");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.20');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.20')) {
|
|
showUpdateStep("Updating from 0.9.20 to 0.9.20.1");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.20.1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.20.1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.20.1 to 0.9.20.1-svn1");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Fixing possible broken tables");
|
|
|
|
// The customer-table may miss the columns, if installed a fresh 0.9.20 or 0.9.20.1 - add them
|
|
$result = Database::query("DESCRIBE `" . TABLE_PANEL_CUSTOMERS . "`");
|
|
$columnfound = 0;
|
|
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
|
|
if ($row['Field'] == 'backup_allowed') {
|
|
$columnfound = 1;
|
|
}
|
|
}
|
|
if (! $columnfound) {
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `backup_allowed` TINYINT( 1 ) NOT NULL DEFAULT '1'");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `backup_enabled` TINYINT( 1 ) NOT NULL DEFAULT '0'");
|
|
}
|
|
|
|
// The admin-table may have the columns, if installed a fresh 0.9.20.1 - remove them
|
|
$result = Database::query("DESCRIBE `" . TABLE_PANEL_ADMINS . "`");
|
|
$columnfound = 0;
|
|
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
|
|
if ($row['Field'] == 'backup_allowed') {
|
|
$columnfound = 1;
|
|
}
|
|
}
|
|
if ($columnfound) {
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` DROP `backup_allowed`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` DROP `backup_enabled`;");
|
|
}
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.20.1-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.20.1-svn1') || \Froxlor\Froxlor::isFroxlorVersion('0.9.20.2-svn1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.20.1-svn1 to 0.9.21-svn1");
|
|
lastStepStatus(0);
|
|
|
|
// add table column for gender
|
|
showUpdateStep("Add column for gender to customers");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `gender` INT( 1 ) NOT NULL DEFAULT '0' AFTER `firstname`");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.21-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.21-svn1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.21-svn1 to 0.9.21-svn2");
|
|
lastStepStatus(0);
|
|
|
|
/* add new setting: backup FTP mode */
|
|
showUpdateStep("Add new settings for backup ftp-mode");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_passive', '1')");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.21-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.21-svn2')) {
|
|
showUpdateStep("Updating from 0.9.21-svn2 to 0.9.21");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.21');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.21')) {
|
|
|
|
showUpdateStep("Updating from 0.9.21 to 0.9.22-svn1");
|
|
lastStepStatus(0);
|
|
|
|
/* add new settings for diskspacequota - support */
|
|
showUpdateStep("Add new settings for diskspacequota support");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_enabled', '0');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_repquota_path', '/usr/sbin/repquota');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_quotatool_path', '/usr/bin/quotatool');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'diskquota_customer_partition', '/dev/root');");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.22-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.22-svn1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.22-svn1 to 0.9.22-svn2");
|
|
lastStepStatus(0);
|
|
|
|
/* fix backup_dir for #186 */
|
|
Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '/var/customers/backups/' WHERE `varname` = 'backup_dir';");
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.22-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.22-svn2')) {
|
|
showUpdateStep("Updating from 0.9.22-svn2 to 0.9.22-rc1");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.22-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.22-rc1')) {
|
|
showUpdateStep("Updating from 0.9.22-rc1 to 0.9.22");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.22');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.22')) {
|
|
showUpdateStep("Updating from 0.9.22 to 0.9.23-rc1");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.23-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.23-rc1')) {
|
|
showUpdateStep("Updating from 0.9.23-rc1 to 0.9.23");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.23');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.23')) {
|
|
|
|
showUpdateStep("Updating from 0.9.23 to 0.9.24-svn1");
|
|
lastStepStatus(0);
|
|
|
|
/* add new settings for logrotate - support */
|
|
showUpdateStep("Add new settings for logrotate support");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'logrotate_enabled', '0');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'logrotate_binary', '/usr/sbin/logrotate');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'logrotate_interval', 'weekly');");
|
|
Database::query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'logrotate_keep', '4');");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.24-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.24-svn1')) {
|
|
showUpdateStep("Updating from 0.9.24-svn1 to 0.9.24-rc1");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.24-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.24-rc1')) {
|
|
showUpdateStep("Updating from 0.9.24-rc1 to 0.9.24");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.24');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.24')) {
|
|
showUpdateStep("Updating from 0.9.24 to 0.9.25-rc1");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.25-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.25-rc1')) {
|
|
showUpdateStep("Updating from 0.9.25-rc1 to 0.9.25");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.25');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.25')) {
|
|
showUpdateStep("Updating from 0.9.25 to 0.9.26-svn1");
|
|
lastStepStatus(0);
|
|
// enable bind by default
|
|
Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'bind_enable', '1')");
|
|
\Froxlor\Froxlor::updateToVersion('0.9.26-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.26-svn1')) {
|
|
showUpdateStep("Updating from 0.9.26-svn1 to 0.9.26-rc1");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.26-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.26-rc1')) {
|
|
showUpdateStep("Updating from 0.9.26-rc1 to 0.9.26");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.26');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.26')) {
|
|
|
|
showUpdateStep("Updating from 0.9.26 to 0.9.27-svn1");
|
|
lastStepStatus(0);
|
|
|
|
// check for multiple backup_ftp_enabled entries
|
|
$handle = Database::query("SELECT `value` FROM `panel_settings` WHERE `varname` = 'backup_ftp_enabled';");
|
|
|
|
// if there are more than one entries try to fix it
|
|
if (Database::num_rows() > 1) {
|
|
$rows = $handle->fetch(PDO::FETCH_ASSOC);
|
|
$state = false;
|
|
|
|
// iterate through all found entries
|
|
// and try to guess what value it should be
|
|
foreach ($rows as $row) {
|
|
$state = $state | $row['value'];
|
|
}
|
|
|
|
// now delete all entries
|
|
Database::query("DELETE FROM `panel_settings` WHERE `varname` = 'backup_ftp_enabled';");
|
|
|
|
// and re-add it
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = 'backup_ftp_enabled',
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $state
|
|
));
|
|
}
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.27-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.27-svn1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.27-svn1 to 0.9.27-svn2");
|
|
lastStepStatus(0);
|
|
|
|
// Get FastCGI timeout setting if available
|
|
$handle = Database::query("SELECT `value` FROM `panel_settings` WHERE `settinggroup` = 'system' AND `varname` = 'mod_fcgid_idle_timeout';");
|
|
|
|
// If timeout is set then skip
|
|
if (Database::num_rows() < 1) {
|
|
Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'mod_fcgid_idle_timeout', '30');");
|
|
}
|
|
|
|
// Get FastCGI timeout setting if available
|
|
$handle = Database::query("SELECT `value` FROM `panel_settings` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'idle_timeout';");
|
|
|
|
// If timeout is set then skip
|
|
if (Database::num_rows() < 1) {
|
|
Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'idle_timeout', '30');");
|
|
}
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.27-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.27-svn2')) {
|
|
showUpdateStep("Updating from 0.9.27-svn2 to 0.9.27-rc1");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.27-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.27-rc1')) {
|
|
showUpdateStep("Updating from 0.9.27-rc1 to 0.9.27");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.27');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.27')) {
|
|
|
|
showUpdateStep("Updating from 0.9.27 to 0.9.28-svn1");
|
|
lastStepStatus(0);
|
|
|
|
// Get AliasconfigDir setting if available
|
|
$handle = Database::query("SELECT `value` FROM `panel_settings` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'aliasconfigdir';");
|
|
|
|
// If AliasconfigDir is set then skip
|
|
if (Database::num_rows() < 1) {
|
|
Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'aliasconfigdir', '/var/www/php-fpm/');");
|
|
}
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.28-svn1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.28-svn1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.28-svn1 to 0.9.28-svn2");
|
|
lastStepStatus(0);
|
|
|
|
// Insert ISO-Codes into database. Default value is foo, which is not a valid language code.
|
|
Database::query("ALTER TABLE `panel_languages` ADD `iso` CHAR( 3 ) NOT NULL DEFAULT 'foo' AFTER `language`");
|
|
|
|
$handle = Database::query("SELECT `language` FROM `panel_languages` WHERE `iso`='foo'");
|
|
|
|
while ($language = $handle->fetch(PDO::FETCH_ASSOC)) {
|
|
switch ($language) {
|
|
case "Deutsch":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='de' WHERE `language` = 'Deutsch'");
|
|
break;
|
|
case "English":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='en' WHERE `language` = 'English'");
|
|
break;
|
|
case "Français":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='fr' WHERE `language` = 'Français'");
|
|
break;
|
|
case "Chinese":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='zh' WHERE `language` = 'Chinese'");
|
|
break;
|
|
case "Catalan":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='ca' WHERE `language` = 'Catalan'");
|
|
break;
|
|
case "Español":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='es' WHERE `language` = 'Español'");
|
|
break;
|
|
case "Português":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='pt' WHERE `language` = 'Português'");
|
|
break;
|
|
case "Danish":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='da' WHERE `language` = 'Danish'");
|
|
break;
|
|
case "Italian":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='it' WHERE `language` = 'Italian'");
|
|
break;
|
|
case "Bulgarian":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='bg' WHERE `language` = 'Bulgarian'");
|
|
break;
|
|
case "Slovak":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='sk' WHERE `language` = 'Slovak'");
|
|
break;
|
|
case "Dutch":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='nl' WHERE `language` = 'Dutch'");
|
|
break;
|
|
case "Russian":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='ru' WHERE `language` = 'Russian'");
|
|
break;
|
|
case "Hungarian":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='hu' WHERE `language` = 'Hungarian'");
|
|
break;
|
|
case "Swedish":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='sv' WHERE `language` = 'Swedish'");
|
|
break;
|
|
case "Czech":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='cz' WHERE `language` = 'Czech'");
|
|
break;
|
|
case "Polski":
|
|
Database::query("UPDATE `panel_languages` SET `iso`='pl' WHERE `language` = 'Polski'");
|
|
break;
|
|
default:
|
|
showUpdateStep("Sorry, but I don't know the ISO-639 language code for " . $language . ". Please update the entry in `panel_languages` manually.\n");
|
|
}
|
|
}
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.28-svn2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.28-svn2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.28-svn2 to 0.9.28-svn3");
|
|
lastStepStatus(0);
|
|
|
|
// change length of passwd column
|
|
Database::query("ALTER TABLE `" . TABLE_FTP_USERS . "` MODIFY `password` varchar(128) NOT NULL default ''");
|
|
|
|
// Add default setting for vmail_maildirname if not already in place
|
|
$handle = Database::query("SELECT `value` FROM `panel_settings` WHERE `settinggroup` = 'system' AND `varname` = 'vmail_maildirname';");
|
|
if (Database::num_rows() < 1) {
|
|
showUpdateStep("Adding default Maildir value into Mailserver settings.");
|
|
Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'vmail_maildirname', 'Maildir');");
|
|
}
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.28-svn3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.28-svn3')) {
|
|
|
|
showUpdateStep("Updating from 0.9.28-svn3 to 0.9.28-svn4", true);
|
|
lastStepStatus(0);
|
|
|
|
if (isset($_POST['classic_theme_replacement']) && $_POST['classic_theme_replacement'] != '') {
|
|
$classic_theme_replacement = $_POST['classic_theme_replacement'];
|
|
} else {
|
|
$classic_theme_replacement = 'Froxlor';
|
|
}
|
|
showUpdateStep('Setting replacement for the discontinued and removed Classic theme (if active)', true);
|
|
|
|
// Updating default theme setting
|
|
if (Settings::Get('panel.default_theme') == 'Classic') {
|
|
$upd_stmt = Database::prepare("
|
|
UPDATE `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`value` = :theme
|
|
WHERE `varname` = 'default_theme';");
|
|
Database::pexecute($upd_stmt, array(
|
|
'theme' => $classic_theme_replacement
|
|
));
|
|
}
|
|
|
|
// Updating admin's theme setting
|
|
$upd_stmt = Database::prepare("
|
|
UPDATE `" . TABLE_PANEL_ADMINS . "` SET
|
|
`theme` = :theme
|
|
WHERE `theme` = 'Classic';");
|
|
Database::pexecute($upd_stmt, array(
|
|
'theme' => $classic_theme_replacement
|
|
));
|
|
|
|
// Updating customer's theme setting
|
|
$upd_stmt = Database::prepare("
|
|
UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET
|
|
`theme` = :theme
|
|
WHERE `theme` = 'Classic';");
|
|
Database::pexecute($upd_stmt, array(
|
|
'theme' => $classic_theme_replacement
|
|
));
|
|
|
|
// Updating theme setting of active sessions
|
|
$upd_stmt = Database::prepare("
|
|
UPDATE `" . TABLE_PANEL_SESSIONS . "` SET
|
|
`theme` = :theme
|
|
WHERE `theme` = 'Classic';");
|
|
Database::pexecute($upd_stmt, array(
|
|
'theme' => $classic_theme_replacement
|
|
));
|
|
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep('Altering Froxlor database and tables to use UTF-8. This may take a while..', true);
|
|
|
|
Database::query('ALTER DATABASE `' . Database::getDbName() . '` CHARACTER SET utf8 COLLATE utf8_general_ci');
|
|
|
|
$handle = Database::query('SHOW TABLES');
|
|
while ($row = $handle->fetch(PDO::FETCH_ASSOC)) {
|
|
foreach ($row as $table) {
|
|
Database::query('ALTER TABLE `' . $table . '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;');
|
|
}
|
|
}
|
|
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.28-svn4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.28-svn4')) {
|
|
|
|
showUpdateStep("Updating from 0.9.28-svn4 to 0.9.28-svn5");
|
|
|
|
// Catchall functionality (enabled by default) see #1114
|
|
showUpdateStep('Enabling catchall by default');
|
|
Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('catchall', 'catchall_enabled', '1');");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.28-svn5');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.28-svn5')) {
|
|
|
|
showUpdateStep("Updating from 0.9.28-svn5 to 0.9.28-svn6", true);
|
|
lastStepStatus(0);
|
|
|
|
$update_system_apache24 = isset($_POST['update_system_apache24']) ? (int) $_POST['update_system_apache24'] : '0';
|
|
showUpdateStep('Setting value for apache-2.4 modification', true);
|
|
// support for Apache-2.4
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = 'apache24',
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $update_system_apache24
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Inserting new tickets-see-all field to panel_admins", true);
|
|
Database::query("ALTER TABLE `panel_admins` ADD `tickets_see_all` tinyint(1) NOT NULL default '0' AFTER `tickets_used`");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Updating main admin entry", true);
|
|
$stmt = Database::prepare("
|
|
UPDATE `" . TABLE_PANEL_ADMINS . "` SET
|
|
`tickets_see_all` = '1'
|
|
WHERE `adminid` = :adminid");
|
|
Database::pexecute($stmt, array(
|
|
'adminid' => $userinfo['adminid']
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Inserting new panel webfont-settings (default: off)", true);
|
|
Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'use_webfonts', '0');");
|
|
Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'webfont', 'Numans');");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Inserting settings for nginx fastcgi-params file", true);
|
|
$fastcgiparams = '/etc/nginx/fastcgi_params';
|
|
if (isset($_POST['nginx_fastcgi_params']) && $_POST['nginx_fastcgi_params'] != '') {
|
|
$fastcgiparams = \Froxlor\FileDir::makeCorrectFile($_POST['nginx_fastcgi_params']);
|
|
}
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'nginx',
|
|
`varname` = 'fastcgiparams',
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $fastcgiparams
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.28-svn6');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.28-svn6')) {
|
|
showUpdateStep("Updating from 0.9.28-svn6 to 0.9.28 release candidate 1");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.28-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.28-rc1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.28-rc1 to 0.9.28-rc2", true);
|
|
lastStepStatus(0);
|
|
|
|
$update_system_documentroot_use_default_value = isset($_POST['update_system_documentroot_use_default_value']) ? (int) $_POST['update_system_documentroot_use_default_value'] : '0';
|
|
showUpdateStep("Adding new settings for using domain name as default value for DocumentRoot path", true);
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = 'documentroot_use_default_value',
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $update_system_documentroot_use_default_value
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.28-rc2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.28-rc2')) {
|
|
showUpdateStep("Updating from 0.9.28-rc2 to 0.9.28 final", true);
|
|
Database::query("DELETE FROM `panel_settings` WHERE `settinggroup`='system' AND `varname`='mod_log_sql'");
|
|
Database::query("DELETE FROM `panel_settings` WHERE `settinggroup`='system' AND `varname`='openssl_cnf'");
|
|
Database::query("ALTER TABLE `panel_domains` DROP `safemode`");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.28');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.28')) {
|
|
showUpdateStep("Updating from 0.9.28 final to 0.9.28.1");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.28.1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.28.1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.28.1 to 0.9.29-dev1", true);
|
|
lastStepStatus(0);
|
|
|
|
$hide_stdsubdomains = isset($_POST['hide_stdsubdomains']) ? (int) $_POST['hide_stdsubdomains'] : '0';
|
|
showUpdateStep('Setting value for "hide standard subdomains"', true);
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'panel',
|
|
`varname` = 'phpconfigs_hidestdsubdomain',
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $hide_stdsubdomains
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
// don't advertise security questions - just set a default silently
|
|
Database::query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'passwordcryptfunc', '1');");
|
|
|
|
$fastcgiparams = Settings::Get('nginx.fastcgiparams');
|
|
// check the faulty value explicitly
|
|
if ($fastcgiparams == '/etc/nginx/fastcgi_params/') {
|
|
$fastcgiparams = \Froxlor\FileDir::makeCorrectFile(substr($fastcgiparams, 0, - 1));
|
|
$stmt = Database::prepare("
|
|
UPDATE `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`value` = :value
|
|
WHERE `varname` = 'fastcgiparams'");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $fastcgiparams
|
|
));
|
|
}
|
|
\Froxlor\Froxlor::updateToVersion('0.9.29-dev1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.29-dev1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.29-dev1 to 0.9.29-dev2", true);
|
|
lastStepStatus(0);
|
|
|
|
$allow_themechange_c = isset($_POST['allow_themechange_c']) ? (int) $_POST['allow_themechange_c'] : '1';
|
|
$allow_themechange_a = isset($_POST['allow_themechange_a']) ? (int) $_POST['allow_themechange_a'] : '1';
|
|
showUpdateStep("Inserting new setting to allow/disallow theme changes (default: on)", true);
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'panel',
|
|
`varname` = :varname,
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'allow_theme_change_admin',
|
|
'value' => $allow_themechange_a
|
|
));
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'allow_theme_change_customer',
|
|
'value' => $allow_themechange_c
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.29-dev2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.29-dev2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.29-dev2 to 0.9.29-dev3", true);
|
|
lastStepStatus(0);
|
|
|
|
$system_axfrservers = isset($_POST['system_afxrservers']) ? trim($_POST['system_afxrservers']) : '';
|
|
if ($system_axfrservers != '') {
|
|
$axfrservers = explode(',', $system_axfrservers);
|
|
$newaxfrserver = array();
|
|
foreach ($axfrservers as $index => $axfrserver) {
|
|
if (validate_ip($axfrserver, true) !== false) {
|
|
$newaxfrserver[] = $axfrserver;
|
|
}
|
|
}
|
|
$system_axfrservers = implode(", ", $newaxfrserver);
|
|
}
|
|
showUpdateStep("Inserting new setting for AXFR server", true);
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = 'axfrservers',
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $system_axfrservers
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.29-dev3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.29-dev3')) {
|
|
|
|
showUpdateStep("Updating from 0.9.29-dev3 to 0.9.29-dev4", true);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new tables to database", true);
|
|
Database::query("CREATE TABLE IF NOT EXISTS `domain_ssl_settings` (
|
|
`id` int(5) NOT NULL auto_increment,
|
|
`domainid` int(11) NOT NULL,
|
|
`ssl_cert_file` text NOT NULL,
|
|
`ssl_key_file` text NOT NULL,
|
|
`ssl_ca_file` text NOT NULL,
|
|
`ssl_cert_chainfile` text NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;");
|
|
lastStepStatus(0);
|
|
|
|
$system_customersslpath = isset($_POST['system_customersslpath']) ? \Froxlor\FileDir::makeCorrectDir($_POST['system_customersslpath']) : '/etc/ssl/froxlor-custom/';
|
|
if (trim($system_customersslpath) == '/') {
|
|
// prevent users from specifying nonsense here
|
|
$system_customersslpath = '/etc/ssl/froxlor-custom/';
|
|
}
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'system',
|
|
`varname` = 'customer_ssl_path',
|
|
`value` = :value");
|
|
Database::pexecute($stmt, array(
|
|
'value' => $system_customersslpath
|
|
));
|
|
\Froxlor\Froxlor::updateToVersion('0.9.29-dev4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.29-dev4')) {
|
|
|
|
showUpdateStep("Updating from 0.9.29-dev4 to 0.9.29-rc1", true);
|
|
lastStepStatus(0);
|
|
|
|
// check for wrong vmail_maildirname database-field-name (bug #1242)
|
|
showUpdateStep("correcting Maildir setting database-field-name (if needed).", true);
|
|
Database::query("UPDATE `panel_settings` SET `varname` = 'vmail_maildirname' WHERE `settinggroup` = 'system' AND `varname` = 'vmail_maildir'");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("setting default php-configuration for php-fpm", true);
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET
|
|
`settinggroup` = 'phpfpm',
|
|
`varname` = :varname,
|
|
`value` = :value");
|
|
$dval = (Settings::Get('system.mod_fcgid_defaultini') !== null ? Settings::Get('system.mod_fcgid_defaultini') : '1');
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'defaultini',
|
|
'value' => $dval
|
|
));
|
|
$dval = (Settings::Get('system.mod_fcgid_ownvhost') !== null ? Settings::Get('system.mod_fcgid_ownvhost') : '1');
|
|
Database::pexecute($stmt, array(
|
|
'varname' => 'vhost_defaultini',
|
|
'value' => $dval
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.29-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.29-rc1')) {
|
|
showUpdateStep("Updating from 0.9.29-rc1 to 0.9.29 final", true);
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.29');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.29')) {
|
|
|
|
showUpdateStep("Updating from 0.9.29 to 0.9.29.1-dev1", true);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new ip to domain - mapping-table");
|
|
Database::query("DROP TABLE IF EXISTS `panel_domaintoip`;");
|
|
$sql = "CREATE TABLE `" . TABLE_DOMAINTOIP . "` (
|
|
`id_domain` int(11) unsigned NOT NULL,
|
|
`id_ipandports` int(11) unsigned NOT NULL,
|
|
PRIMARY KEY (`id_domain`, `id_ipandports`)
|
|
) ENGINE=MyISAM ;";
|
|
Database::query($sql);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Convert old domain to ip - mappings");
|
|
$result = Database::query("SELECT `id`, `ipandport`, `ssl_ipandport`, `ssl_redirect`, `parentdomainid` FROM `" . TABLE_PANEL_DOMAINS . "`;");
|
|
|
|
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
|
|
|
|
if ((int) $row['ipandport'] != 0) {
|
|
Database::query("INSERT INTO `" . TABLE_DOMAINTOIP . "` SET
|
|
`id_domain` = " . (int) $row['id'] . ",
|
|
`id_ipandports` = " . (int) $row['ipandport']);
|
|
}
|
|
if ((int) $row['ssl_ipandport'] != 0) {
|
|
Database::query("INSERT INTO `" . TABLE_DOMAINTOIP . "` SET
|
|
`id_domain` = " . (int) $row['id'] . ",
|
|
`id_ipandports` = " . (int) $row['ssl_ipandport']);
|
|
} // Subdomains also have ssl ports if the parent has
|
|
elseif ((int) $row['ssl_ipandport'] == 0 && (int) $row['ssl_redirect'] != 0 && (int) $row['parentdomainid'] != 0) {
|
|
Database::query("INSERT INTO `" . TABLE_DOMAINTOIP . "` SET
|
|
`id_domain` = " . (int) $row['id'] . ",
|
|
`id_ipandports` = (
|
|
SELECT `ssl_ipandport` FROM `" . TABLE_PANEL_DOMAINS . "`
|
|
WHERE `id` = '" . (int) $row['parentdomainid'] . "');");
|
|
}
|
|
}
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Updating table layouts");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` DROP `ipandport`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` DROP `ssl`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` DROP `ssl_ipandport`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.29.1-dev1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.29.1-dev1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.29.1-dev1 to 0.9.29.1-dev2", true);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Updating table layouts and contents");
|
|
Database::query("ALTER TABLE `" . TABLE_MAIL_USERS . "` ADD `mboxsize` bigint(30) NOT NULL default '0' AFTER `imap`;");
|
|
Database::query("INSERT INTO `cronjobs_run` SET `module` = 'froxlor/core', `cronfile` = 'cron_mailboxsize.php', `interval` = '6 HOUR', `isactive` = '1', `desc_lng_key` = 'cron_mailboxsize';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.29.1-dev2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.29.1-dev2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.29.1-dev2 to 0.9.29.1-dev3", true);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Removing old logrotate settings");
|
|
Database::query("DELETE FROM `panel_settings` WHERE `varname` = 'logrotate_enabled';");
|
|
Database::query("DELETE FROM `panel_settings` WHERE `varname` = 'logrotate_binary';");
|
|
Database::query("DELETE FROM `panel_settings` WHERE `varname` = 'logrotate_interval';");
|
|
Database::query("DELETE FROM `panel_settings` WHERE `varname` = 'logrotate_keep';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.29.1-dev3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.29.1-dev3')) {
|
|
|
|
showUpdateStep("Updating from 0.9.29.1-dev3 to 0.9.29.1-dev4", true);
|
|
lastStepStatus(0);
|
|
|
|
// If you upgraded from SysCP the edit_billingdata field has been
|
|
// removed in one of the first upgrades to froxlor. Sadly, one field
|
|
// remained in the install.sql so we remove it now if it exists
|
|
$bd_exists = Database::query("SHOW COLUMNS FROM `" . TABLE_PANEL_ADMINS . "` LIKE 'edit_billingdata';");
|
|
if (Database::num_rows() > 0) {
|
|
showUpdateStep("Removing old billing-field from admin-users");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` DROP `edit_billingdata`");
|
|
lastStepStatus(0);
|
|
}
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.29.1-dev4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.29.1-dev4')) {
|
|
showUpdateStep("Updating from 0.9.29.1-dev4 to 0.9.30-dev1", true);
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.30-dev1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.30-dev1')) {
|
|
showUpdateStep("Updating from 0.9.30-dev1 to 0.9.30-rc1", true);
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.30-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.30-rc1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.30-rc1 to 0.9.30 final", true);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding ssl-cipher-list setting");
|
|
Database::query("INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'ssl_cipher_list', `value` = 'ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH'");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.30');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.30')) {
|
|
|
|
showUpdateStep("Updating from 0.9.30 to 0.9.31-dev1", true);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Removing unsused tables");
|
|
Database::query("DROP TABLE IF EXISTS `ipsandports_docrootsettings`;");
|
|
Database::query("DROP TABLE IF EXISTS `domain_docrootsettings`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.31-dev1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.31-dev1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.31-dev1 to 0.9.31-dev2", true);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new phpfpm-ipcdir setting");
|
|
$ins_stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET `settinggroup` = 'phpfpm', `varname` = 'fastcgi_ipcdir', `value` = :value
|
|
");
|
|
$params = array();
|
|
// set default for apache (which will suite in most cases)
|
|
$params['value'] = '/var/lib/apache2/fastcgi/';
|
|
if (Settings::Get('system.webserver') == 'lighttpd') {
|
|
$params['value'] = '/var/run/lighttpd/';
|
|
} elseif (Settings::Get('system.webserver') == 'nginx') {
|
|
$params['value'] = '/var/run/nginx/';
|
|
}
|
|
Database::pexecute($ins_stmt, $params);
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.31-dev2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.31-dev2')) {
|
|
showUpdateStep("Updating from 0.9.31-dev2 to 0.9.31-dev3", true);
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.31-dev3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.31-dev3')) {
|
|
showUpdateStep("Updating from 0.9.31-dev3 to 0.9.31-dev4", true);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new panel_activation table");
|
|
Database::query("DROP TABLE IF EXISTS `panel_activation`;");
|
|
$sql = "CREATE TABLE `" . TABLE_PANEL_ACTIVATION . "` (
|
|
id int(11) unsigned NOT NULL AUTO_INCREMENT,
|
|
userid int(11) unsigned NOT NULL DEFAULT '0',
|
|
admin tinyint(1) unsigned NOT NULL DEFAULT '0',
|
|
creation int(11) unsigned NOT NULL DEFAULT '0',
|
|
activationcode varchar(50) DEFAULT NULL,
|
|
PRIMARY KEY (id)
|
|
) ENGINE=MyISAM;";
|
|
Database::query($sql);
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.31-dev4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.31-dev4')) {
|
|
|
|
showUpdateStep("Updating from 0.9.31-dev4 to 0.9.31-dev5", true);
|
|
lastStepStatus(0);
|
|
|
|
$update_error_report_admin = isset($_POST['update_error_report_admin']) ? (int) $_POST['update_error_report_admin'] : '1';
|
|
$update_error_report_customer = isset($_POST['update_error_report_customer']) ? (int) $_POST['update_error_report_customer'] : '0';
|
|
|
|
showUpdateStep("Adding new error-reporting options");
|
|
$ins_stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET `settinggroup` = 'system', `varname` = :varname, `value` = :value
|
|
");
|
|
$params = array();
|
|
// admins
|
|
$params['varname'] = 'allow_error_report_admin';
|
|
$params['value'] = $update_error_report_admin;
|
|
Database::pexecute($ins_stmt, $params);
|
|
// customer
|
|
$params['varname'] = 'allow_error_report_customer';
|
|
$params['value'] = $update_error_report_customer;
|
|
Database::pexecute($ins_stmt, $params);
|
|
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.31-dev5');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.31-dev5')) {
|
|
|
|
showUpdateStep("Updating from 0.9.31-dev5 to 0.9.31-dev6", true);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new fpm-configuration options (slowlog)");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `fpm_slowlog` tinyint(1) NOT NULL default '0' AFTER `mod_fcgid_maxrequests`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `fpm_reqterm` varchar(15) NOT NULL default '60s' AFTER `fpm_slowlog`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `fpm_reqslow` varchar(15) NOT NULL default '5s' AFTER `fpm_reqterm`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.31-dev6');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.31-dev6')) {
|
|
showUpdateStep("Updating from 0.9.31-dev6 to 0.9.31-rc1");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.31-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.31-rc1')) {
|
|
showUpdateStep("Updating from 0.9.31-rc1 to 0.9.31-rc2");
|
|
lastStepStatus(0);
|
|
|
|
$update_admin_news_feed = isset($_POST['update_admin_news_feed']) ? (int) $_POST['update_admin_news_feed'] : '1';
|
|
showUpdateStep("Adding new news-feed option");
|
|
$ins_stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET `settinggroup` = 'admin', `varname` = 'show_news_feed', `value` = :value
|
|
");
|
|
Database::pexecute($ins_stmt, array(
|
|
'value' => $update_admin_news_feed
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.31-rc2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.31-rc2')) {
|
|
showUpdateStep("Updating from 0.9.31-rc2 to 0.9.31-rc3");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new php-config for froxlor-vhost");
|
|
Database::query("
|
|
INSERT INTO `panel_phpconfigs` SET
|
|
`description` = 'Froxlor Vhost Config', `binary` = '/usr/bin/php-cgi',
|
|
`file_extensions` = 'php', `mod_fcgid_starter` = '-1', `mod_fcgid_maxrequests` = '-1',
|
|
`phpsettings` = 'allow_call_time_pass_reference = Off\r\nallow_url_fopen = On\r\nasp_tags = Off\r\ndisable_classes =\r\ndisable_functions = curl_multi_exec,exec,parse_ini_file,passthru,popen,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,show_source,system\r\ndisplay_errors = Off\r\ndisplay_startup_errors = Off\r\nenable_dl = Off\r\nerror_reporting = E_ALL & ~E_NOTICE\r\nexpose_php = Off\r\nfile_uploads = On\r\ncgi.force_redirect = 1\r\ngpc_order = \"GPC\"\r\nhtml_errors = Off\r\nignore_repeated_errors = Off\r\nignore_repeated_source = Off\r\ninclude_path = \".:{PEAR_DIR}\"\r\nlog_errors = On\r\nlog_errors_max_len = 1024\r\nmagic_quotes_gpc = Off\r\nmagic_quotes_runtime = Off\r\nmagic_quotes_sybase = Off\r\nmax_execution_time = 60\r\nmax_input_time = 60\r\nmemory_limit = 16M\r\nnoutput_buffering = 4096\r\npost_max_size = 16M\r\nprecision = 14\r\nregister_argc_argv = Off\r\nregister_globals = Off\r\nreport_memleaks = On\r\nsendmail_path = \"/usr/sbin/sendmail -t -i -f {CUSTOMER_EMAIL}\"\r\nsession.auto_start = 0\r\nsession.bug_compat_42 = 0\r\nsession.bug_compat_warn = 1\r\nsession.cache_expire = 180\r\nsession.cache_limiter = nocache\r\nsession.cookie_domain =\r\nsession.cookie_lifetime = 0\r\nsession.cookie_path = /\r\nsession.entropy_file = /dev/urandom\r\nsession.entropy_length = 16\r\nsession.gc_divisor = 1000\r\nsession.gc_maxlifetime = 1440\r\nsession.gc_probability = 1\r\nsession.name = PHPSESSID\r\nsession.referer_check =\r\nsession.save_handler = files\r\nsession.save_path = \"{TMP_DIR}\"\r\nsession.serialize_handler = php\r\nsession.use_cookies = 1\r\nsession.use_trans_sid = 0\r\nshort_open_tag = On\r\nsuhosin.mail.protect = 1\r\nsuhosin.simulation = Off\r\ntrack_errors = Off\r\nupload_max_filesize = 32M\r\nupload_tmp_dir = \"{TMP_DIR}\"\r\nvariables_order = \"GPCS\"\r\n'
|
|
");
|
|
$frxvhostconfid = Database::lastInsertId();
|
|
// update default vhosts-config for froxlor if they are on the system-default
|
|
if (Settings::Get('system.mod_fcgid_defaultini_ownvhost') == '1') {
|
|
$upd_stmt = Database::prepare("
|
|
UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = :value WHERE `settinggroup` = 'system' AND `varname` = 'mod_fcgid_defaultini_ownvhost'
|
|
");
|
|
Database::pexecute($upd_stmt, array(
|
|
'value' => $frxvhostconfid
|
|
));
|
|
}
|
|
if (Settings::Get('phpfpm.vhost_defaultini') == '1') {
|
|
$upd_stmt = Database::prepare("
|
|
UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = :value WHERE `settinggroup` = 'phpfpm' AND `varname` = 'vhost_defaultini'
|
|
");
|
|
Database::pexecute($upd_stmt, array(
|
|
'value' => $frxvhostconfid
|
|
));
|
|
}
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.31-rc3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.31-rc3')) {
|
|
showUpdateStep("Updating from 0.9.31-rc3 to 0.9.31 final", true);
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.31');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.31')) {
|
|
showUpdateStep("Updating from 0.9.31 to 0.9.31.1 final", true);
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.31.1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.31.1')) {
|
|
showUpdateStep("Updating from 0.9.31.1 to 0.9.31.2 final", true);
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.31.2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.31.2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.31.2 to 0.9.32-dev1");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Removing APS-module (deprecated)");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'aps';");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` DROP `can_manage_aps_packages`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` DROP `aps_packages`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` DROP `aps_packages_used`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` DROP `aps_packages`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` DROP `aps_packages_used`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DATABASES . "` DROP `apsdb`;");
|
|
Database::query("DROP TABLE IF EXISTS `aps_packages`;");
|
|
Database::query("DROP TABLE IF EXISTS `aps_instances`;");
|
|
Database::query("DROP TABLE IF EXISTS `aps_settings`;");
|
|
Database::query("DROP TABLE IF EXISTS `aps_tasks`;");
|
|
Database::query("DROP TABLE IF EXISTS `aps_temp_settings`;");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_CRONRUNS . "` WHERE `module` = 'froxlor/aps';");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Removing backup-module (deprecated)");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `varname` = 'backup_enabled';");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `varname` = 'backup_dir';");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `varname` = 'backup_mysqldump_path';");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `varname` = 'backup_count';");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `varname` = 'backup_bigfile';");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `varname` = 'backup_ftp_enabled';");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `varname` = 'backup_ftp_server';");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `varname` = 'backup_ftp_user';");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `varname` = 'backup_ftp_pass';");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `varname` = 'backup_ftp_passive';");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` DROP `backup_allowed`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` DROP `backup_enabled`;");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_CRONRUNS . "` WHERE `module` = 'froxlor/backup';");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Removing autoresponder-module (deprecated)");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'autoresponder';");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` DROP `email_autoresponder`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` DROP `email_autoresponder_used`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` DROP `email_autoresponder`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` DROP `email_autoresponder_used`;");
|
|
Database::query("DROP TABLE IF EXISTS `mail_autoresponder`;");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Updating ftp-groups entries");
|
|
Database::query("UPDATE `" . TABLE_FTP_GROUPS . "` SET `members` = CONCAT(`members`, '," . Settings::Get('system.httpuser') . "');");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.32-dev1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.32-dev1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.32-dev1 to 0.9.32-dev2");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding mailserver - settings for traffic analysis");
|
|
$ins_stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_SETTINGS . "` SET `settinggroup` = 'system', `varname` = :varname, `value` = :value
|
|
");
|
|
|
|
Database::pexecute($ins_stmt, array(
|
|
'varname' => 'mailtraffic_enabled',
|
|
'value' => isset($_POST['mailtraffic_enabled']) ? (int) $_POST['mailtraffic_enabled'] : '1'
|
|
));
|
|
Database::pexecute($ins_stmt, array(
|
|
'varname' => 'mdalog',
|
|
'value' => isset($_POST['mdalog']) ? $_POST['mdalog'] : '/var/log/mail.log'
|
|
));
|
|
Database::pexecute($ins_stmt, array(
|
|
'varname' => 'mtalog',
|
|
'value' => isset($_POST['mtalog']) ? $_POST['mtalog'] : '/var/log/mail.log'
|
|
));
|
|
Database::pexecute($ins_stmt, array(
|
|
'varname' => 'mdaserver',
|
|
'value' => isset($_POST['mdaserver']) ? $_POST['mdaserver'] : 'dovecot'
|
|
));
|
|
Database::pexecute($ins_stmt, array(
|
|
'varname' => 'mtaserver',
|
|
'value' => isset($_POST['mtaserver']) ? $_POST['mtaserver'] : 'postfix'
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.32-dev2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.32-dev2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.32-dev2 to 0.9.32-dev3");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Updating froxlor - theme");
|
|
Database::query("UPDATE `" . TABLE_PANEL_ADMINS . "` SET `theme` = 'Sparkle_froxlor' WHERE `theme` = 'Froxlor';");
|
|
Database::query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `theme` = 'Sparkle_froxlor' WHERE `theme` = 'Froxlor';");
|
|
Database::query("UPDATE `" . TABLE_PANEL_SESSIONS . "` SET `theme` = 'Sparkle_froxlor' WHERE `theme` = 'Froxlor';");
|
|
if (Settings::Get('panel.default_theme') == 'Froxlor') {
|
|
Settings::Set('panel.default_theme', 'Sparkle_froxlor');
|
|
}
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.32-dev3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.32-dev3')) {
|
|
|
|
showUpdateStep("Updating from 0.9.32-dev3 to 0.9.32-dev4");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new FTP-description field");
|
|
Database::query("ALTER TABLE `" . TABLE_FTP_USERS . "` ADD `description` varchar(255) NOT NULL DEFAULT '' AFTER `customerid`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.32-dev4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.32-dev4')) {
|
|
|
|
showUpdateStep("Updating from 0.9.32-dev4 to 0.9.32-dev5");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Updating cronjob table");
|
|
Database::query("UPDATE `" . TABLE_PANEL_CRONRUNS . "` SET `cronfile` = REPLACE( REPLACE(`cronfile`, 'cron_', ''), '.php', '')");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new settings for cron");
|
|
// get user-chosen value
|
|
$crondfile = isset($_POST['crondfile']) ? $_POST['crondfile'] : "/etc/cron.d/froxlor";
|
|
$crondfile = \Froxlor\FileDir::makeCorrectFile($crondfile);
|
|
Settings::AddNew("system.cronconfig", $crondfile);
|
|
// add task to generate cron.d-file
|
|
inserttask('99');
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.32-dev5');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.32-dev5')) {
|
|
|
|
showUpdateStep("Updating from 0.9.32-dev5 to 0.9.32-dev6", false);
|
|
|
|
showUpdateStep("Adding new settings for cron-daemon reload command");
|
|
// get user-chosen value
|
|
$crondreload = isset($_POST['crondreload']) ? $_POST['crondreload'] : "/etc/init.d/cron reload";
|
|
Settings::AddNew("system.crondreload", $crondreload);
|
|
// add task to generate cron.d-file
|
|
inserttask('99');
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.32-dev6');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.32-dev6')) {
|
|
|
|
showUpdateStep("Updating from 0.9.32-dev6 to 0.9.32-rc1", false);
|
|
|
|
showUpdateStep("Enhancing tasks-table");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_TASKS . "` MODIFY `data` text NOT NULL default ''");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.32-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.32-rc1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.32-rc1 to 0.9.32-rc2", false);
|
|
|
|
showUpdateStep("Removing autoresponder-cronjob (deprecated)");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_CRONRUNS . "` WHERE `module` = 'froxlor/autoresponder';");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new settings for cron");
|
|
// get user-chosen value
|
|
$croncmdline = isset($_POST['croncmdline']) ? $_POST['croncmdline'] : "/usr/bin/nice -n 5 /usr/bin/php5 -q";
|
|
Settings::AddNew("system.croncmdline", $croncmdline);
|
|
// add task to generate cron.d-file
|
|
inserttask('99');
|
|
// silenty add the auto-update setting - we do not want everybody to know and use this
|
|
// as it is a very dangerous setting
|
|
Settings::AddNew("system.cron_allowautoupdate", 0);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Removing backup-module ftp-users (deprecated)");
|
|
Database::query("DELETE FROM `" . TABLE_FTP_USERS . "` WHERE `username` LIKE '%_backup';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.32-rc2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.32-rc2')) {
|
|
showUpdateStep("Updating from 0.9.32-rc2 to 0.9.32-rc3", false);
|
|
|
|
showUpdateStep("Removing outdated languages");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_LANGUAGE . "` WHERE `iso` REGEXP '(bg|ca|cz|da|hu|pl|ru|sk|es|zh)';");
|
|
Database::query("UPDATE `" . TABLE_PANEL_ADMINS . "` SET `def_language` = 'English' WHERE `def_language` NOT REGEXP '(Dutch|English|Français|Deutsch|Italian|Portugu\ês|Swedish)';");
|
|
Database::query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `def_language` = 'English' WHERE `def_language` NOT REGEXP '(Dutch|English|Français|Deutsch|Italian|Português|Swedish)';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.32-rc3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.32-rc3')) {
|
|
showUpdateStep("Updating from 0.9.32-rc3 to 0.9.32 final", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.32');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.32')) {
|
|
showUpdateStep("Updating from 0.9.32 to 0.9.33-dev1", false);
|
|
|
|
showUpdateStep("Adding settings for custom newsfeed on customer-dashboard");
|
|
Settings::AddNew("customer.show_news_feed", isset($_POST['customer_show_news_feed']) ? (int) $_POST['customer_show_news_feed'] : '0');
|
|
Settings::AddNew("customer.news_feed_url", isset($_POST['customer_news_feed_url']) ? $_POST['customer_news_feed_url'] : '');
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.33-dev1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.33-dev1')) {
|
|
showUpdateStep("Updating from 0.9.33-dev1 to 0.9.33-dev2", false);
|
|
|
|
showUpdateStep("Adding settings for hostname-dns-entry");
|
|
Settings::AddNew("system.dns_createhostnameentry", isset($_POST['dns_createhostnameentry']) ? (int) $_POST['dns_createhostnameentry'] : '0');
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.33-dev2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.33-dev2')) {
|
|
showUpdateStep("Updating from 0.9.33-dev2 to 0.9.33-dev3", false);
|
|
|
|
showUpdateStep("Adding settings for password-generation options");
|
|
Settings::AddNew("panel.password_alpha_lower", '1');
|
|
Settings::AddNew("panel.password_alpha_upper", '1');
|
|
Settings::AddNew("panel.password_numeric", '0');
|
|
Settings::AddNew("panel.password_special_char_required", '0');
|
|
Settings::AddNew("panel.password_special_char", '!?<>§$%&+#=@');
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding settings for fpm-apache2.4-mod_proxy integration");
|
|
Settings::AddNew("phpfpm.use_mod_proxy", '0');
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.33-dev3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.33-dev3')) {
|
|
showUpdateStep("Updating from 0.9.33-dev3 to 0.9.33-rc1", false);
|
|
|
|
showUpdateStep("Updating database-scheme");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` MODIFY `dkim_privkey` text");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` MODIFY `dkim_pubkey` text");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` MODIFY `specialsettings` text");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_IPSANDPORTS . "` MODIFY `specialsettings` text");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_IPSANDPORTS . "` MODIFY `default_vhostconf_domain` text");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` MODIFY `ssl_ca_file` text");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` MODIFY `ssl_cert_chainfile` text");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Removing old settings");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup`='panel' AND `varname` = 'use_webfonts';");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup`='panel' AND `varname` = 'webfont';");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding local froxlor group to customer groups");
|
|
if ((int) Settings::Get('system.mod_fcgid_ownvhost') == 1 || (int) Settings::Get('phpfpm.enabled_ownvhost') == 1) {
|
|
if ((int) Settings::Get('system.mod_fcgid') == 1) {
|
|
$local_user = Settings::Get('system.mod_fcgid_httpuser');
|
|
} else {
|
|
$local_user = Settings::Get('phpfpm.vhost_httpuser');
|
|
}
|
|
Database::query("UPDATE `" . TABLE_FTP_GROUPS . "` SET `members` = CONCAT(`members`, '," . $local_user . "');");
|
|
lastStepStatus(0);
|
|
} else {
|
|
lastStepStatus(1, "not needed");
|
|
}
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.33-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.33-rc1')) {
|
|
showUpdateStep("Updating from 0.9.33-rc1 to 0.9.33-rc2", false);
|
|
|
|
showUpdateStep("Add new setting for sending cron-errors via mail");
|
|
$sendcronerrors = isset($_POST['system_send_cron_errors']) ? (int) $_POST['system_send_cron_errors'] : "0";
|
|
Settings::addNew('system.send_cron_errors', $sendcronerrors);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Add new custom-notes field for admins and customer");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` ADD `custom_notes` text AFTER `theme`");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` ADD `custom_notes_show` tinyint(1) NOT NULL default '0' AFTER `custom_notes`");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `custom_notes` text AFTER `theme`");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `custom_notes_show` tinyint(1) NOT NULL default '0' AFTER `custom_notes`");
|
|
lastStepStatus(0);
|
|
|
|
// go from varchar(50) to varchar(255) because of some hashes that are longer than that
|
|
showUpdateStep("Updating table structure of admins and customers");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` MODIFY `password` varchar(255) NOT NULL default ''");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` MODIFY `password` varchar(255) NOT NULL default ''");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.33-rc2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.33-rc2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.33-rc2 to 0.9.33-rc3");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.33-rc3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.33-rc3')) {
|
|
|
|
showUpdateStep("Updating from 0.9.33-rc3 to 0.9.33 final");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.33');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.33')) {
|
|
|
|
showUpdateStep("Updating from 0.9.33 to 0.9.33.1");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.33.1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.33.1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.33.1 to 0.9.33.2");
|
|
lastStepStatus(0);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.33.2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.33.2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.33.2 to 0.9.34-dev1", false);
|
|
|
|
showUpdateStep("Updating table structure of domains");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` MODIFY `parentdomainid` int(11) NOT NULL default '0'");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Updating stored email-templates");
|
|
$chk_stmt = Database::prepare("SELECT * FROM `" . TABLE_PANEL_TEMPLATES . "` WHERE `templategroup` = 'mails'");
|
|
Database::pexecute($chk_stmt);
|
|
// do we have any?
|
|
if ($chk_stmt->rowCount() > 0) {
|
|
// prepare update-statement
|
|
$upd_stmt = Database::prepare("UPDATE `" . TABLE_PANEL_TEMPLATES . "` SET `language` = :lang WHERE `id` = :id");
|
|
// get each row
|
|
while ($row = $chk_stmt->fetch()) {
|
|
// let htmlentities run over the language name and update the entry
|
|
Database::pexecute($upd_stmt, array(
|
|
'lang' => htmlentities($row['language'])
|
|
), false);
|
|
}
|
|
lastStepStatus(0);
|
|
} else {
|
|
lastStepStatus(1, "not needed");
|
|
}
|
|
|
|
showUpdateStep("Updating language descriptions to be in the native language");
|
|
$upd_stmt = Database::prepare("UPDATE `" . TABLE_PANEL_LANGUAGE . "` SET `language` = :lang WHERE `iso` = :iso");
|
|
Database::pexecute($upd_stmt, array(
|
|
'lang' => 'Français',
|
|
'iso' => 'fr'
|
|
), false);
|
|
Database::pexecute($upd_stmt, array(
|
|
'lang' => 'Português',
|
|
'iso' => 'pt'
|
|
), false);
|
|
Database::pexecute($upd_stmt, array(
|
|
'lang' => 'Italiano',
|
|
'iso' => 'it'
|
|
), false);
|
|
Database::pexecute($upd_stmt, array(
|
|
'lang' => 'Nederlands',
|
|
'iso' => 'nl'
|
|
), false);
|
|
Database::pexecute($upd_stmt, array(
|
|
'lang' => 'Svenska',
|
|
'iso' => 'sv'
|
|
), false);
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.34-dev1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.34-dev1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.34-dev1 to 0.9.34-dev2", false);
|
|
|
|
showUpdateStep("Adding new settings for apache-itk-mpm");
|
|
Settings::AddNew("system.apacheitksupport", '0');
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Increase text-field size of domain-ssl table");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` MODIFY `ssl_cert_file` mediumtext NOT NULL");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` MODIFY `ssl_key_file` mediumtext NOT NULL");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` MODIFY `ssl_ca_file` mediumtext NOT NULL");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` MODIFY `ssl_cert_chainfile` mediumtext NOT NULL");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.34-dev2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.34-dev2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.34-dev2 to 0.9.34-dev3", false);
|
|
|
|
$do_update = true;
|
|
showUpdateStep("Checking for required PHP mbstring-extension");
|
|
if (! extension_loaded('mbstring')) {
|
|
$do_update = false;
|
|
lastStepStatus(2, 'not installed');
|
|
} else {
|
|
lastStepStatus(0);
|
|
}
|
|
|
|
if ($do_update) {
|
|
\Froxlor\Froxlor::updateToVersion('0.9.34-dev3');
|
|
}
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.34-dev3')) {
|
|
|
|
showUpdateStep("Updating from 0.9.34-dev3 to 0.9.34-dev4", false);
|
|
|
|
showUpdateStep("Adding field umask to phpconfig table");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `mod_fcgid_umask` varchar(15) NOT NULL DEFAULT '022' AFTER `mod_fcgid_maxrequests`");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.34-dev4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.34-dev4')) {
|
|
|
|
showUpdateStep("Updating from 0.9.34-dev4 to 0.9.34 final");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.34');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.34')) {
|
|
|
|
showUpdateStep("Updating from 0.9.34 to 0.9.34.1");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.34.1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.34.1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.34.1 to 0.9.34.2");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.34.2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.34.2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.34.2 to 0.9.35-dev1", false);
|
|
|
|
showUpdateStep("Adding Let's Encrypt - certificate fields");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` ADD `expirationdate` DATETIME NULL AFTER `ssl_cert_chainfile`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `lepublickey` MEDIUMTEXT DEFAULT NULL AFTER `custom_notes_show`");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `leprivatekey` MEDIUMTEXT DEFAULT NULL AFTER `lepublickey`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `letsencrypt` TINYINT(1) NOT NULL DEFAULT '0' AFTER `ismainbutsubto`;");
|
|
Settings::AddNew("system.leprivatekey", 'unset');
|
|
Settings::AddNew("system.lepublickey", 'unset');
|
|
showUpdateStep("Adding new cron-module for Let's encrypt");
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_CRONRUNS . "` SET
|
|
`module` = 'froxlor/letsencrypt',
|
|
`cronfile` = 'letsencrypt',
|
|
`interval` = '5 MINUTE',
|
|
`desc_lng_key` = 'cron_letsencrypt',
|
|
`lastrun` = UNIX_TIMESTAMP(),
|
|
`isactive` = 0");
|
|
Database::pexecute($stmt);
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.35-dev1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.35-dev1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.35-dev1 to 0.9.35-dev2", false);
|
|
|
|
showUpdateStep("Adding Let's Encrypt - settings");
|
|
Settings::AddNew("system.letsencryptca", 'production');
|
|
Settings::AddNew("system.letsencryptcountrycode", 'DE');
|
|
Settings::AddNew("system.letsencryptstate", 'Germany');
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.35-dev2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.35-dev2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.35-dev2 to 0.9.35-dev3", false);
|
|
|
|
showUpdateStep("Adding new domain fields for Let's Encrypt");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `termination_date` date NOT NULL AFTER `registration_date`");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.35-dev3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.35-dev3')) {
|
|
|
|
showUpdateStep("Updating from 0.9.35-dev3 to 0.9.35-dev4", false);
|
|
|
|
// remove unused setting
|
|
showUpdateStep("Removing unused setting "Send cron-errors to froxlor-admin via e-mail"");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'system' AND `varname` = 'send_cron_errors';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.35-dev4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.35-dev4')) {
|
|
|
|
showUpdateStep("Updating from 0.9.35-dev4 to 0.9.35-dev5", false);
|
|
|
|
showUpdateStep("Adding more Let's Encrypt settings");
|
|
Settings::AddNew("system.letsencryptchallengepath", FROXLOR_INSTALL_DIR);
|
|
Settings::AddNew("system.letsencryptkeysize", '4096');
|
|
Settings::AddNew("system.letsencryptreuseold", 0);
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` ADD `ssl_csr_file` MEDIUMTEXT AFTER `ssl_cert_chainfile`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `hsts` VARCHAR(10) NOT NULL DEFAULT '0' AFTER `letsencrypt`");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `hsts_sub` TINYINT(1) NOT NULL DEFAULT '0' AFTER `hsts`");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `hsts_preload` TINYINT(1) NOT NULL DEFAULT '1' AFTER `hsts_sub`");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.35-dev5');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.35-dev5')) {
|
|
|
|
showUpdateStep("Updating from 0.9.35-dev5 to 0.9.35-dev6", false);
|
|
|
|
showUpdateStep("Adding new panel_vhostconfigs table");
|
|
Database::query("DROP TABLE IF EXISTS `panel_vhostconfigs`;");
|
|
$sql = "CREATE TABLE `panel_vhostconfigs` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`description` varchar(50) NOT NULL,
|
|
`vhostsettings` text NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;";
|
|
Database::query($sql);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new fields to panel_domains table");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `vhost_usedefaultlocation` tinyint(1) NOT NULL default '1' AFTER `ssl_redirect`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `vhostsettingid` tinyint(11) NOT NULL default '0' AFTER `vhost_usedefaultlocation`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.35-dev6');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.35-dev6')) {
|
|
|
|
showUpdateStep("Updating from 0.9.35-dev6 to 0.9.35-dev7", false);
|
|
|
|
showUpdateStep("Adding a new field to the panel_vhostconfigs table");
|
|
$webserver = Settings::Get('system.webserver');
|
|
Database::query("ALTER TABLE `panel_vhostconfigs` ADD `webserver` VARCHAR(255) NOT NULL DEFAULT '" . $webserver . "' AFTER `vhostsettings`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.35-dev7');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.35-dev7')) {
|
|
|
|
showUpdateStep("Updating from 0.9.35-dev7 to 0.9.35-rc1");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.35-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.35-rc1') && \Froxlor\Froxlor::isDatabaseVersion(null)) {
|
|
|
|
Settings::AddNew("panel.db_version", "201603070");
|
|
|
|
showUpdateStep("Removing unused table and fields from database");
|
|
Database::query("DROP TABLE IF EXISTS `panel_vhostconfigs`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` DROP `vhost_usedefaultlocation`;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` DROP `vhostsettingid`;");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new setting to enable/disable Let's Encrypt");
|
|
$enable_letsencrypt = isset($_POST['enable_letsencrypt']) ? (int) $_POST['enable_letsencrypt'] : "1";
|
|
Settings::AddNew("system.leenabled", $enable_letsencrypt);
|
|
Database::query("UPDATE `" . TABLE_PANEL_CRONRUNS . "` SET `isactive` = '" . $enable_letsencrypt . "' WHERE `cronfile` = 'letsencrypt'");
|
|
lastStepStatus(0);
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201603070')) {
|
|
|
|
showUpdateStep("Adding new php.ini directive to php-configurations: opcache.restrict_api");
|
|
Database::query("UPDATE `" . TABLE_PANEL_PHPCONFIGS . "` SET `phpsettings` = CONCAT(`phpsettings`, '\r\nopcache.restrict_api = \"{DOCUMENT_ROOT}\"\r\n');");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201603150');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.35-rc1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.35-rc1 to 0.9.35 final");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.35');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.35')) {
|
|
|
|
showUpdateStep("Updating from 0.9.35 to 0.9.35.1");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.35.1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.35.1') && \Froxlor\Froxlor::isDatabaseVersion('201603150')) {
|
|
|
|
showUpdateStep("Adding new backup settings and cron");
|
|
$enable_backup = isset($_POST['enable_backup']) ? (int) $_POST['enable_backup'] : "0";
|
|
Settings::AddNew("system.backupenabled", $enable_backup);
|
|
$stmt = Database::prepare("
|
|
INSERT INTO `" . TABLE_PANEL_CRONRUNS . "` SET
|
|
`module` = 'froxlor/backup',
|
|
`cronfile` = 'backup',
|
|
`interval` = '1 DAY',
|
|
`desc_lng_key` = 'cron_backup',
|
|
`lastrun` = 0,
|
|
`isactive` = :isactive");
|
|
Database::pexecute($stmt, array(
|
|
'isactive' => $enable_backup
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201604270');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.35.1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.35.1 to 0.9.36 final");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToVersion('0.9.36');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201604270')) {
|
|
|
|
showUpdateStep("Adding new dns related tables and settings");
|
|
$enable_dns = isset($_POST['enable_dns']) ? (int) $_POST['enable_dns'] : "0";
|
|
Settings::AddNew("system.dnsenabled", $enable_dns);
|
|
|
|
Database::query("DROP TABLE IF EXISTS `domain_dns_entries`;");
|
|
$sql = "CREATE TABLE `domain_dns_entries` (
|
|
`id` int(20) NOT NULL auto_increment,
|
|
`domain_id` int(15) NOT NULL,
|
|
`record` varchar(255) NOT NULL,
|
|
`type` varchar(10) NOT NULL DEFAULT 'A',
|
|
`content` text NOT NULL,
|
|
`ttl` int(11) NOT NULL DEFAULT '18000',
|
|
`prio` int(11) DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;";
|
|
Database::query($sql);
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201605090');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201605090')) {
|
|
|
|
showUpdateStep("Adjusting SPF record setting");
|
|
$current_spf = Settings::Get('spf.spf_entry');
|
|
// @ IN TXT "v=spf1 a mx -all"
|
|
$new_spf = substr($current_spf, strpos($current_spf, '"'));
|
|
Settings::Set('spf.spf_entry', $new_spf, true);
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201605120');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201605120')) {
|
|
|
|
showUpdateStep("Adding new dns-server setting");
|
|
$new_dns_daemon = isset($_POST['new_dns_daemon']) ? $_POST['new_dns_daemon'] : "bind";
|
|
Settings::AddNew("system.dns_server", $new_dns_daemon);
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201605170');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201605170')) {
|
|
|
|
showUpdateStep("Adding new dns-editor setting for customers");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `dnsenabled` tinyint(1) NOT NULL default '0' AFTER `perlenabled`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201605180');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201605180')) {
|
|
|
|
showUpdateStep("Changing tables to be more mysql strict-mode compatible");
|
|
Database::query("ALTER TABLE `" . TABLE_FTP_USERS . "` CHANGE `last_login` `last_login` DATETIME NULL DEFAULT NULL;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_IPSANDPORTS . "` CHANGE `specialsettings` `specialsettings` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_TASKS . "` CHANGE `data` `data` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201606190');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201606190')) {
|
|
|
|
showUpdateStep("Adding new setting for mod_php users to specify content of the global directory options file");
|
|
Settings::AddNew("system.apacheglobaldiropt", "");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201607140');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.36')) {
|
|
|
|
showUpdateStep("Updating from 0.9.36 to 0.9.37-rc1", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.37-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201607140')) {
|
|
|
|
showUpdateStep("Adding new setting to hide certain options in customer panel");
|
|
Settings::AddNew("panel.customer_hide_options", "");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201607210');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.37-rc1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.37-rc1 to 0.9.37 final", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.37');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201607210')) {
|
|
|
|
showUpdateStep("Adding new settings for customer shell option");
|
|
Settings::AddNew("system.allow_customer_shell", "0");
|
|
Settings::AddNew("system.available_shells", "");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201608260');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201608260')) {
|
|
|
|
showUpdateStep("Adding new settings to use Let's Encrypt for froxlor");
|
|
Settings::AddNew("system.le_froxlor_enabled", "0");
|
|
Settings::AddNew("system.le_froxlor_redirect", "0");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201609050');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201609050')) {
|
|
|
|
showUpdateStep("Adding new settings for acme.conf (Let's Encrypt)");
|
|
// get user-chosen value
|
|
$websrv_default = "/etc/apache2/conf-enabled/acme.conf";
|
|
if (Settings::Get('system.webserver') == 'nginx') {
|
|
$websrv_default = "/etc/nginx/acme.conf";
|
|
}
|
|
$acmeconffile = isset($_POST['acmeconffile']) ? $_POST['acmeconffile'] : $websrv_default;
|
|
$acmeconffile = \Froxlor\FileDir::makeCorrectFile($acmeconffile);
|
|
Settings::AddNew("system.letsencryptacmeconf", $acmeconffile);
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201609120');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201609120')) {
|
|
|
|
showUpdateStep("Adding new SMTP settings for emails sent by froxlor");
|
|
// get user-chosen value
|
|
$smtp_enable = isset($_POST['smtp_enable']) ? (int) $_POST['smtp_enable'] : 0;
|
|
$smtp_host = isset($_POST['smtp_host']) ? $_POST['smtp_host'] : "localhost";
|
|
$smtp_port = isset($_POST['smtp_port']) ? (int) $_POST['smtp_port'] : 25;
|
|
$smtp_usetls = isset($_POST['smtp_usetls']) ? (int) $_POST['smtp_usetls'] : 1;
|
|
$smtp_useauth = isset($_POST['smtp_auth']) ? (int) $_POST['smtp_auth'] : 1;
|
|
$smtp_user = isset($_POST['smtp_user']) ? $_POST['smtp_user'] : "";
|
|
$smtp_passwd = isset($_POST['smtp_passwd']) ? $_POST['smtp_passwd'] : "";
|
|
|
|
Settings::AddNew("system.mail_use_smtp", $smtp_enable);
|
|
Settings::AddNew("system.mail_smtp_host", $smtp_host);
|
|
Settings::AddNew("system.mail_smtp_port", $smtp_port);
|
|
Settings::AddNew("system.mail_smtp_usetls", $smtp_usetls);
|
|
Settings::AddNew("system.mail_smtp_auth", $smtp_useauth);
|
|
Settings::AddNew("system.mail_smtp_user", $smtp_user);
|
|
Settings::AddNew("system.mail_smtp_passwd", $smtp_passwd);
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201609200');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201609200')) {
|
|
|
|
showUpdateStep("Changing tables to be more mysql strict-mode compatible");
|
|
Database::query("ALTER TABLE `" . TABLE_MAIL_VIRTUAL . "` CHANGE `destination` `destination` TEXT NOT NULL DEFAULT '';");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` CHANGE `registration_date` `registration_date` DATE NULL DEFAULT NULL;");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` CHANGE `termination_date` `termination_date` DATE NULL DEFAULT NULL;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201609240');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201609240')) {
|
|
|
|
showUpdateStep("Add HSTS settings for froxlor-vhost");
|
|
Settings::AddNew("system.hsts_maxage", 0);
|
|
Settings::AddNew("system.hsts_incsub", 0);
|
|
Settings::AddNew("system.hsts_preload", 0);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Settings HSTS default values for all domains (deactivated)");
|
|
Database::query("UPDATE `" . TABLE_PANEL_DOMAINS . "` SET `hsts_sub` = '0', `hsts_preload` = '0';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201610070');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.37')) {
|
|
|
|
showUpdateStep("Updating from 0.9.37 to 0.9.38-rc1", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.38-rc1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.38-rc1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.38-rc1 to 0.9.38-rc2", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.38-rc2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.38-rc2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.38-rc2 to 0.9.38 final", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.38');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201610070')) {
|
|
|
|
showUpdateStep("Add Nginx http2 setting");
|
|
Settings::AddNew("system.nginx_http2_support", 0);
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201611180');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.38')) {
|
|
|
|
showUpdateStep("Updating from 0.9.38 to 0.9.38.1", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.38.1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.38.1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.38.1 to 0.9.38.2", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.38.2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.38.2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.38.2 to 0.9.38.3", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.38.3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.38.3')) {
|
|
|
|
showUpdateStep("Updating from 0.9.38.3 to 0.9.38.4", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.38.4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201611180')) {
|
|
|
|
showUpdateStep("Updating database table definition for panel_domains");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `phpenabled` tinyint(1) NOT NULL default '1' AFTER `parentdomainid`;");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding field for let's-encrypt registration status");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` add `leregistered` TINYINT(1) NOT NULL DEFAULT 0;");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding system setting for let's-encrypt registration status");
|
|
Settings::AddNew('system.leregistered', '0');
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding unique key to ipsandports table");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_IPSANDPORTS . "` ADD UNIQUE KEY `ip_port` (`ip`,`port`)");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201612110');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.38.4')) {
|
|
|
|
showUpdateStep("Updating from 0.9.38.4 to 0.9.38.5", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.38.5');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.38.5')) {
|
|
|
|
showUpdateStep("Updating from 0.9.38.5 to 0.9.38.6", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.38.6');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.38.6')) {
|
|
|
|
showUpdateStep("Updating from 0.9.38.6 to 0.9.38.7", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.38.7');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201612110')) {
|
|
|
|
showUpdateStep("Adding field for OCSP stapling");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `ocsp_stapling` TINYINT(1) NOT NULL DEFAULT '0';");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding default setting for Apache 2.4 OCSP cache path");
|
|
Settings::AddNew('system.apache24_ocsp_cache_path', 'shmcb:/var/run/apache2/ocsp-stapling.cache(131072)');
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201704100');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201704100')) {
|
|
|
|
showUpdateStep("Adding new setting for libnss-extrausers");
|
|
$system_nssextrausers = isset($_POST['system_nssextrausers']) ? (int) $_POST['system_nssextrausers'] : 0;
|
|
Settings::AddNew('system.nssextrausers', $system_nssextrausers);
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201705050');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201705050')) {
|
|
|
|
showUpdateStep("Updating HTTP2 setting");
|
|
if (Settings::Get('system.nginx_http2_support') != null) {
|
|
Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `varname` = 'http2_support' WHERE `varname` = 'nginx_http2_support';");
|
|
} else {
|
|
Settings::AddNew('system.http2_support', 0);
|
|
}
|
|
lastStepStatus(0);
|
|
showUpdateStep("Adding domain field for HTTP2 stapling");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `http2` TINYINT(1) NOT NULL DEFAULT '0';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201708240');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201708240')) {
|
|
|
|
showUpdateStep("Adding new 'disable LE self-check' setting");
|
|
$system_disable_le_selfcheck = isset($_POST['system_disable_le_selfcheck']) ? (int) $_POST['system_disable_le_selfcheck'] : 0;
|
|
Settings::AddNew('system.disable_le_selfcheck', $system_disable_le_selfcheck);
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201712310');
|
|
|
|
showUpdateStep("Updating from 0.9.38.7 to 0.9.38.8", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.38.8');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201712310')) {
|
|
|
|
showUpdateStep("Adding field for fpm-daemon configs");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `fpmsettingid` int(11) NOT NULL DEFAULT '1';");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding new fpm-daemons table");
|
|
Database::query("DROP TABLE IF EXISTS `panel_fpmdaemons`;");
|
|
$sql = "CREATE TABLE `panel_fpmdaemons` (
|
|
`id` int(11) unsigned NOT NULL auto_increment,
|
|
`description` varchar(50) NOT NULL,
|
|
`reload_cmd` varchar(255) NOT NULL,
|
|
`config_dir` varchar(255) NOT NULL,
|
|
`pm` varchar(15) NOT NULL DEFAULT 'static',
|
|
`max_children` int(4) NOT NULL DEFAULT '1',
|
|
`start_servers` int(4) NOT NULL DEFAULT '20',
|
|
`min_spare_servers` int(4) NOT NULL DEFAULT '5',
|
|
`max_spare_servers` int(4) NOT NULL DEFAULT '35',
|
|
`max_requests` int(4) NOT NULL DEFAULT '0',
|
|
`idle_timeout` int(4) NOT NULL DEFAULT '30',
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `reload` (`reload_cmd`),
|
|
UNIQUE KEY `config` (`config_dir`)
|
|
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;";
|
|
Database::query($sql);
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Converting php-fpm settings to new layout");
|
|
$ins_stmt = Database::prepare("
|
|
INSERT INTO `panel_fpmdaemons` SET
|
|
`id` = 1,
|
|
`description` = 'System default',
|
|
`reload_cmd` = :reloadcmd,
|
|
`config_dir` = :confdir,
|
|
`pm` = :pm,
|
|
`max_children` = :maxc,
|
|
`start_servers` = :starts,
|
|
`min_spare_servers` = :minss,
|
|
`max_spare_servers` = :maxss,
|
|
`max_requests` = :maxr,
|
|
`idle_timeout` = :it
|
|
");
|
|
Database::pexecute($ins_stmt, array(
|
|
'reloadcmd' => Settings::Get('phpfpm.reload'),
|
|
'confdir' => Settings::Get('phpfpm.configdir'),
|
|
'pm' => Settings::Get('phpfpm.pm'),
|
|
'maxc' => Settings::Get('phpfpm.max_children'),
|
|
'starts' => Settings::Get('phpfpm.start_servers'),
|
|
'minss' => Settings::Get('phpfpm.min_spare_servers'),
|
|
'maxss' => Settings::Get('phpfpm.max_spare_servers'),
|
|
'maxr' => Settings::Get('phpfpm.max_requests'),
|
|
'it' => Settings::Get('phpfpm.idle_timeout')
|
|
));
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Deleting unneeded settings");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'reload'");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'configdir'");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'pm'");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'max_children'");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'start_servers'");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'min_spare_servers'");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'max_spare_servers'");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'max_requests'");
|
|
Database::query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup` = 'phpfpm' AND `varname` = 'idle_timeout'");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201801070');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201801070')) {
|
|
|
|
showUpdateStep("Adding field allowed_phpconfigs for customers");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `allowed_phpconfigs` varchar(500) NOT NULL default '';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201801080');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201801080')) {
|
|
|
|
showUpdateStep("Adding new setting for Let's Encrypt ACME version");
|
|
Settings::AddNew('system.leapiversion', '1');
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201801090');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201801090')) {
|
|
|
|
showUpdateStep("Adding field pass_authorizationheader for php-configs");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `pass_authorizationheader` tinyint(1) NOT NULL default '0';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201801091');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201801091')) {
|
|
|
|
showUpdateStep("Adding new setting for SSL protocols");
|
|
Settings::AddNew('system.ssl_protocols', 'TLSv1,TLSv1.2');
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201801100');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201801100')) {
|
|
|
|
showUpdateStep("Adding field for security.limit_extensions fpm-setting");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_FPMDAEMONS . "` ADD `limit_extensions` varchar(255) NOT NULL default '.php';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201801101');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201801101')) {
|
|
|
|
showUpdateStep("Adding dynamic php-fpm php.ini settings");
|
|
Settings::AddNew('phpfpm.ini_flags', 'asp_tags
|
|
display_errors
|
|
display_startup_errors
|
|
html_errors
|
|
log_errors
|
|
magic_quotes_gpc
|
|
magic_quotes_runtime
|
|
magic_quotes_sybase
|
|
mail.add_x_header
|
|
session.cookie_secure
|
|
session.use_cookies
|
|
short_open_tag
|
|
track_errors
|
|
xmlrpc_errors
|
|
suhosin.simulation
|
|
suhosin.session.encrypt
|
|
suhosin.session.cryptua
|
|
suhosin.session.cryptdocroot
|
|
suhosin.cookie.encrypt
|
|
suhosin.cookie.cryptua
|
|
suhosin.cookie.cryptdocroot
|
|
suhosin.executor.disable_eval
|
|
mbstring.func_overload');
|
|
Settings::AddNew('phpfpm.ini_values', 'auto_append_file
|
|
auto_prepend_file
|
|
date.timezone
|
|
default_charset
|
|
error_reporting
|
|
include_path
|
|
log_errors_max_len
|
|
mail.log
|
|
max_execution_time
|
|
session.cookie_domain
|
|
session.cookie_lifetime
|
|
session.cookie_path
|
|
session.name
|
|
session.serialize_handler
|
|
upload_max_filesize
|
|
xmlrpc_error_number
|
|
session.auto_start
|
|
always_populate_raw_post_data
|
|
suhosin.session.cryptkey
|
|
suhosin.session.cryptraddr
|
|
suhosin.session.checkraddr
|
|
suhosin.cookie.cryptkey
|
|
suhosin.cookie.plainlist
|
|
suhosin.cookie.cryptraddr
|
|
suhosin.cookie.checkraddr
|
|
suhosin.executor.func.blacklist
|
|
suhosin.executor.eval.whitelist');
|
|
Settings::AddNew('phpfpm.ini_admin_flags', 'allow_call_time_pass_reference
|
|
allow_url_fopen
|
|
allow_url_include
|
|
auto_detect_line_endings
|
|
cgi.fix_pathinfo
|
|
cgi.force_redirect
|
|
enable_dl
|
|
expose_php
|
|
file_uploads
|
|
ignore_repeated_errors
|
|
ignore_repeated_source
|
|
log_errors
|
|
register_argc_argv
|
|
report_memleaks
|
|
opcache.enable
|
|
opcache.consistency_checks
|
|
opcache.dups_fix
|
|
opcache.load_comments
|
|
opcache.revalidate_path
|
|
opcache.save_comments
|
|
opcache.use_cwd
|
|
opcache.validate_timestamps
|
|
opcache.fast_shutdown');
|
|
Settings::AddNew('phpfpm.ini_admin_values', 'cgi.redirect_status_env
|
|
date.timezone
|
|
disable_classes
|
|
disable_functions
|
|
error_log
|
|
gpc_order
|
|
max_input_time
|
|
max_input_vars
|
|
memory_limit
|
|
open_basedir
|
|
output_buffering
|
|
post_max_size
|
|
precision
|
|
sendmail_path
|
|
session.gc_divisor
|
|
session.gc_probability
|
|
variables_order
|
|
opcache.log_verbosity_level
|
|
opcache.restrict_api
|
|
opcache.revalidate_freq
|
|
opcache.max_accelerated_files
|
|
opcache.memory_consumption
|
|
opcache.interned_strings_buffer');
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201801110');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201801110')) {
|
|
|
|
showUpdateStep("Adding php-fpm php PATH setting for envrironment");
|
|
Settings::AddNew("phpfpm.envpath", '/usr/local/bin:/usr/bin:/bin');
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201801260');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.38.8')) {
|
|
|
|
showUpdateStep("Updating from 0.9.38.8 to 0.9.39 final", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.39');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.39')) {
|
|
|
|
showUpdateStep("Updating from 0.9.39 to 0.9.39.1", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.39.1');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.39.1')) {
|
|
|
|
showUpdateStep("Updating from 0.9.39.1 to 0.9.39.2", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.39.2');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201801260')) {
|
|
|
|
showUpdateStep("Adding new plans table");
|
|
Database::query("DROP TABLE IF EXISTS `panel_plans`;");
|
|
$sql = "CREATE TABLE `panel_plans` (
|
|
`id` int(11) NOT NULL auto_increment,
|
|
`adminid` int(11) NOT NULL default '0',
|
|
`name` varchar(255) NOT NULL default '',
|
|
`description` text NOT NULL,
|
|
`value` longtext NOT NULL,
|
|
`ts` int(15) NOT NULL default '0',
|
|
PRIMARY KEY (id),
|
|
KEY adminid (adminid)
|
|
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;";
|
|
Database::query($sql);
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201802120');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201802120')) {
|
|
|
|
showUpdateStep("Adding domain field for try_files flag");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `notryfiles` tinyint(1) DEFAULT '0';");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201802130');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.39.2')) {
|
|
|
|
showUpdateStep("Updating from 0.9.39.2 to 0.9.39.3", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.39.3');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.39.3')) {
|
|
|
|
showUpdateStep("Updating from 0.9.39.3 to 0.9.39.4", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.39.4');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.39.4')) {
|
|
|
|
showUpdateStep("Updating from 0.9.39.4 to 0.9.39.5", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.39.5');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201802130')) {
|
|
|
|
showUpdateStep("Adding fullchain field to ssl certificates");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` ADD `ssl_fullchain_file` mediumtext AFTER `ssl_csr_file`;");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201802250');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201802250')) {
|
|
|
|
showUpdateStep("Adding webserver logfile settings");
|
|
Settings::AddNew("system.logfiles_format", '');
|
|
Settings::AddNew("system.logfiles_type", '1');
|
|
Settings::AddNew("system.logfiles_piped", '0');
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201805240');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201805240')) {
|
|
|
|
showUpdateStep("Adding webserver logfile-script settings");
|
|
Settings::AddNew("system.logfiles_script", '');
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201805241');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201805241')) {
|
|
|
|
$do_update = true;
|
|
showUpdateStep("Checking for required PHP json-extension");
|
|
if (! extension_loaded('json')) {
|
|
$do_update = false;
|
|
lastStepStatus(2, 'not installed');
|
|
} else {
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Checking for current cronjobs that need converting");
|
|
$result_tasks_stmt = Database::query("
|
|
SELECT * FROM `" . TABLE_PANEL_TASKS . "` ORDER BY `id` ASC
|
|
");
|
|
$upd_stmt = Database::prepare("UPDATE `" . TABLE_PANEL_TASKS . "` SET `data` = :data WHERE `id` = :taskid");
|
|
while ($row = $result_tasks_stmt->fetch(PDO::FETCH_ASSOC)) {
|
|
if (! empty($row['data'])) {
|
|
$data = unserialize($row['data']);
|
|
Database::pexecute($upd_stmt, array(
|
|
'data' => json_encode($data),
|
|
'taskid' => $row['id']
|
|
));
|
|
}
|
|
}
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201805290');
|
|
}
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201805290')) {
|
|
|
|
showUpdateStep("Adding leaccount field to panel customers");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD COLUMN `leaccount` varchar(255) default '' AFTER `leregistered`;");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Adding system setting for let's-encrypt account");
|
|
Settings::AddNew('system.leaccount', "");
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201809180');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isDatabaseVersion('201809180')) {
|
|
|
|
showUpdateStep("Adding new fields for php configs");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `override_fpmconfig` tinyint(1) NOT NULL DEFAULT '0';");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `pm` varchar(15) NOT NULL DEFAULT 'static';");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `max_children` int(4) NOT NULL DEFAULT '1';");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `start_servers` int(4) NOT NULL DEFAULT '20';");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `min_spare_servers` int(4) NOT NULL DEFAULT '5';");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `max_spare_servers` int(4) NOT NULL DEFAULT '35';");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `max_requests` int(4) NOT NULL DEFAULT '0';");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `idle_timeout` int(4) NOT NULL DEFAULT '30';");
|
|
Database::query("ALTER TABLE `" . TABLE_PANEL_PHPCONFIGS . "` ADD `limit_extensions` varchar(255) NOT NULL default '.php';");
|
|
lastStepStatus(0);
|
|
|
|
showUpdateStep("Synchronize fpm-daemon process manager settings with php-configs");
|
|
// get all fpm-daemons
|
|
$sel_stmt = Database::prepare("SELECT * FROM `panel_fpmdaemons`;");
|
|
Database::pexecute($sel_stmt);
|
|
$fpm_daemons = $sel_stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
$upd_stmt = Database::prepare("UPDATE `" . TABLE_PANEL_PHPCONFIGS . "` SET
|
|
`pm` = :pm,
|
|
`max_children` = :maxc,
|
|
`start_servers` = :starts,
|
|
`min_spare_servers` = :minss,
|
|
`max_spare_servers` = :maxss,
|
|
`max_requests` = :maxr,
|
|
`idle_timeout` = :it,
|
|
`limit_extensions` = :le
|
|
WHERE `fpmsettingid` = :fpmid
|
|
");
|
|
// update all php-configs with the pm data from the fpm-daemon
|
|
foreach ($fpm_daemons as $fpm_daemon) {
|
|
Database::pexecute($upd_stmt, array(
|
|
'pm' => $fpm_daemon['pm'],
|
|
'maxc' => $fpm_daemon['max_children'],
|
|
'starts' => $fpm_daemon['start_servers'],
|
|
'minss' => $fpm_daemon['min_spare_servers'],
|
|
'maxss' => $fpm_daemon['max_spare_servers'],
|
|
'maxr' => $fpm_daemon['max_requests'],
|
|
'it' => $fpm_daemon['idle_timeout'],
|
|
'le' => $fpm_daemon['limit_extensions'],
|
|
'fpmid' => $fpm_daemon['id']
|
|
));
|
|
}
|
|
lastStepStatus(0);
|
|
|
|
\Froxlor\Froxlor::updateToDbVersion('201809280');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.39.5')) {
|
|
showUpdateStep("Updating from 0.9.39.5 to 0.9.40", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.40');
|
|
}
|
|
|
|
if (\Froxlor\Froxlor::isFroxlorVersion('0.9.40')) {
|
|
|
|
showUpdateStep("Updating from 0.9.40 to 0.9.40.1", false);
|
|
\Froxlor\Froxlor::updateToVersion('0.9.40.1');
|
|
}
|