install.php 21.3 KB
Newer Older
1
2
3
<?php

/*
vogelor's avatar
vogelor committed
4
Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
    * Neither the name of ISPConfig nor the names of its contributors
      may be used to endorse or promote products derived from this software without
      specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

/*
	ISPConfig 3 installer.
*/

35
36
error_reporting(E_ALL|E_STRICT);

37
38
//** The banner on the command line
echo "\n\n".str_repeat('-',80)."\n";
vogelor's avatar
vogelor committed
39
40
41
42
43
44
echo " _____ ___________   _____              __ _         ____
|_   _/  ___| ___ \ /  __ \            / _(_)       /__  \
  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /
  | |  `--. \  __/  | |    / _ \| '_ \|  _| |/ _` |  |_ |
 _| |_/\__/ / |     | \__/\ (_) | | | | | | | (_| | ___\ \
 \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, | \____/
45
46
                                              __/ |
                                             |___/ ";
pedro_morgan's avatar
pedro_morgan committed
47
48
echo "\n".str_repeat('-',80)."\n";
echo "\n\n>> Initial configuration  \n\n";
tbrehm's avatar
tbrehm committed
49

50
//** Include the library with the basic installer functions
51
52
require_once('lib/install.lib.php');

53
//** Include the base class of the installer class
54
55
require_once('lib/installer_base.lib.php');

56
57
//** Ensure that current working directory is install directory
$cur_dir = getcwd();
58
59
60
if(realpath(dirname(__FILE__)) != $cur_dir) {
	chdir( realpath(dirname(__FILE__)) );
}
61

redray's avatar
redray committed
62
63
64
65
66
67
68
69
70
//** Install logfile
define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log');
define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../'));

//** Check for existing installation
/*if(is_dir("/usr/local/ispconfig")) {
    die('We will stop here. There is already a ISPConfig installation, use the update script to update this installation.');
}*/

oliver's avatar
oliver committed
71
//** Get distribution identifier
tbrehm's avatar
tbrehm committed
72
$dist = get_distname();
73

jwarnier's avatar
jwarnier committed
74
if($dist['id'] == '') die('Linux distribution or version not recognized.');
tbrehm's avatar
tbrehm committed
75

jwarnier's avatar
jwarnier committed
76
//** Include the distribution-specific installer class library and configuration
tbrehm's avatar
tbrehm committed
77
if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once('dist/lib/'.$dist['baseid'].'.lib.php');
tbrehm's avatar
tbrehm committed
78
79
include_once('dist/lib/'.$dist['id'].'.lib.php');
include_once('dist/conf/'.$dist['id'].'.conf.php');
oliver's avatar
oliver committed
80

81
82
83
//****************************************************************************************************
//** Installer Interface 
//****************************************************************************************************
84
$inst = new installer();
pedro_morgan's avatar
pedro_morgan committed
85
swriteln($inst->lng('    Following will be a few questions for primary configuration so be careful.'));
86
87
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"));
88

89
//** Check log file is writable (probably not root or sudo)
oliver's avatar
oliver committed
90
if(!is_writable(dirname(ISPC_LOG_FILE))){
jwarnier's avatar
jwarnier committed
91
    die("ERROR: Cannot write to the ".dirname(ISPC_LOG_FILE)." directory. Are you root or sudo ?\n\n");
92
93
}

94
if(is_dir('/root/ispconfig') || is_dir('/home/admispconfig')) {
jwarnier's avatar
jwarnier committed
95
	die('This software cannot be installed on a server wich runs ISPConfig 2.x.');
96
97
}

98
99
100
101
if(is_dir('/usr/local/ispconfig')) {
	die('ISPConfig 3 installation found. Please use update.php instead if install.php to update the installation.');
}

tbrehm's avatar
tbrehm committed
102
103
104
//** Detect the installed applications
$inst->find_installed_apps();

105
106
//** Select the language
$conf['language'] = $inst->simple_query('Select language', array('en','de'), 'en');
107

108
//** Select installation mode
109
$install_mode = $inst->simple_query('Installation mode', array('standard','expert'), 'standard');
110

111

112
//** Get the hostname
tbrehm's avatar
tbrehm committed
113
$tmp_out = array();
114
exec('hostname -f', $tmp_out);
redray's avatar
redray committed
115
$conf['hostname'] = $inst->free_query('Full qualified hostname (FQDN) of the server, eg server1.domain.tld ', $tmp_out[0]);
tbrehm's avatar
tbrehm committed
116
unset($tmp_out);
117

118
// Check if the mysql functions are loaded in PHP
jwarnier's avatar
jwarnier committed
119
if(!function_exists('mysql_connect')) die('No PHP MySQL functions available. Please ensure that the PHP MySQL module is loaded.');
120

121
//** Get MySQL root credentials
tbrehm's avatar
tbrehm committed
122
123
$finished = false;
do {
124
125
126
	$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']);
jwarnier's avatar
jwarnier committed
127
128
	$tmp_mysql_server_database = $inst->free_query('MySQL database to create', $conf['mysql']['database']);
	$tmp_mysql_server_charset = $inst->free_query('MySQL charset', $conf['mysql']['charset']);
tbrehm's avatar
tbrehm committed
129
	
130
	//* Initialize the MySQL server connection
tbrehm's avatar
tbrehm committed
131
	if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) {
132
133
134
		$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;
jwarnier's avatar
jwarnier committed
135
136
		$conf['mysql']['database'] = $tmp_mysql_server_database;
		$conf['mysql']['charset'] = $tmp_mysql_server_charset;
tbrehm's avatar
tbrehm committed
137
		$finished = true;
tbrehm's avatar
tbrehm committed
138
	} else {
jwarnier's avatar
jwarnier committed
139
		swriteln($inst->lng('Unable to connect to the specified MySQL server').' '.mysql_error());
tbrehm's avatar
tbrehm committed
140
141
	}
} while ($finished == false);
tbrehm's avatar
tbrehm committed
142
unset($finished);
tbrehm's avatar
tbrehm committed
143

