- first commit for upcoming multiserver-support :)

This commit is contained in:
Michael Kaufmann (d00p)
2010-10-16 20:00:24 +00:00
parent 9fe6db8cd9
commit 3aff47d983
20 changed files with 401 additions and 158 deletions

View File

@@ -45,6 +45,7 @@ CREATE TABLE `ftp_users` (
`down_count` int(15) NOT NULL default '0',
`down_bytes` bigint(30) NOT NULL default '0',
`customerid` int(11) NOT NULL default '0',
`sid` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
KEY `customerid` (`customerid`)
@@ -103,6 +104,7 @@ CREATE TABLE `mail_virtual` (
`customerid` int(11) NOT NULL default '0',
`popaccountid` int(11) NOT NULL default '0',
`iscatchall` tinyint(1) unsigned NOT NULL default '0',
`sid` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `email` (`email`)
) TYPE=MyISAM ;
@@ -232,6 +234,7 @@ CREATE TABLE `panel_customers` (
`perlenabled` tinyint(1) NOT NULL default '0',
`email_autoresponder` int(5) NOT NULL default '0',
`email_autoresponder_used` int(5) NOT NULL default '0',
`sid` int(11) NOT NULL default '0',
PRIMARY KEY (`customerid`),
UNIQUE KEY `loginname` (`loginname`)
) TYPE=MyISAM ;
@@ -434,6 +437,7 @@ CREATE TABLE `panel_settings` (
`settinggroup` varchar(255) NOT NULL default '',
`varname` varchar(255) NOT NULL default '',
`value` text NOT NULL,
`sid` int(11) NOT NULL default '0',
PRIMARY KEY (`settingid`)
) TYPE=MyISAM ;
@@ -462,7 +466,7 @@ INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) V
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (18, 'system', 'vmail_homedir', '/var/customers/mail/');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (19, 'system', 'bindconf_directory', '/etc/bind/');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (20, 'system', 'bindreload_command', '/etc/init.d/bind9 reload');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.14-svn6');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.14-svn7');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (23, 'system', 'hostname', 'SERVERNAME');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (24, 'login', 'maxloginattempts', '3');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (25, 'login', 'deactivatetime', '900');
@@ -546,7 +550,6 @@ INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) V
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (104, 'aps', 'webserver-htaccess', '');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (105, 'aps', 'php-function', '');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (106, 'aps', 'webserver-module', '');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (107, 'system', 'realtime_port', '0');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (108, 'session', 'allow_multiple_login', '0');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (109, 'panel', 'allow_domain_change_admin', '0');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (110, 'panel', 'allow_domain_change_customer', '0');
@@ -607,6 +610,7 @@ CREATE TABLE `panel_tasks` (
`id` int(11) unsigned NOT NULL auto_increment,
`type` int(11) NOT NULL default '0',
`data` text NOT NULL,
`sid` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM ;
@@ -795,7 +799,7 @@ CREATE TABLE `panel_tickets` (
`message` text NOT NULL,
`dt` int(15) NOT NULL,
`lastchange` int(15) NOT NULL,
`ip` varchar(20) NOT NULL,
`ip` varchar(39) NOT NULL default '',
`status` enum('0','1','2','3') NOT NULL default '1',
`lastreplier` enum('0','1') NOT NULL default '0',
`answerto` int(11) unsigned NOT NULL,
@@ -840,6 +844,7 @@ CREATE TABLE IF NOT EXISTS `panel_syslog` (
`date` int(15) NOT NULL,
`user` varchar(50) NOT NULL,
`text` text NOT NULL,
`sid` int(11) NOT NULL default '0',
PRIMARY KEY (`logid`)
) ENGINE=MyISAM;
@@ -888,6 +893,7 @@ CREATE TABLE `panel_phpconfigs` (
`mod_fcgid_starter` int(4) NOT NULL DEFAULT '-1',
`mod_fcgid_maxrequests` int(4) NOT NULL DEFAULT '-1',
`phpsettings` text NOT NULL,
`sid` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
@@ -955,6 +961,7 @@ CREATE TABLE IF NOT EXISTS `aps_tasks` (
`ID` int(4) NOT NULL auto_increment,
`InstanceID` int(4) NOT NULL,
`Task` int(4) NOT NULL,
`sid` int(11) NOT NULL default '0',
PRIMARY KEY (`ID`)
) ENGINE=MyISAM;
@@ -1086,3 +1093,17 @@ CREATE TABLE IF NOT EXISTS `domain_redirect_codes` (
`did` int(11) unsigned NOT NULL,
UNIQUE KEY `rc` (`rid`, `did`)
) ENGINE=MyISAM;
#
# Tabellenstruktur fuer Tabelle `froxlor_clients`
#
DROP TABLE IF EXISTS `froxlor_clients`;
CREATE TABLE IF NOT EXISTS `froxlor_clients` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`ip` varchar(39) NOT NULL default '',
`enabled` tinyint(1) DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=MyISAM;

View File

@@ -255,6 +255,17 @@ function requirement_checks()
status_message('green', 'OK');
}
// check for ssh2 (multiserver-mode)
status_message('begin', $lng['install']['phpssh2']);
if(!extension_loaded('ssh2'))
{
status_message('orange', $lng['install']['ssh2neededformultiserver']);
}
else
{
status_message('green', 'OK');
}
if($_die)
{
?>
@@ -753,8 +764,10 @@ if(isset($_POST['installstep'])
$userdata.= "\$sql_root[0]['caption']='Default';\n";
$userdata.= "\$sql_root[0]['host']='" . addcslashes($mysql_host, "'\\") . "';\n";
$userdata.= "\$sql_root[0]['user']='" . addcslashes($mysql_root_user, "'\\") . "';\n";
$userdata.= "\$sql_root[0]['password']='" . addcslashes($mysql_root_pass, "'\\") . "';\n";
$userdata.= "?>";
$userdata.= "\$sql_root[0]['password']='" . addcslashes($mysql_root_pass, "'\\") . "';\n\n";
$userdata.= "// Define our system id (multiserver support, default is '0')\n";
$userdata.= "\$server_id = 0;\n";
$userdata.= "?>\n";
//we test now if we can store the userdata.inc.php in ../lib

View File

@@ -98,4 +98,8 @@ $lng['install']['phpmagic_quotes_runtime'] = 'Checking whether magic_quotes_runt
$lng['install']['active'] = 'no';
$lng['install']['phpmagic_quotes_runtime_description'] = 'PHP setting "magic_quotes_runtime" must be set to "Off" in order to avoid strange behavior of Froxlor. Disabling it for now (this is only temporary, please fix our php.ini).';
// ADDED IN FROXLOR 0.9.14-svn7
$lng['install']['phpssh2'] = 'Testing if PHP ssh2-extension is installed...';
$lng['install']['ssh2neededformultiserver'] = 'not found. If you plan to use the multiserver mode you have to recompile PHP with the ssh2-extenstion.'
?>

View File

@@ -98,4 +98,8 @@ $lng['install']['phpmagic_quotes_runtime'] = 'Prüfe ob magic_quotes_runtime
$lng['install']['active'] = 'nein';
$lng['install']['phpmagic_quotes_runtime_description'] = 'Die PHP Einstellung "magic_quotes_runtime" muss deaktiviert sein ("Off"), um merkwürdige Verhalten von Froxlor zu umgehen. Sie wurde deaktiviert (nur temporär, bitte php.ini anpassen).';
// ADDED IN FROXLOR 0.9.14-svn7
$lng['install']['phpssh2'] = 'Teste, ob die PHP ssh2-Erweiterung installiert ist...';
$lng['install']['ssh2neededformultiserver'] = 'nicht gefunden. Falls Multiserver Modus genutzt werden soll, muss PHP mit der ssh2-Extenstion neu kompiliert werden.'
?>

View File

@@ -1168,3 +1168,109 @@ if(isFroxlorVersion('0.9.14-svn5'))
updateToVersion('0.9.14-svn6');
}
if(isFroxlorVersion('0.9.14-svn6'))
{
showUpdateStep("Updating from 0.9.14-svn6 to 0.9.14-svn7", false);
// remove deprecated realtime-feature
showUpdateStep("Removing realtime-feature (deprecated)");
$db->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)");
$db->query("DROP TABLE IF EXISTS `panel_navigation`;");
lastStepStatus(0);
// remove deprecated panel_cronscript
showUpdateStep("Removing table `panel_cronscript` (deprecated)");
$db->query("DROP TABLE IF EXISTS `panel_cronscript`;");
lastStepStatus(0);
// make ticket-system ipv6 compatible
showUpdateStep("Altering IP field in panel_tickets (IPv6 compatibility)");
$db->query("ALTER TABLE `" . TABLE_PANEL_TICKETS . "` MODIFY `ip` varchar(39) NOT NULL default '';");
lastStepStatus(0);
showUpdateStep("Preparing database tables for upcoming multi-server support");
$db->query("ALTER TABLE `".TABLE_PANEL_SETTINGS."` ADD `sid` int(11) NOT NULL default '0' AFTER `value`;");
showUpdateStep(".");
$db->query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` ADD `sid` int(11) NOT NULL default '0' AFTER `email_autoresponder_used`;");
showUpdateStep(".");
$db->query("ALTER TABLE `".TABLE_MAIL_VIRTUAL."` ADD `sid` int(11) NOT NULL default '0' AFTER `iscatchall`;");
showUpdateStep(".");
$db->query("ALTER TABLE `".TABLE_FTP_USERS."` ADD `sid` int(11) NOT NULL default '0' AFTER `customerid`;");
showUpdateStep(".");
$db->query("ALTER TABLE `".TABLE_PANEL_TASKS."` ADD `sid` int(11) NOT NULL default '0' AFTER `data`;");
showUpdateStep(".");
$db->query("ALTER TABLE `".TABLE_APS_TASKS."` ADD `sid` int(11) NOT NULL default '0' AFTER `Task`;");
showUpdateStep(".");
$db->query("ALTER TABLE `".TABLE_PANEL_LOG."` ADD `sid` int(11) NOT NULL default '0' AFTER `text`;");
showUpdateStep(".");
$db->query("ALTER TABLE `".TABLE_PANEL_PHPCONFIGS."` ADD `sid` int(11) NOT NULL default '0' AFTER `phpsettings`;");
lastStepStatus(0);
showUpdateStep("Adding new table `".TABLE_FROXLOR_CLIENTS."`");
$db->query("DROP TABLE IF EXISTS `".TABLE_FROXLOR_CLIENTS."`;)");
$db->query("CREATE TABLE IF NOT EXISTS `".TABLE_FROXLOR_CLIENTS."` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`ip` varchar(39) NOT NULL default '',
`enabled` tinyint(1) DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=MyISAM;");
lastStepStatus(0);
// add $server_id to userdata.inc.php for upcoming multi-server-support
showUpdateStep("Adding server-id setting for upcoming multi-server support to userdata.inc.php");
$mypath = dirname(dirname(dirname(dirname(dirname(__FILE__))))); // froxlor-rootdir
$userdatafile = makeCorrectFile($mypath.'/lib/userdata.inc.php');
$userdata = @file_get_contents($userdatafile);
$newcontent = '';
if($userdata !== false)
{
$ud = explode("\n", $userdata);
// add server_id lines at the end
$lastidx = count($ud) -1;
while($ud[$lastidx] != "?>")
{
$lastidx--;
}
$ud[$lastidx] = "\n";
$ud[$lastidx++] = "// Define our system id (multiserver support, default is '0')\n";
$ud[$lastidx++] = "\$server_id = 0;\n";
$ud[$lastidx++] = "?>\n";
@copy($userdatafile, $userdatafile.'.bak');
@unlink($userdatafile);
$writesuccess = @fopen($userdatafile, 'w');
if($writesuccess !== false)
{
@fwrite($writesuccess, implode("\n", $ud));
@fclose($writesucsess);
@unlink($userdatafile.'.bak');
lastStepStatus(0);
}
else
{
@copy($userdatafile.'.bak', $userdatafile);
@unlink($userdatafile.'.bak');
lastStepStatus(2, 'Failed to append server-id to userdata.inc.php file. Please put <strong>\$server_id = 0;</strong> to your userdata.inc.php file manually.');
}
}
else
{
lastStepStatus(2, 'Failed to read userdata.inc.php file. Please put <strong>\$server_id = 0;</strong> to your userdata.inc.php file manually.');
}
updateToVersion('0.9.14-svn7');
}

View File

@@ -43,20 +43,3 @@ function getPreConfig($current_version)
return '';
}
}
function versionInUpdate($current_version, $version_to_check)
{
if (!isFroxlor()) {
return true;
}
$pos_a = strpos($current_version, '-svn');
$pos_b = strpos($version_to_check, '-svn');
// if we compare svn-versions, we have to add -svn0 to the version
// to compare it correctly
if($pos_a === false && $pos_b !== false)
{
$current_version.= '-svn9999';
}
return version_compare($current_version, $version_to_check, '<');
}