install/tpl/server.ini.master | ●●●●● patch | view | raw | blame | history | |
interface/web/admin/form/server_config.tform.php | ●●●●● patch | view | raw | blame | history | |
interface/web/admin/lib/lang/en_server_config.lng | ●●●●● patch | view | raw | blame | history | |
interface/web/admin/templates/server_config_web_edit.htm | ●●●●● patch | view | raw | blame | history | |
server/plugins-available/apache2_plugin.inc.php | ●●●●● patch | view | raw | blame | history |
install/tpl/server.ini.master
@@ -53,6 +53,7 @@ awstats_buildstaticpages_pl=/usr/share/awstats/tools/awstats_buildstaticpages.pl php_ini_path_apache=/etc/php5/apache2/php.ini php_ini_path_cgi=/etc/php5/cgi/php.ini check_apache_config=y [dns] bind_user=root interface/web/admin/form/server_config.tform.php
@@ -376,6 +376,12 @@ 'default' => '20', 'value' => array('10' => 'Medium', '20' => 'High') ), 'check_apache_config' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', 'default' => 'y', 'value' => array(0 => 'n',1 => 'y') ), 'user' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', interface/web/admin/lib/lang/en_server_config.lng
@@ -73,4 +73,5 @@ $wb["named_conf_local_path_txt"] = 'BIND named.conf.local path'; $wb["php_ini_path_cgi_txt"] = 'CGI php.ini path'; $wb["php_ini_path_apache_txt"] = 'Apache php.ini path'; $wb["check_apache_config_txt"] = 'Test apache configuration on restart'; ?> interface/web/admin/templates/server_config_web_edit.htm
@@ -34,6 +34,12 @@ </div> </div> <div class="ctrlHolder"> <p class="label">{tmpl_var name='check_apache_config_txt'}</p> <div class="multiField"> {tmpl_var name='check_apache_config'} </div> </div> <div class="ctrlHolder"> <label for="user">{tmpl_var name='web_user_txt'}</label> <input name="user" id="user" value="{tmpl_var name='user'}" size="40" maxlength="255" type="text" class="textInput" /> </div> server/plugins-available/apache2_plugin.inc.php
@@ -825,6 +825,10 @@ } $vhost_file = escapeshellcmd($web_config["vhost_conf_dir"].'/'.$data["new"]["domain"].'.vhost'); //* Make a backup copy of vhost file copy($vhost_file,$vhost_file.'~'); //* Write vhost file file_put_contents($vhost_file,$tpl->grab()); $app->log("Writing the vhost file: $vhost_file",LOGLEVEL_DEBUG); unset($tpl); @@ -880,13 +884,35 @@ $this->awstats_update($data,$web_config); } if($web_config['check_apache_config'] == 'y') { //* Test if apache starts with the new configuration file $apache_online_status_before_restart = $this->_checkTcp('localhost',80); $app->log("Apache status is: ".$apache_online_status_before_restart,LOGLEVEL_DEBUG); $app->services->restartService('httpd','restart'); //* Check if apache restarted successfully if it was online before $apache_online_status_after_restart = $this->_checkTcp('localhost',80); $app->log("Apache online status after restart is: ".$apache_online_status_after_restart,LOGLEVEL_DEBUG); if($apache_online_status_before_restart && !$apache_online_status_after_restart) { $app->log("Apache did not restart after the configuration change for website ".$data["new"]["domain"].' Reverting the configuration. Saved not working config as '.$vhost_file.'.err',LOGLEVEL_WARN); copy($vhost_file,$vhost_file.'.err'); copy($vhost_file.'~',$vhost_file); $app->services->restartService('httpd','restart'); } } else { //* We do not check the apache config after changes (is faster) if($apache_chrooted) { $app->services->restartServiceDelayed('httpd','restart'); } else { // request a httpd reload when all records have been processed $app->services->restartServiceDelayed('httpd','reload'); } } // Remove the backup copy of the config file. unlink($vhost_file.'~'); //* Unset action to clean it for next processed vhost. $this->action = ''; @@ -1284,6 +1310,18 @@ exec($command); } private function _checkTcp ($host,$port) { $fp = @fsockopen ($host, $port, $errno, $errstr, 2); if ($fp) { fclose($fp); return true; } else { return false; } } } // end class