install/dist/conf/centos52.conf.php
@@ -192,6 +192,7 @@ $conf['nginx']['php_fpm_ini_path'] = '/etc/php.ini'; $conf['nginx']['php_fpm_pool_dir'] = '/etc/php-fpm.d'; $conf['nginx']['php_fpm_start_port'] = 9010; $conf['nginx']['php_fpm_socket_dir'] = '/var/run/php5-fpm'; //* vlogger $conf['vlogger']['config_dir'] = '/etc'; install/dist/conf/centos53.conf.php
@@ -192,6 +192,7 @@ $conf['nginx']['php_fpm_ini_path'] = '/etc/php.ini'; $conf['nginx']['php_fpm_pool_dir'] = '/etc/php-fpm.d'; $conf['nginx']['php_fpm_start_port'] = 9010; $conf['nginx']['php_fpm_socket_dir'] = '/var/run/php5-fpm'; //* vlogger $conf['vlogger']['config_dir'] = '/etc'; install/dist/conf/debian40.conf.php
@@ -204,6 +204,7 @@ $conf['nginx']['php_fpm_ini_path'] = '/etc/php5/fpm/php.ini'; $conf['nginx']['php_fpm_pool_dir'] = '/etc/php5/fpm/pool.d'; $conf['nginx']['php_fpm_start_port'] = 9010; $conf['nginx']['php_fpm_socket_dir'] = '/var/run/php5-fpm'; //*Ufw $conf['ufw']['installed'] = false; install/dist/conf/debian60.conf.php
@@ -204,6 +204,7 @@ $conf['nginx']['php_fpm_ini_path'] = '/etc/php5/fpm/php.ini'; $conf['nginx']['php_fpm_pool_dir'] = '/etc/php5/fpm/pool.d'; $conf['nginx']['php_fpm_start_port'] = 9010; $conf['nginx']['php_fpm_socket_dir'] = '/var/run/php5-fpm'; //* Ufw $conf['ufw']['installed'] = false; install/dist/conf/fedora9.conf.php
@@ -192,6 +192,7 @@ $conf['nginx']['php_fpm_ini_path'] = '/etc/php.ini'; $conf['nginx']['php_fpm_pool_dir'] = '/etc/php-fpm.d'; $conf['nginx']['php_fpm_start_port'] = 9010; $conf['nginx']['php_fpm_socket_dir'] = '/var/run/php5-fpm'; //* vlogger $conf['vlogger']['config_dir'] = '/etc'; install/dist/conf/gentoo.conf.php
@@ -208,6 +208,7 @@ $conf['nginx']['php_fpm_ini_path'] = '/etc/php5/fpm/php.ini'; $conf['nginx']['php_fpm_pool_dir'] = '/etc/php5/fpm/pool.d'; $conf['nginx']['php_fpm_start_port'] = 9010; $conf['nginx']['php_fpm_socket_dir'] = '/var/run/php5-fpm'; //* vlogger $conf['vlogger']['config_dir'] = '/etc/vlogger'; install/dist/conf/opensuse110.conf.php
@@ -192,6 +192,7 @@ $conf['nginx']['php_fpm_ini_path'] = '/etc/php5/fpm/php.ini'; $conf['nginx']['php_fpm_pool_dir'] = '/etc/php5/fpm'; $conf['nginx']['php_fpm_start_port'] = 9010; $conf['nginx']['php_fpm_socket_dir'] = '/var/run/php5-fpm'; //* vlogger $conf['vlogger']['config_dir'] = '/etc'; install/dist/conf/opensuse112.conf.php
@@ -192,6 +192,7 @@ $conf['nginx']['php_fpm_ini_path'] = '/etc/php5/fpm/php.ini'; $conf['nginx']['php_fpm_pool_dir'] = '/etc/php5/fpm'; $conf['nginx']['php_fpm_start_port'] = 9010; $conf['nginx']['php_fpm_socket_dir'] = '/var/run/php5-fpm'; //* vlogger $conf['vlogger']['config_dir'] = '/etc'; install/lib/installer_base.lib.php
@@ -243,6 +243,7 @@ $tpl_ini_array['web']['php_fpm_ini_path'] = $conf['nginx']['php_fpm_ini_path']; $tpl_ini_array['web']['php_fpm_pool_dir'] = $conf['nginx']['php_fpm_pool_dir']; $tpl_ini_array['web']['php_fpm_start_port'] = $conf['nginx']['php_fpm_start_port']; $tpl_ini_array['web']['php_fpm_socket_dir'] = $conf['nginx']['php_fpm_socket_dir']; $tpl_ini_array['web']['server_type'] = 'nginx'; $tpl_ini_array['global']['webserver'] = 'nginx'; } install/lib/update.lib.php
@@ -270,6 +270,7 @@ $tpl_ini_array['web']['php_fpm_ini_path'] = $conf['nginx']['php_fpm_ini_path']; $tpl_ini_array['web']['php_fpm_pool_dir'] = $conf['nginx']['php_fpm_pool_dir']; $tpl_ini_array['web']['php_fpm_start_port'] = $conf['nginx']['php_fpm_start_port']; $tpl_ini_array['web']['php_fpm_socket_dir'] = $conf['nginx']['php_fpm_socket_dir']; $tpl_ini_array['web']['server_type'] = 'nginx'; $tpl_ini_array['global']['webserver'] = 'nginx'; } install/sql/incremental/upd_0021.sql
New file @@ -0,0 +1 @@ ALTER TABLE `web_domain` ADD `php_fpm_use_socket` ENUM( 'n', 'y' ) NOT NULL DEFAULT 'n' AFTER `nginx_directives`; install/sql/ispconfig3.sql
@@ -1510,6 +1510,7 @@ `allow_override` varchar(255) NOT NULL default 'All', `apache_directives` mediumtext, `nginx_directives` mediumtext, `php_fpm_use_socket` ENUM('n','y') NOT NULL DEFAULT 'n' `php_open_basedir` mediumtext, `custom_php_ini` mediumtext, `backup_interval` VARCHAR( 255 ) NOT NULL DEFAULT 'none', install/tpl/server.ini.master
@@ -66,6 +66,7 @@ php_fpm_ini_path=/etc/php5/fpm/php.ini php_fpm_pool_dir=/etc/php5/fpm/pool.d php_fpm_start_port=9010 php_fpm_socket_dir=/var/run/php5-fpm [dns] bind_user=root interface/web/admin/form/server_config.tform.php
@@ -548,6 +548,17 @@ 'width' => '40', 'maxlength' => '255' ), 'php_fpm_socket_dir' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '', 'validators' => array(0 => array('type' => 'NOTEMPTY', 'errmsg' => 'php_fpm_socket_dir_error_empty'), ), 'value' => '', 'width' => '40', 'maxlength' => '255' ), 'php_open_basedir' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', interface/web/admin/lib/lang/de_server_config.lng
@@ -139,4 +139,6 @@ $wb["php_fpm_pool_dir_error_empty"] = 'PHP-FPM pool Verzeichnis ist leer.'; $wb["php_fpm_start_port_txt"] = 'PHP-FPM Start-Port'; $wb["php_fpm_start_port_error_empty"] = 'PHP-FPM Start-Port ist leer.'; $wb["php_fpm_socket_dir_txt"] = 'PHP-FPM Socket-Verzeichnis'; $wb["php_fpm_socket_dir_error_empty"] = 'PHP-FPM Socket-Verzeichnis ist leer.'; ?> interface/web/admin/lib/lang/en_server_config.lng
@@ -141,6 +141,8 @@ $wb["php_fpm_pool_dir_error_empty"] = 'PHP-FPM pool directory is empty.'; $wb["php_fpm_start_port_txt"] = 'PHP-FPM start port'; $wb["php_fpm_start_port_error_empty"] = 'PHP-FPM start port is empty.'; $wb["php_fpm_socket_dir_txt"] = 'PHP-FPM socket directory'; $wb["php_fpm_socket_dir_error_empty"] = 'PHP-FPM socket directory is empty.'; $wb["try_rescue_txt"] = 'Enable service monitoring and restart on failure'; $wb["do_not_try_rescue_apache_txt"] = 'Disable apache monitoring'; $wb["do_not_try_rescue_mysql_txt"] = 'Disable MySQL monitoring'; interface/web/admin/templates/server_config_web_edit.htm
@@ -109,6 +109,10 @@ <label for="php_fpm_start_port">{tmpl_var name='php_fpm_start_port_txt'}</label> <input name="php_fpm_start_port" id="php_fpm_start_port" value="{tmpl_var name='php_fpm_start_port'}" size="40" maxlength="255" type="text" class="textInput" /> </div> <div class="ctrlHolder nginx"> <label for="php_fpm_socket_dir">{tmpl_var name='php_fpm_socket_dir_txt'}</label> <input name="php_fpm_socket_dir" id="php_fpm_socket_dir" value="{tmpl_var name='php_fpm_socket_dir'}" size="40" maxlength="255" type="text" class="textInput" /> </div> <div class="ctrlHolder"> <label for="php_open_basedir">{tmpl_var name='php_open_basedir_txt'}</label> <input name="php_open_basedir" id="php_open_basedir" value="{tmpl_var name='php_open_basedir'}" size="40" type="text" class="textInput" /> interface/web/sites/form/web_domain.tform.php
@@ -488,6 +488,12 @@ 'width' => '30', 'maxlength' => '255' ), 'php_fpm_use_socket' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', 'default' => 'n', 'value' => array(0 => 'n',1 => 'y') ), 'php_open_basedir' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', interface/web/sites/lib/lang/de_web_domain.lng
@@ -76,4 +76,5 @@ $wb["seo_redirect_txt"] = 'SEO Redirect'; $wb["non_www_to_www_txt"] = 'Nicht-www -> www'; $wb["www_to_non_www_txt"] = 'www -> Nicht-www'; $wb["php_fpm_use_socket_txt"] = 'Benutze Socket für PHP-FPM'; ?> interface/web/sites/lib/lang/en_web_domain.lng
@@ -76,4 +76,5 @@ $wb["seo_redirect_txt"] = 'SEO Redirect'; $wb["non_www_to_www_txt"] = 'Non-www -> www'; $wb["www_to_non_www_txt"] = 'www -> non-www'; $wb["php_fpm_use_socket_txt"] = 'Use Socket For PHP-FPM'; ?> interface/web/sites/templates/web_domain_advanced.htm
@@ -20,6 +20,12 @@ <label for="allow_override">{tmpl_var name='allow_override_txt'}</label> <input name="allow_override" id="allow_override" value="{tmpl_var name='allow_override'}" size="30" maxlength="255" type="text" class="textInput" /> </div> <div class="ctrlHolder nginx"> <p class="label">{tmpl_var name='php_fpm_use_socket_txt'}</p> <div class="multiField"> {tmpl_var name='php_fpm_use_socket'} </div> </div> <div class="ctrlHolder"> <label for="php_open_basedir">{tmpl_var name='php_open_basedir_txt'}</label> <input name="php_open_basedir" id="php_open_basedir" value="{tmpl_var name='php_open_basedir'}" size="30" type="text" class="textInput" style="width:400px;" /> server/conf/nginx_vhost.conf.master
@@ -75,7 +75,8 @@ location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:<tmpl_var name='fpm_port'>; <tmpl_var name='use_tcp'>fastcgi_pass 127.0.0.1:<tmpl_var name='fpm_port'>; <tmpl_var name='use_socket'>fastcgi_pass unix:<tmpl_var name='fpm_socket'>; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; server/conf/php_fpm_pool.conf.master
@@ -1,8 +1,12 @@ [<tmpl_var name='fpm_pool'>] listen = 127.0.0.1:<tmpl_var name='fpm_port'> <tmpl_var name='use_tcp'>listen = 127.0.0.1:<tmpl_var name='fpm_port'> <tmpl_var name='use_tcp'>listen.allowed_clients = 127.0.0.1 listen.allowed_clients = 127.0.0.1 <tmpl_var name='use_socket'>listen = <tmpl_var name='fpm_socket'> <tmpl_var name='use_socket'>listen.owner = <tmpl_var name='fpm_user'> <tmpl_var name='use_socket'>listen.group = <tmpl_var name='fpm_group'> <tmpl_var name='use_socket'>listen.mode = 0660 user = <tmpl_var name='fpm_user'> group = <tmpl_var name='fpm_group'> server/plugins-available/nginx_plugin.inc.php
@@ -639,6 +639,25 @@ $vhost_data['web_document_root_www'] = $web_config['website_basedir'].'/'.$data['new']['domain'].'/web'; $vhost_data['web_basedir'] = $web_config['website_basedir']; $vhost_data['ssl_domain'] = $data['new']['ssl_domain']; // PHP-FPM $pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']); if(substr($pool_dir,-1) != '/') $pool_dir .= '/'; $pool_name = 'web'.$data['new']['domain_id']; $socket_dir = escapeshellcmd($web_config['php_fpm_socket_dir']); if(substr($socket_dir,-1) != '/') $socket_dir .= '/'; if($data['new']['php_fpm_use_socket'] == 'y'){ $use_tcp = '#'; $use_socket = ''; } else { $use_tcp = ''; $use_socket = '#'; } $tpl->setVar('use_tcp', $use_tcp); $tpl->setVar('use_socket', $use_socket); $fpm_socket = $socket_dir.$pool_name.'.sock'; $tpl->setVar('fpm_socket', $fpm_socket); $vhost_data['fpm_port'] = $web_config['php_fpm_start_port'] + $data['new']['domain_id'] + 1; // Custom nginx directives @@ -870,7 +889,7 @@ $this->awstats_update($data,$web_config); } $this->php_fpm_pool_update($data,$web_config); $this->php_fpm_pool_update($data,$web_config,$pool_dir,$pool_name,$socket_dir); if($web_config['check_apache_config'] == 'y') { //* Test if nginx starts with the new configuration file @@ -1073,89 +1092,95 @@ } //* Update the PHP-FPM pool configuration file private function php_fpm_pool_update ($data,$web_config) { private function php_fpm_pool_update ($data,$web_config,$pool_dir,$pool_name,$socket_dir) { global $app, $conf; $pool_dir = $web_config['php_fpm_pool_dir']; $pool_name = 'web'.$data['new']['domain_id']; //$reload = false; if($data['new']['php'] == 'no'){ if(@is_file($pool_dir.'/'.$pool_name.'.conf')){ unlink($pool_dir.'/'.$pool_name.'.conf'); if(@is_file($pool_dir.$pool_name.'.conf')){ unlink($pool_dir.$pool_name.'.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.'/'.$pool_name.'.conf') ) { // unlink($pool_dir.'/'.$pool_name.'.conf'); //} $app->uses("getconf"); $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); $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'); $app->load('tpl'); $tpl = new tpl(); $tpl->newTemplate('php_fpm_pool.conf.master'); $tpl->setVar('fpm_pool', $pool_name); $tpl->setVar('fpm_port', $web_config['php_fpm_start_port'] + $data['new']['domain_id'] + 1); $tpl->setVar('fpm_user', $data['new']['system_user']); $tpl->setVar('fpm_group', $data['new']['system_group']); $tpl->setVar('security_level',$web_config['security_level']); $php_open_basedir = ($data['new']['php_open_basedir'] == '')?escapeshellcmd($data['new']['document_root']):escapeshellcmd($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', ';'); } if($data['new']['php_fpm_use_socket'] == 'y'){ $use_tcp = ';'; $use_socket = ''; if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir); } else { $use_tcp = ''; $use_socket = ';'; } $tpl->setVar('use_tcp', $use_tcp); $tpl->setVar('use_socket', $use_socket); // 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 = escapeshellcmd(trim($value)); $key = escapeshellcmd(trim($key)); switch (strtolower($value)) { case 'on': case 'off': case '1': case '0': // 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); } $fpm_socket = $socket_dir.$pool_name.'.sock'; $tpl->setVar('fpm_socket', $fpm_socket); $tpl->setVar('fpm_pool', $pool_name); $tpl->setVar('fpm_port', $web_config['php_fpm_start_port'] + $data['new']['domain_id'] + 1); $tpl->setVar('fpm_user', $data['new']['system_user']); $tpl->setVar('fpm_group', $data['new']['system_group']); $tpl->setVar('security_level',$web_config['security_level']); $php_open_basedir = ($data['new']['php_open_basedir'] == '')?escapeshellcmd($data['new']['document_root']):escapeshellcmd($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 = escapeshellcmd(trim($value)); $key = escapeshellcmd(trim($key)); switch (strtolower($value)) { case 'on': case 'off': case '1': case '0': // 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); $tpl->setLoop('custom_php_ini_settings', $final_php_ini_settings); file_put_contents($pool_dir.'/'.$pool_name.'.conf',$tpl->grab()); $app->log('Writing the PHP-FPM config file: '.$pool_dir.'/'.$pool_name.'.conf',LOGLEVEL_DEBUG); unset($tpl); //$reload = true; //} file_put_contents($pool_dir.$pool_name.'.conf',$tpl->grab()); $app->log('Writing the PHP-FPM config file: '.$pool_dir.$pool_name.'.conf',LOGLEVEL_DEBUG); unset($tpl); //$reload = true; //if($reload == true) $app->services->restartService('php-fpm','reload'); } @@ -1163,12 +1188,13 @@ private function php_fpm_pool_delete ($data,$web_config) { global $app; $pool_dir = $web_config['php_fpm_pool_dir']; $pool_name = 'web'.$data['old']['domain_id']; $pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']); if(substr($pool_dir,-1) != '/') $pool_dir .= '/'; $pool_name = 'web'.$data['new']['domain_id']; if ( @is_file($pool_dir.'/'.$pool_name.'.conf') ) { unlink($pool_dir.'/'.$pool_name.'.conf'); $app->log('Removed PHP-FPM config file: '.$pool_dir.'/'.$pool_name.'.conf',LOGLEVEL_DEBUG); if ( @is_file($pool_dir.$pool_name.'.conf') ) { unlink($pool_dir.$pool_name.'.conf'); $app->log('Removed PHP-FPM config file: '.$pool_dir.$pool_name.'.conf',LOGLEVEL_DEBUG); //$app->services->restartService('php-fpm','reload'); } }