jwarnier's avatar
jwarnier committed
144
// Resolve the IP address of the MySQL hostname.
145
146
147
$tmp = explode(':',$conf['mysql']['host']);
if(!$conf['mysql']['ip'] = gethostbyname($tmp[0])) die('Unable to resolve hostname'.$tmp[0]);
unset($tmp);
148
149


jwarnier's avatar
jwarnier committed
150
//** Initializing database connection
tbrehm's avatar
tbrehm committed
151
152
include_once('lib/mysql.lib.php');
$inst->db = new db();
tbrehm's avatar
tbrehm committed
153

154
//** Begin with standard or expert installation
155
if($install_mode == 'standard') {
tbrehm's avatar
tbrehm committed
156
	
jwarnier's avatar
jwarnier committed
157
	//* Create the MySQL database
tbrehm's avatar
tbrehm committed
158
	$inst->configure_database();
159
160
161
	
	//* Insert the Server record into the database
	$inst->add_database_server_record();
tbrehm's avatar
tbrehm committed
162

jwarnier's avatar
jwarnier committed
163
	//* Configure Postfix
tbrehm's avatar
tbrehm committed
164
	$inst->configure_postfix();
165
	
166
	//* Configure jailkit
167
168
	swriteln('Configuring Jailkit');
	$inst->configure_jailkit();
169
170
	
	if($conf['dovecot']['installed'] == true) {
jwarnier's avatar
jwarnier committed
171
		//* Configure Dovecot
172
173
174
		swriteln('Configuring Dovecot');
		$inst->configure_dovecot();
	} else {
175
176
177
178
179
180
181
182
		//* Configure saslauthd
		swriteln('Configuring SASL');
		$inst->configure_saslauthd();

		//* Configure PAM
		swriteln('Configuring PAM');
		$inst->configure_pam();
		
jwarnier's avatar
jwarnier committed
183
		//* Configure Courier
184
185
186
		swriteln('Configuring Courier');
		$inst->configure_courier();
	}
tbrehm's avatar
tbrehm committed
187

188
	//* Configure Spamasassin
tbrehm's avatar
tbrehm committed
189
190
191
	swriteln('Configuring Spamassassin');
	$inst->configure_spamassassin();

192
	//* Configure Amavis
tbrehm's avatar
tbrehm committed
193
194
195
	swriteln('Configuring Amavisd');
	$inst->configure_amavis();

196
	//* Configure Getmail
tbrehm's avatar
tbrehm committed
197
198
199
200
	swriteln('Configuring Getmail');
	$inst->configure_getmail();
	

201
	//* Configure Pureftpd
tbrehm's avatar
tbrehm committed
202
203
204
	swriteln('Configuring Pureftpd');
	$inst->configure_pureftpd();

205
206
207
208
	//* Configure DNS
	if($conf['powerdns']['installed'] == true) {
		swriteln('Configuring PowerDNS');
		$inst->configure_powerdns();
209
210
211
	} elseif($conf['bind']['installed'] == true) {
		swriteln('Configuring BIND');
		$inst->configure_bind();
212
213
214
215
	} else {
		swriteln('Configuring MyDNS');
		$inst->configure_mydns();
	}
216
	
217
	//* Configure Apache
218
219
	swriteln('Configuring Apache');
	$inst->configure_apache();
tbrehm's avatar
tbrehm committed
220
	
jwarnier's avatar
jwarnier committed
221
222
    //** Configure Vlogger
    swriteln('Configuring Vlogger');
223
    $inst->configure_vlogger();
224
225
226
227
	
	//** Configure apps vhost
	swriteln('Configuring Apps vhost');
	$inst->configure_apps_vhost();
228
    
tbrehm's avatar
tbrehm committed
229
230
231
	//* Configure Firewall
	swriteln('Configuring Firewall');
	$inst->configure_firewall();
tbrehm's avatar
tbrehm committed
232

233
	//* Configure ISPConfig
tbrehm's avatar
tbrehm committed
234
	swriteln('Installing ISPConfig');
daniel's avatar
daniel committed
235
	
jwarnier's avatar
jwarnier committed
236
	//** Customize the port ISPConfig runs on
237
	$conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', '8080');
daniel's avatar
daniel committed
238

tbrehm's avatar
tbrehm committed
239
	$inst->install_ispconfig();
tbrehm's avatar
tbrehm committed
240
241
242
243
	
	//* Configure DBServer
	swriteln('Configuring DBServer');
	$inst->configure_dbserver();
tbrehm's avatar
tbrehm committed
244

245
	//* Configure ISPConfig
jwarnier's avatar
jwarnier committed
246
	swriteln('Installing ISPConfig crontab');
tbrehm's avatar
tbrehm committed
247
248
249
	$inst->install_crontab();
	
	swriteln('Restarting services ...');
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
	if($conf['mysql']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mysql']['init_script']))					system($conf['init_scripts'].'/'.$conf['mysql']['init_script'].' restart');
	if($conf['postfix']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['postfix']['init_script']))				system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart');
	if($conf['saslauthd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['saslauthd']['init_script']))			system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart');
	if($conf['amavis']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['amavis']['init_script']))					system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart');
	if($conf['clamav']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['clamav']['init_script']))					system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart');
	if($conf['courier']['courier-authdaemon'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart');
	if($conf['courier']['courier-imap'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap'])) 			system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart');
	if($conf['courier']['courier-imap-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'])) 	system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart');
	if($conf['courier']['courier-pop'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) 				system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
	if($conf['courier']['courier-pop-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) 		system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
	if($conf['dovecot']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['dovecot']['init_script'])) 		system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart');
	if($conf['apache']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['apache']['init_script'])) 				system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');
	if($conf['pureftpd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['pureftpd']['init_script']))				system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart');
	if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mydns']['init_script']))					system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null');
	if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['powerdns']['init_script']))					system($conf['init_scripts'].'/'.$conf['powerdns']['init_script'].' restart &> /dev/null');
	if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['bind']['init_script']))					system($conf['init_scripts'].'/'.$conf['bind']['init_script'].' restart &> /dev/null');
