From d155ef17e54e5e159b5aff3de86f55f9fc1155cd Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 09 Jul 2008 13:56:52 -0400
Subject: [PATCH] Added Indexes in table mail_user and mail_domain
---
install/lib/installer_base.lib.php | 112 ++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 80 insertions(+), 32 deletions(-)
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 6880e98..87c0751 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -34,6 +34,7 @@
var $language = 'en';
var $db;
public $conf;
+ public $install_ispconfig_interface = true;
public function __construct()
@@ -120,17 +121,6 @@
$this->error('Unable to create MySQL database: '.$cf['database'].'.');
}
- //* Create the ISPConfig database user
- $query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON '.$cf['database'].".* "
- ."TO '".$cf['ispconfig_user']."'@'".$cf['host']."' "
- ."IDENTIFIED BY '".$cf['ispconfig_password']."';";
- if(!$this->db->query($query)) {
- $this->error('Unable to create database user: '.$cf['ispconfig_user']);
- }
-
- //* Reload database privelages
- $this->db->query('FLUSH PRIVILEGES;');
-
//* Set the database name in the DB library
$this->db->dbName = $cf['database'];
@@ -156,12 +146,36 @@
//** Create the server record in the database
public function add_database_server_record() {
+ global $conf;
+ $cf = $conf['mysql']; // make $conf['mysql'] more accessible
+
+ if($cf['host'] == 'localhost') {
+ $from_host = 'localhost';
+ } else {
+ $from_host = $this->conf['hostname'];
+ }
+
+ //* Create the ISPConfig database user
+ $query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON '.$cf['database'].".* "
+ ."TO '".$cf['ispconfig_user']."'@'".$from_host."' "
+ ."IDENTIFIED BY '".$cf['ispconfig_password']."';";
+ if(!$this->db->query($query)) {
+ $this->error('Unable to create database user: '.$cf['ispconfig_user']);
+ }
+
+ //* Reload database privelages
+ $this->db->query('FLUSH PRIVILEGES;');
+
+ //* Set the database name in the DB library
+ $this->db->dbName = $cf['database'];
+
$server_ini_content = rf("tpl/server.ini.master");
$server_ini_content = addslashes($server_ini_content);
- $sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`) VALUES (1, 1, 'riud', 'riud', 'r', 'Server', 1, 1, 1, 1, 1, 1, '$server_ini_content', 0, 1);";
+ $sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`) VALUES (1, 1, 'riud', 'riud', 'r', '".$this->conf['hostname']."', 1, 1, 1, 1, 1, 1, '$server_ini_content', 0, 1);";
$this->db->query($sql);
- $this->conf['server_id'] = $this->db->insertID();
+ $conf['server_id'] = $this->db->insertID();
+ $this->conf['server_id'] = $conf['server_id'];
}
@@ -528,6 +542,8 @@
public function configure_pureftpd()
{
+ global $conf;
+
$config_dir = $this->conf['pureftpd']['config_dir'];
//* configure pam for SMTP authentication agains the ispconfig database
@@ -539,11 +555,11 @@
exec("chmod 400 $config_dir/$configfile~");
}
$content = rf('tpl/pureftpd_mysql.conf.master');
- $content = str_replace('{mysql_server_ispconfig_user}', $this->conf["mysql"]["ispconfig_user"], $content);
- $content = str_replace('{mysql_server_ispconfig_password}', $this->conf["mysql"]["ispconfig_password"], $content);
- $content = str_replace('{mysql_server_database}', $this->conf["mysql"]["database"], $content);
- $content = str_replace('{mysql_server_ip}', $this->conf["mysql"]["ip"], $content);
- $content = str_replace('{server_id}', $this->conf["server_id"], $content);
+ $content = str_replace('{mysql_server_ispconfig_user}', $conf["mysql"]["ispconfig_user"], $content);
+ $content = str_replace('{mysql_server_ispconfig_password}', $conf["mysql"]["ispconfig_password"], $content);
+ $content = str_replace('{mysql_server_database}', $conf["mysql"]["database"], $content);
+ $content = str_replace('{mysql_server_ip}', $conf["mysql"]["ip"], $content);
+ $content = str_replace('{server_id}', $conf["server_id"], $content);
wf("$config_dir/$configfile", $content);
exec("chmod 600 $config_dir/$configfile");
exec("chown root:root $config_dir/$configfile");
@@ -561,9 +577,9 @@
if(is_file($conf["mydns"]["config_dir"].'/'.$configfile)) copy($conf["mydns"]["config_dir"].'/'.$configfile,$conf["mydns"]["config_dir"].'/'.$configfile.'~');
if(is_file($conf["mydns"]["config_dir"].'/'.$configfile.'~')) exec('chmod 400 '.$conf["mydns"]["config_dir"].'/'.$configfile.'~');
$content = rf("tpl/".$configfile.".master");
- $content = str_replace('{mysql_server_ispconfig_user}',$this->conf['mysql']['ispconfig_user'],$content);
- $content = str_replace('{mysql_server_ispconfig_password}',$this->conf['mysql']['ispconfig_password'], $content);
- $content = str_replace('{mysql_server_database}',$this->conf['mysql']['database'],$content);
+ $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content);
+ $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content);
+ $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content);
$content = str_replace('{mysql_server_host}',$conf["mysql"]["host"],$content);
$content = str_replace('{server_id}',$conf["server_id"],$content);
wf($conf["mydns"]["config_dir"].'/'.$configfile,$content);
@@ -582,6 +598,8 @@
public function install_ispconfig()
{
+ global $conf;
+
$install_dir = $this->conf['ispconfig_install_dir'];
//* Create the ISPConfig installation directory
@@ -614,10 +632,10 @@
copy("$install_dir/interface/lib/$configfile", "$install_dir/interface/lib/$configfile~");
}
$content = rf("tpl/$configfile.master");
- $content = str_replace('{mysql_server_ispconfig_user}', $this->conf['mysql']['ispconfig_user'], $content);
- $content = str_replace('{mysql_server_ispconfig_password}',$this->conf['mysql']['ispconfig_password'], $content);
- $content = str_replace('{mysql_server_database}', $this->conf['mysql']['database'], $content);
- $content = str_replace('{mysql_server_host}', $this->conf['mysql']['host'], $content);
+ $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content);
+ $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content);
+ $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content);
+ $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content);
wf("$install_dir/interface/lib/$configfile", $content);
//* Create the config file for ISPConfig server
@@ -626,11 +644,11 @@
copy("$install_dir/server/lib/$configfile", "$install_dir/interface/lib/$configfile~");
}
$content = rf("tpl/$configfile.master");
- $content = str_replace('{mysql_server_ispconfig_user}', $this->conf['mysql']['ispconfig_user'], $content);
- $content = str_replace('{mysql_server_ispconfig_password}', $this->conf['mysql']['ispconfig_password'], $content);
- $content = str_replace('{mysql_server_database}', $this->conf['mysql']['database'], $content);
- $content = str_replace('{mysql_server_host}', $this->conf['mysql']['host'], $content);
- $content = str_replace('{server_id}', $this->conf['server_id'], $content);
+ $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content);
+ $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content);
+ $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content);
+ $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content);
+ $content = str_replace('{server_id}', $conf['server_id'], $content);
wf("$install_dir/server/lib/$configfile", $content);
@@ -693,6 +711,10 @@
//* make sure that the server config file (not the interface one) is only readable by the root user
exec("chmod 600 $install_dir/server/lib/$configfile");
exec("chown root:root $install_dir/server/lib/$configfile");
+ if(@is_file("$install_dir/server/lib/mysql_clientdb.conf") {
+ exec("chmod 600 $install_dir/server/lib/mysql_clientdb.conf");
+ exec("chown root:root $install_dir/server/lib/mysql_clientdb.conf");
+ }
// TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing
// and must be fixed as this will allow the apache user to read the ispconfig files.
@@ -718,8 +740,10 @@
//copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost");
//* and create the symlink
- if(!is_link("$vhost_conf_enabled_dir/ispconfig.vhost")) {
- exec("ln -s $vhost_conf_dir/ispconfig.vhost $vhost_conf_enabled_dir/ispconfig.vhost");
+ if($this->install_ispconfig_interface == true) {
+ if(!is_link("$vhost_conf_enabled_dir/ispconfig.vhost")) {
+ exec("ln -s $vhost_conf_dir/ispconfig.vhost $vhost_conf_enabled_dir/ispconfig.vhost");
+ }
}
// Make the Clamav log files readable by ISPConfig
@@ -735,6 +759,30 @@
exec('chmod 755 '.$install_dir.'/interface/bin/php-fcgi');
}
+ public function configure_dbserver()
+ {
+ global $conf;
+
+ //* If this server shall act as database server for client DB's, we configure this here
+ $install_dir = $this->conf['ispconfig_install_dir'];
+
+ // Create a file with the database login details which
+ // are used to create the client databases.
+
+ if(!is_dir("$install_dir/server/lib")) {
+ $command = "mkdir $install_dir/server/lib";
+ caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
+ }
+
+ $content = rf("tpl/mysql_clientdb.conf.master");
+ $content = str_replace('{username}',$conf['mysql']['admin_user'],$content);
+ $content = str_replace('{password}',$conf['mysql']['admin_password'], $content);
+ wf("$install_dir/server/lib/mysql_clientdb.conf",$content);
+ exec('chmod 600 '."$install_dir/server/lib/mysql_clientdb.conf");
+ exec('chown root:root '."$install_dir/server/lib/mysql_clientdb.conf");
+
+ }
+
public function install_crontab()
{
//* Root Crontab
--
Gitblit v1.9.1