From 334a9f66939fe7462357504fbfc2c712c52f7f7f Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 09 Jul 2008 15:02:29 -0400
Subject: [PATCH]
---
install/install.php | 169 +++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 124 insertions(+), 45 deletions(-)
diff --git a/install/install.php b/install/install.php
index 286cfe2..2c82e7d 100644
--- a/install/install.php
+++ b/install/install.php
@@ -47,8 +47,8 @@
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, |
__/ |
|___/ ";
-
-echo "\n\n>> sInitial configuration \n\n";
+echo "\n".str_repeat('-',80)."\n";
+echo "\n\n>> Initial configuration \n\n";
//** Include the library with the basic installer functions
require_once('lib/install.lib.php');
@@ -56,19 +56,34 @@
//** Include the base class of the installer class
require_once('lib/installer_base.lib.php');
-include_once('options.conf.php');
+//** Get distribution identifier
$distname = get_distname();
+if($distname == '') die('Linux Dustribution or Version not recognized.');
+
//** Include the distribution specific installer class library and configuration
-include_once('dist/lib/'.$conf['distname'].'.lib.php');
-include_once('dist/conf/'.$conf['distname'].'.conf.php');
+include_once('dist/lib/'.$distname.'.lib.php');
+include_once('dist/conf/'.$distname.'.conf.php');
-//TODO: this is not there ????
-$conf['dist'] = $dist;
+//** Install logfile
+define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log');
-//** Lets go !
+//****************************************************************************************************
+//** Installer Interface
+//****************************************************************************************************
$inst = new installer();
-swriteln($inst->lng('Following will be a few questions for primary configuration so be careful please',"\n\n"));
+swriteln($inst->lng(' Following will be a few questions for primary configuration so be careful.'));
+swriteln($inst->lng(' Default values are in [brackets] and can be accepted with <ENTER>.'));
+swriteln($inst->lng(' Tap in "quit" (without the quotes) to stop the installer.'."\n\n"));
+
+//** Check log file is writable (probably not root or sudo)
+if(!is_writable(dirname(ISPC_LOG_FILE))){
+ die("ERROR: Cannot write to the directory ".dirname(ISPC_LOG_FILE).". Are you root or sudo ?\n\n");
+}
+
+if(is_dir('/root/ispconfig') || is_dir('/home/admispconfig')) {
+ die('This software can not be installed on a server wich runs ISPConfig 2.x.');
+}
//** Select the language
$conf['language'] = $inst->simple_query('Select language', array('en','de'), 'en');
@@ -76,10 +91,11 @@
//** Select installation mode
$install_mode = $inst->simple_query('Installation mode', array('Standard','Expert'), 'Standard');
+
//** Get the hostname
$tmp_out = array();
exec('hostname -f', $tmp_out);
-$conf['hostname'] = $inst->free_query('Full qualified hostname (FQDN) of the server', $tmp_out[0]);
+$inst->conf['hostname'] = $inst->free_query('Full qualified hostname (FQDN) of the server, eg foo.example.com ', $tmp_out[0]);
unset($tmp_out);
//** Get MySQL root credentials
@@ -88,12 +104,14 @@
$tmp_mysql_server_host = $inst->free_query('MySQL server hostname', $conf['mysql']['host']);
$tmp_mysql_server_admin_user = $inst->free_query('MySQL root username', $conf['mysql']['admin_user']);
$tmp_mysql_server_admin_password = $inst->free_query('MySQL root password', $conf['mysql']['admin_password']);
+ $tmp_mysql_server_database = $inst->free_query('MySQL database to create', $conf['mysql']['database']);
//* Initialize the MySQL server connection
if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) {
$conf['mysql']['host'] = $tmp_mysql_server_host;
$conf['mysql']['admin_user'] = $tmp_mysql_server_admin_user;
$conf['mysql']['admin_password'] = $tmp_mysql_server_admin_password;
+ $conf['mysql']['database'] = $tmp_mysql_server_database;
$finished = true;
} else {
swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error());
@@ -110,9 +128,16 @@
//* Create the mysql database
$inst->configure_database();
+
+ //* Insert the Server record into the database
+ $inst->add_database_server_record();
//* Configure postfix
$inst->configure_postfix();
+
+ //* Configure postfix
+ swriteln('Configuring Jailkit');
+ $inst->configure_jailkit();
//* Configure saslauthd
swriteln('Configuring SASL');
@@ -150,40 +175,59 @@
//* Configure Apache
swriteln('Configuring Apache');
$inst->configure_apache();
+
+ //* Configure Firewall
+ swriteln('Configuring Firewall');
+ $inst->configure_firewall();
//* Configure ISPConfig
swriteln('Installing ISPConfig');
+
+ //** Customise the port ISPConfig runs on
+ $inst->conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', '8080');
+
$inst->install_ispconfig();
+
+ //* Configure DBServer
+ swriteln('Configuring DBServer');
+ $inst->configure_dbserver();
//* Configure ISPConfig
swriteln('Installing Crontab');
$inst->install_crontab();
swriteln('Restarting services ...');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['mysql']['init_script'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['postfix']['init_script'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['saslauthd']['init_script'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['amavis']['init_script'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['clamav']['init_script'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['courier']['courier-authdaemon'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['courier']['courier-imap'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['courier']['courier-imap-ssl'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['courier']['courier-pop'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['courier']['courier-pop-ssl'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['apache']['init_script'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['pureftpd']['init_script'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['mydns']['init_script'].' restart');
+ system($conf['init_scripts'].'/'.$conf['mysql']['init_script'].' restart');
+ system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart');
+ system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart');
+ system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart');
+ system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart');
+ system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart');
+ system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart');
+ system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart');
+ system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
+ system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
+ system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');
+ system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart');
+ system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart');
}else{
//** Get Server ID
- $conf['server_id'] = $inst->free_query('Unique Numeric ID of the server','1');
+ // $conf['server_id'] = $inst->free_query('Unique Numeric ID of the server','1');
+ // Server ID is an autoInc value of the mysql database now
- if(strtolower($inst->simple_query('Create Database',array('y','n'),'y')) == 'y') {
+ if(strtolower($inst->simple_query('Create a new database? (We do not want to join a existing ISPConfig server setup)',array('y','n'),'y')) == 'y') {
//* Create the mysql database
$inst->configure_database();
system('/etc/init.d/mysql restart');
}
+
+ //* Insert the Server record into the database
+ swriteln('Adding ISPConfig server record to database.');
+ swriteln('');
+ $inst->add_database_server_record();
+
if(strtolower($inst->simple_query('Configure Mail', array('y','n') ,'y') ) == 'y') {
@@ -211,29 +255,29 @@
swriteln('Configuring Getmail');
$inst->configure_getmail();
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['postfix']['init_script'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['saslauthd']['init_script'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['amavis']['init_script'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['clamav']['init_script'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['courier']['courier-authdaemon'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['courier']['courier-imap'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['courier']['courier-imap-ssl'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['courier']['courier-pop'].' restart');
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['courier']['courier-pop-ssl'].' restart');
+ system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart');
+ system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart');
+ system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart');
+ system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart');
+ system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart');
+ system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart');
+ system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart');
+ system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
+ system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
}
//** Configure Pureftpd
if(strtolower($inst->simple_query('Configure FTP Server', array('y','n'),'y') ) == 'y') {
swriteln('Configuring Pureftpd');
$inst->configure_pureftpd();
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['pureftpd']['init_script'].' restart');
+ system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart');
}
//** Configure MyDNS
if(strtolower($inst->simple_query('Configure DNS Server',array('y','n'),'y')) == 'y') {
swriteln('Configuring MyDNS');
$inst->configure_mydns();
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['mydns']['init_script'].' restart');
+ system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart');
}
//** Configure Apache
@@ -242,17 +286,52 @@
$inst->configure_apache();
}
- //** Configure ISPConfig :-)
- if(strtolower($inst->simple_query('Install ISPConfig',array('y','n'),'y')) == 'y') {
- swriteln('Installing ISPConfig');
- $inst->install_ispconfig();
-
- //* Configure ISPConfig
- swriteln('Installing Crontab');
- $inst->install_crontab();
- system($conf['dist']["init_scripts"].'/'.$conf['dist']['apache']['init_script'].' restart');
+ //** Configure Firewall
+ if(strtolower($inst->simple_query('Configure Firewall Server',array('y','n'),'y')) == 'y') {
+ swriteln('Configuring Firewall');
+ $inst->configure_firewall();
}
+ //** Configure ISPConfig :-)
+ if(strtolower($inst->simple_query('Install ISPConfig Web-Interface',array('y','n'),'y')) == 'y') {
+ swriteln('Installing ISPConfig');
+
+ //** We want to check if the server is a module or cgi based php enabled server
+ //** TODO: Don't always ask for this somehow ?
+ /*
+ $fast_cgi = $inst->simple_query('CGI PHP Enabled Server?', array('yes','no'),'no');
+
+ if($fast_cgi == 'yes') {
+ $alias = $inst->free_query('Script Alias', '/php/');
+ $path = $inst->free_query('Script Alias Path', '/path/to/cgi/bin');
+ $inst->conf['apache']['vhost_cgi_alias'] = sprintf('ScriptAlias %s %s', $alias, $path);
+ } else {
+ $inst->conf['apache']['vhost_cgi_alias'] = "";
+ }
+ */
+
+ //** Customise the port ISPConfig runs on
+ $inst->conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', '8080');
+
+ $inst->install_ispconfig_interface = true;
+
+ } else {
+ $inst->install_ispconfig_interface = false;
+ }
+
+ $inst->install_ispconfig();
+
+ //* Configure DBServer
+ swriteln('Configuring DBServer');
+ $inst->configure_dbserver();
+
+ //* Configure ISPConfig
+ swriteln('Installing Crontab');
+ $inst->install_crontab();
+ system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');
+
+
+
} //* << $install_mode / 'Standard' or Genius
--
Gitblit v1.9.1