tbrehm's avatar
tbrehm committed
266
	
267
}else{
tbrehm's avatar
tbrehm committed
268
269
270
271
272
273
274
275
	
	//* In expert mode, we select the services in the following steps, only db is always available
	$conf['services']['mail'] = false;
	$conf['services']['web'] = false;
	$conf['services']['dns'] = false;
	$conf['services']['db'] = true;
	
	
276
	//** Get Server ID
277
278
	// $conf['server_id'] = $inst->free_query('Unique Numeric ID of the server','1');
	// Server ID is an autoInc value of the mysql database now
tbrehm's avatar
tbrehm committed
279
	
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
	if(strtolower($inst->simple_query('Shall this server join an existing ISPConfig multiserver setup',array('y','n'),'n')) == 'y') {
		$conf['mysql']['master_slave_setup'] = 'y';
		
		//** Get MySQL root credentials
		$finished = false;
		do {
			$tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host']);
			$tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user']);
			$tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password']);
    		$tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_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']['master_host'] = $tmp_mysql_server_host;
				$conf['mysql']['master_admin_user'] = $tmp_mysql_server_admin_user;
				$conf['mysql']['master_admin_password'] = $tmp_mysql_server_admin_password;
				$conf['mysql']['master_database'] = $tmp_mysql_server_database;
				$finished = true;
			} else {
				swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error());
			}
		} while ($finished == false);
		unset($finished);
		
		// initialize the connection to the master database
		$inst->dbmaster = new db();
		if($inst->dbmaster->linkId) $inst->dbmaster->closeConn();
		$inst->dbmaster->dbHost = $conf['mysql']["master_host"];
		$inst->dbmaster->dbName = $conf['mysql']["master_database"];
		$inst->dbmaster->dbUser = $conf['mysql']["master_admin_user"];
		$inst->dbmaster->dbPass = $conf['mysql']["master_admin_password"];
		
	} else {
		// the master DB is the same then the slave DB
		$inst->dbmaster = $inst->db;
tbrehm's avatar
tbrehm committed
315
	}
