split install into phases

this is to prevent catch 22 between copy_conf and app_defaults
This commit is contained in:
Matthew Vale
2015-12-03 13:41:33 +00:00
3 changed files with 22 additions and 10 deletions

View File

@@ -170,7 +170,7 @@ if(!$install_step) { $install_step = 'select_language'; }
}
//test for windows and non sqlite
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' and strlen($db_type) > 0 and $db_type !='sqlite') {
$messages[] = "<b>Windows requires a system DSN ODBC connection</b> this must be configured after installing then restart freeswitch.";
$messages[] = "<b>Windows requires a system DSN ODBC connection</b> this must be configured.";
}
//action code
@@ -309,8 +309,10 @@ if(!$install_step) { $install_step = 'select_language'; }
$switch = new install_switch($global_settings);
//$switch->debug = true;
//$system->debug = true;
$system->install();
$switch->install();
$system->install_phase_1();
$switch->install_phase_1();
$system->install_phase_2();
$switch->install_phase_2();
}catch(Exception $e){
echo "</pre>\n";
echo "<p><b>Failed to install</b><br/>" . $e->getMessage() . "</p>\n";

View File

@@ -74,9 +74,9 @@ include "root.php";
echo "$message\n";
}
function install() {
function install_phase_1() {
ini_set('max_execution_time',3600);
$this->write_progress("Install started for FusionPBX");
$this->write_progress("Install phase 1 started for FusionPBX");
$this->create_config_php();
$this->write_progress("\tExecuting config.php");
require $this->config_php;
@@ -88,8 +88,14 @@ include "root.php";
$this->write_progress("\tRunning requires");
require "resources/require.php";
$this->create_menus();
$this->write_progress("Install phase 1 complete for FusionPBX");
}
function install_phase_2() {
ini_set('max_execution_time',3600);
$this->write_progress("Install phase 2 started for FusionPBX");
$this->app_defaults();
$this->write_progress("Install complete for FusionPBX");
$this->write_progress("Install phase 2 complete for FusionPBX");
}
function upgrade() {

View File

@@ -181,14 +181,18 @@ include "root.php";
}
}
function install() {
$this->write_progress("Install started for switch");
function install_phase_1() {
$this->write_progress("Install phase 1 started for switch");
$this->copy_conf();
$this->copy_scripts();
$this->write_progress("Install phase 1 completed for switch");
}
function install_phase_1() {
$this->write_progress("Install phase 2 started for switch");
$this->create_config_lua();
save_switch_xml();
$this->restart_switch();
$this->write_progress("Install completed for switch");
$this->write_progress("Install phase 2 completed for switch");
}
function upgrade() {