Newer
Older
if($data['old']['php'] == 'fast-cgi') {
$this->php_fpm_pool_delete($data,$web_config);
}

latham
committed
}
}
//* This function is called when a IP on the server is inserted, updated or deleted
function server_ip($event_name,$data) {

latham
committed
global $app, $conf;

latham
committed
$app->uses('getconf');
$web_config = $app->getconf->get_server_config($conf['server_id'], 'web');

latham
committed
$app->load('tpl');

latham
committed
$tpl = new tpl();
$tpl->newTemplate('apache_ispconfig.conf.master');
$records = $app->db->queryAllRecords('SELECT * FROM server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'");

latham
committed
if(count($records) > 0) {
$tpl->setLoop('ip_adresses',$records);
}

latham
committed
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
$vhost_file = escapeshellcmd($web_config['nginx_vhost_conf_dir'].'/ispconfig.conf');
file_put_contents($vhost_file,$tpl->grab());
$app->log('Writing the conf file: '.$vhost_file,LOGLEVEL_DEBUG);
unset($tpl);
}
//* Update the awstats configuration file
private function awstats_update ($data,$web_config) {
global $app;
$awstats_conf_dir = $web_config['awstats_conf_dir'];
if(!@is_file($awstats_conf_dir.'/awstats.'.$data['new']['domain'].'.conf') || ($data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain'])) {
if ( @is_file($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf') ) {
unlink($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf');
}
$content = '';
$content .= "Include \"".$awstats_conf_dir."/awstats.conf\"\n";
$content .= "LogFile=\"/var/log/ispconfig/httpd/".$data['new']['domain']."/access.log\"\n";
$content .= "SiteDomain=\"".$data['new']['domain']."\"\n";
$content .= "HostAliases=\"www.".$data['new']['domain']." localhost 127.0.0.1\"\n";
file_put_contents($awstats_conf_dir.'/awstats.'.$data['new']['domain'].'.conf',$content);
$app->log('Created AWStats config file: '.$awstats_conf_dir.'/awstats.'.$data['new']['domain'].'.conf',LOGLEVEL_DEBUG);
}
}
//* Delete the awstats configuration file
private function awstats_delete ($data,$web_config) {
global $app;
$awstats_conf_dir = $web_config['awstats_conf_dir'];

latham
committed
if ( @is_file($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf') ) {
unlink($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf');
$app->log('Removed AWStats config file: '.$awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf',LOGLEVEL_DEBUG);
}

latham
committed
}
//* Update the PHP-FPM pool configuration file
private function php_fpm_pool_update ($data,$web_config) {
global $app, $conf;
$pool_dir = $web_config['php_fpm_pool_dir'];
//$reload = false;
if($data['new']['php'] == 'no'){
if(@is_file($pool_dir.'/'.$data['old']['domain'].'.conf')){
unlink($pool_dir.'/'.$data['old']['domain'].'.conf');
//$reload = true;
}
if(@is_file($pool_dir.'/'.$data['new']['domain'].'.conf')){
unlink($pool_dir.'/'.$data['new']['domain'].'.conf');
//$reload = true;
}
//if($reload == true) $app->services->restartService('php-fpm','reload');
return;
}
//if(!@is_file($pool_dir.'/'.$data['new']['domain'].'.conf') || ($data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain'])) {
if ( @is_file($pool_dir.'/'.$data['old']['domain'].'.conf') ) {
unlink($pool_dir.'/'.$data['old']['domain'].'.conf');
}
$app->uses("getconf");
$web_config = $app->getconf->get_server_config($conf["server_id"], 'web');
$app->load('tpl');
$tpl = new tpl();
$tpl->newTemplate('php_fpm_pool.conf.master');
$tpl->setVar('fpm_pool', $data['new']['domain']);
$tpl->setVar('fpm_port', $web_config['php_fpm_start_port'] + $data['new']['domain_id']);
$tpl->setVar('fpm_user', $data['new']['system_user']);
$tpl->setVar('fpm_group', $data['new']['system_group']);
$php_open_basedir = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir'];
$tpl->setVar('php_open_basedir', $php_open_basedir);
if($php_open_basedir != ''){
$tpl->setVar('enable_php_open_basedir', '');
} else {
$tpl->setVar('enable_php_open_basedir', ';');
}
// Custom php.ini settings
$final_php_ini_settings = array();
$custom_php_ini_settings = trim($data['new']['custom_php_ini']);
if($custom_php_ini_settings != ''){
// Make sure we only have Unix linebreaks
$custom_php_ini_settings = str_replace("\r\n", "\n", $custom_php_ini_settings);
$custom_php_ini_settings = str_replace("\r", "\n", $custom_php_ini_settings);
$ini_settings = explode("\n", $custom_php_ini_settings);
if(is_array($ini_settings) && !empty($ini_settings)){
foreach($ini_settings as $ini_setting){
list($key, $value) = explode('=', $ini_setting);
if($value){
$value = trim($value);
$key = trim($key);
switch (strtolower($value)) {
case 'on':
case 'off':
case '1':
case '0':

Falko Timme
committed
// PHP-FPM might complain about invalid boolean value if you use 0
$value = 'off';
case 'true':
case 'false':
case 'yes':
case 'no':
$final_php_ini_settings[] = array('ini_setting' => 'php_admin_flag['.$key.'] = '.$value);
break;
default:
$final_php_ini_settings[] = array('ini_setting' => 'php_admin_value['.$key.'] = '.$value);
}
}
}
}
}
$tpl->setLoop('custom_php_ini_settings', $final_php_ini_settings);
file_put_contents($pool_dir.'/'.$data['new']['domain'].'.conf',$tpl->grab());
$app->log('Writing the PHP-FPM config file: '.$pool_dir.'/'.$data['new']['domain'].'.conf',LOGLEVEL_DEBUG);
unset($tpl);
//$reload = true;
//if($reload == true) $app->services->restartService('php-fpm','reload');
}
//* Delete the PHP-FPM pool configuration file
private function php_fpm_pool_delete ($data,$web_config) {
global $app;
$pool_dir = $web_config['php_fpm_pool_dir'];
if ( @is_file($pool_dir.'/'.$data['old']['domain'].'.conf') ) {
unlink($pool_dir.'/'.$data['old']['domain'].'.conf');
$app->log('Removed PHP-FPM config file: '.$pool_dir.'/'.$data['old']['domain'].'.conf',LOGLEVEL_DEBUG);
$app->services->restartService('php-fpm','reload');
}
}

latham
committed
global $app, $conf;
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
$app->uses("getconf");
$web_config = $app->getconf->get_server_config($conf["server_id"], 'web');
$client_id = intval($data['old']['client_id']);
if($client_id > 0) {
$client_dir = $web_config['website_basedir'].'/clients/client'.$client_id;
if(is_dir($client_dir) && !stristr($client_dir,'..')) {
@rmdir($client_dir);
$app->log('Removed client directory: '.$client_dir,LOGLEVEL_DEBUG);
}
$this->_exec('groupdel client'.$client_id);
$app->log('Removed group client'.$client_id,LOGLEVEL_DEBUG);
}
}
//* Wrapper for exec function for easier debugging
private function _exec($command) {
global $app;
$app->log('exec: '.$command,LOGLEVEL_DEBUG);
exec($command);

latham
committed
}
private function _checkTcp ($host,$port) {
$fp = @fsockopen ($host, $port, $errno, $errstr, 2);

latham
committed
if ($fp) {
fclose($fp);
return true;
} else {
return false;
}

latham
committed
}

latham
committed
} // end class