316
317
318
	
	//* Create the mysql database
	$inst->configure_database();
319
320
		
	//* Insert the Server record into the database
tbrehm's avatar
tbrehm committed
321
	swriteln('Adding ISPConfig server record to database.');
322
	swriteln('');
323
324
	$inst->add_database_server_record();

tbrehm's avatar
tbrehm committed
325
	
326
	if(strtolower($inst->simple_query('Configure Mail', array('y','n') ,'y') ) == 'y') {
tbrehm's avatar
tbrehm committed
327
		
tbrehm's avatar
tbrehm committed
328
329
		$conf['services']['mail'] = true;
		
330
		//* Configure Postfix
tbrehm's avatar
tbrehm committed
331
332
333
		swriteln('Configuring Postfix');
		$inst->configure_postfix();

334
335
336
337
338
		if($conf['dovecot']['installed'] == true) {
			//* Configure dovecot
			swriteln('Configuring Dovecot');
			$inst->configure_dovecot();
		} else {
339
340
341
342
343
344
345
346
347
		
			//* Configure saslauthd
			swriteln('Configuring SASL');
			$inst->configure_saslauthd();
		
			//* Configure PAM
			swriteln('Configuring PAM');
			$inst->configure_pam();
			
348
349
350
351
			//* Configure courier
			swriteln('Configuring Courier');
			$inst->configure_courier();
		}
tbrehm's avatar
tbrehm committed
352

353
		//* Configure Spamasassin
tbrehm's avatar
tbrehm committed
354
355
356
		swriteln('Configuring Spamassassin');
		$inst->configure_spamassassin();

357
		//* Configure Amavis
tbrehm's avatar
tbrehm committed
358
359
360
		swriteln('Configuring Amavisd');
		$inst->configure_amavis();

361
		//* Configure Getmail
tbrehm's avatar
tbrehm committed
362
363
364
		swriteln('Configuring Getmail');
		$inst->configure_getmail();
		
365
366
367
368
369
370
371
372
373
374
		if($conf['postfix']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['postfix']['init_script']))				system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart');
		if($conf['saslauthd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['saslauthd']['init_script']))			system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart');
		if($conf['amavis']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['amavis']['init_script']))					system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart');
		if($conf['clamav']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['clamav']['init_script']))					system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart');
		if($conf['courier']['courier-authdaemon'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart');
		if($conf['courier']['courier-imap'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap'])) 			system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart');
		if($conf['courier']['courier-imap-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'])) 	system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart');
		if($conf['courier']['courier-pop'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) 				system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
		if($conf['courier']['courier-pop-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) 		system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
		if($conf['dovecot']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['dovecot']['init_script'])) 		system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart');
tbrehm's avatar
tbrehm committed
375
376
	}
	
377
378
379
380
381
382
	//** Configure Jailkit
	if(strtolower($inst->simple_query('Configure Jailkit', array('y','n'),'y') ) == 'y') {	
		swriteln('Configuring Jailkit');
		$inst->configure_jailkit();
	}
	
383
384
	//** Configure Pureftpd
	if(strtolower($inst->simple_query('Configure FTP Server', array('y','n'),'y') ) == 'y') {	
tbrehm's avatar
tbrehm committed
385
386
		swriteln('Configuring Pureftpd');
		$inst->configure_pureftpd();
387
		if($conf['pureftpd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'])) system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart');
tbrehm's avatar
tbrehm committed
388
389
	}
	
390
	//** Configure DNS
tbrehm's avatar
tbrehm committed
391
	if(strtolower($inst->simple_query('Configure DNS Server',array('y','n'),'y')) == 'y') {
tbrehm's avatar
tbrehm committed
392
		$conf['services']['dns'] = true;
393
394
395
396
		//* Configure DNS
		if($conf['powerdns']['installed'] == true) {
			swriteln('Configuring PowerDNS');
			$inst->configure_powerdns();
397
			if($conf['powerdns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['powerdns']['init_script']))					system($conf['init_scripts'].'/'.$conf['powerdns']['init_script'].' restart &> /dev/null');
398
399
400
		} elseif($conf['bind']['installed'] == true) {
			swriteln('Configuring BIND');
			$inst->configure_bind();
401
			if($conf['bind']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['bind']['init_script']))					system($conf['init_scripts'].'/'.$conf['bind']['init_script'].' restart &> /dev/null');
402
403
404
		} else {
			swriteln('Configuring MyDNS');
			$inst->configure_mydns();
405
			if($conf['mydns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mydns']['init_script']))					system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null');
406
407
		}
		
tbrehm's avatar
tbrehm committed
408
409
	}
	
410
	//** Configure Apache
jwarnier's avatar
jwarnier committed
411
	swriteln("\nHint: If this server shall run the ISPConfig interface, select 'y' in the 'Configure Apache Server' option.\n");
412
	if(strtolower($inst->simple_query('Configure Apache Server',array('y','n'),'y')) == 'y') {	
tbrehm's avatar
tbrehm committed
413
		$conf['services']['web'] = true;
414
415
		swriteln('Configuring Apache');
		$inst->configure_apache();
416
        
jwarnier's avatar
jwarnier committed
417
418
        //** Configure Vlogger
        swriteln('Configuring Vlogger');
419
        $inst->configure_vlogger();
420
421
422
423
		
		//** Configure apps vhost
		swriteln('Configuring Apps vhost');
		$inst->configure_apps_vhost();
424
425
	}
	
tbrehm's avatar
tbrehm committed
426
427
428
429
430
431
	//** Configure Firewall
	if(strtolower($inst->simple_query('Configure Firewall Server',array('y','n'),'y')) == 'y') {	
		swriteln('Configuring Firewall');
		$inst->configure_firewall();
	}
	
432
	//** Configure ISPConfig :-)
jwarnier's avatar
jwarnier committed
433
	if(strtolower($inst->simple_query('Install ISPConfig Web Interface',array('y','n'),'y')) == 'y') {
tbrehm's avatar
tbrehm committed
434
		swriteln('Installing ISPConfig');
435
436
		
		//** We want to check if the server is a module or cgi based php enabled server
tbrehm's avatar
tbrehm committed
437
438
		//** TODO: Don't always ask for this somehow ?
		/*
439
440
441
442
443
		$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');
444
	 		$conf['apache']['vhost_cgi_alias'] = sprintf('ScriptAlias %s %s', $alias, $path);
445
		} else {
446
	 		$conf['apache']['vhost_cgi_alias'] = "";
447
		}
tbrehm's avatar
tbrehm committed
448
		*/
449
450

		//** Customise the port ISPConfig runs on
451
		$conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', '8080');
452
		
453
454
455
456
		if(strtolower($inst->simple_query('Enable SSL for the ISPConfig web interface',array('y','n'),'y')) == 'y') {
			$inst->make_ispconfig_ssl_cert();
		}
		
tbrehm's avatar
tbrehm committed
457
458
459
460
		$inst->install_ispconfig_interface = true;
			
	} else {
		$inst->install_ispconfig_interface = false;
tbrehm's avatar
tbrehm committed
461
462
	}
	
tbrehm's avatar
tbrehm committed
463
	$inst->install_ispconfig();
tbrehm's avatar
tbrehm committed
464
465
466
467
	
	//* Configure DBServer
	swriteln('Configuring DBServer');
	$inst->configure_dbserver();
tbrehm's avatar
tbrehm committed
468
469
		
	//* Configure ISPConfig
jwarnier's avatar
jwarnier committed
470
	swriteln('Installing ISPConfig crontab');
tbrehm's avatar
tbrehm committed
471
	$inst->install_crontab();
tbrehm's avatar
tbrehm committed
472
	if($conf['apache']['init_script'] != '' && @is_file($conf['init_scripts'].'/'.$conf['apache']['init_script'])) system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');
tbrehm's avatar
tbrehm committed
473
474
475
	
	
	
476
} //* << $install_mode / 'Standard' or Genius
477
478


479
echo "Installation completed.\n";
480
481


jwarnier's avatar
jwarnier committed
482
?>