create dummy pool-config whenever a fpm-daemons configdir is empty so it still restarts
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
This commit is contained in:
@@ -435,6 +435,27 @@ class phpinterface_fpm
|
|||||||
return $configdir;
|
return $configdir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* create a dummy fpm pool config with minimal configuration
|
||||||
|
* (this is used whenever a config directory is empty but needs at least one pool to startup/restart)
|
||||||
|
*
|
||||||
|
* @param string $configdir
|
||||||
|
*/
|
||||||
|
public static function createDummyPool($configdir)
|
||||||
|
{
|
||||||
|
if (! is_dir($configdir)) {
|
||||||
|
safe_exec('mkdir -p ' . escapeshellarg($configdir));
|
||||||
|
}
|
||||||
|
$config = makeCorrectFile($configdir . '/dummy.conf');
|
||||||
|
$dummy = "[dummy]
|
||||||
|
user = ".Settings::Get('system.httpuser')."
|
||||||
|
listen = /run/" . base64_encode($configdir) . "-fpm.sock
|
||||||
|
pm = static
|
||||||
|
pm.max_children = 1
|
||||||
|
";
|
||||||
|
file_put_contents($config, $dummy);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* return the admin-data of a specific admin
|
* return the admin-data of a specific admin
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -59,11 +59,18 @@ class apache extends HttpConfigBase
|
|||||||
{
|
{
|
||||||
if ((int) Settings::Get('phpfpm.enabled') == 1) {
|
if ((int) Settings::Get('phpfpm.enabled') == 1) {
|
||||||
// get all start/stop commands
|
// get all start/stop commands
|
||||||
$startstop_sel = Database::prepare("SELECT reload_cmd FROM `" . TABLE_PANEL_FPMDAEMONS . "`");
|
$startstop_sel = Database::prepare("SELECT reload_cmd, config_dir FROM `" . TABLE_PANEL_FPMDAEMONS . "`");
|
||||||
Database::pexecute($startstop_sel);
|
Database::pexecute($startstop_sel);
|
||||||
$restart_cmds = $startstop_sel->fetchAll(PDO::FETCH_ASSOC);
|
$restart_cmds = $startstop_sel->fetchAll(PDO::FETCH_ASSOC);
|
||||||
// restart all php-fpm instances
|
// restart all php-fpm instances
|
||||||
foreach ($restart_cmds as $restart_cmd) {
|
foreach ($restart_cmds as $restart_cmd) {
|
||||||
|
// check whether the config dir is empty (no domains uses this daemon)
|
||||||
|
// so we need to create a dummy
|
||||||
|
$isDirEmpty = !(new \FilesystemIterator($restart_cmd['config_dir']))->valid();
|
||||||
|
if ($isDirEmpty) {
|
||||||
|
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'apache::reload: fpm config directory "' . $restart_cmd['config_dir'] . '" is empty. Creating dummy.');
|
||||||
|
phpinterface_fpm::createDummyPool($restart_cmd['config_dir']);
|
||||||
|
}
|
||||||
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'apache::reload: running ' . $restart_cmd['reload_cmd']);
|
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'apache::reload: running ' . $restart_cmd['reload_cmd']);
|
||||||
safe_exec(escapeshellcmd($restart_cmd['reload_cmd']));
|
safe_exec(escapeshellcmd($restart_cmd['reload_cmd']));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,11 +59,18 @@ class lighttpd extends HttpConfigBase
|
|||||||
{
|
{
|
||||||
if ((int) Settings::Get('phpfpm.enabled') == 1) {
|
if ((int) Settings::Get('phpfpm.enabled') == 1) {
|
||||||
// get all start/stop commands
|
// get all start/stop commands
|
||||||
$startstop_sel = Database::prepare("SELECT reload_cmd FROM `" . TABLE_PANEL_FPMDAEMONS . "`");
|
$startstop_sel = Database::prepare("SELECT reload_cmd, config_dir FROM `" . TABLE_PANEL_FPMDAEMONS . "`");
|
||||||
Database::pexecute($startstop_sel);
|
Database::pexecute($startstop_sel);
|
||||||
$restart_cmds = $startstop_sel->fetchAll(PDO::FETCH_ASSOC);
|
$restart_cmds = $startstop_sel->fetchAll(PDO::FETCH_ASSOC);
|
||||||
// restart all php-fpm instances
|
// restart all php-fpm instances
|
||||||
foreach ($restart_cmds as $restart_cmd) {
|
foreach ($restart_cmds as $restart_cmd) {
|
||||||
|
// check whether the config dir is empty (no domains uses this daemon)
|
||||||
|
// so we need to create a dummy
|
||||||
|
$isDirEmpty = !(new \FilesystemIterator($restart_cmd['config_dir']))->valid();
|
||||||
|
if ($isDirEmpty) {
|
||||||
|
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'lighttpd::reload: fpm config directory "' . $restart_cmd['config_dir'] . '" is empty. Creating dummy.');
|
||||||
|
phpinterface_fpm::createDummyPool($restart_cmd['config_dir']);
|
||||||
|
}
|
||||||
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'lighttpd::reload: running ' . $restart_cmd['reload_cmd']);
|
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'lighttpd::reload: running ' . $restart_cmd['reload_cmd']);
|
||||||
safe_exec(escapeshellcmd($restart_cmd['reload_cmd']));
|
safe_exec(escapeshellcmd($restart_cmd['reload_cmd']));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,11 +74,18 @@ class nginx extends HttpConfigBase
|
|||||||
safe_exec(Settings::Get('system.phpreload_command'));
|
safe_exec(Settings::Get('system.phpreload_command'));
|
||||||
} elseif ((int) Settings::Get('phpfpm.enabled') == 1) {
|
} elseif ((int) Settings::Get('phpfpm.enabled') == 1) {
|
||||||
// get all start/stop commands
|
// get all start/stop commands
|
||||||
$startstop_sel = Database::prepare("SELECT reload_cmd FROM `" . TABLE_PANEL_FPMDAEMONS . "`");
|
$startstop_sel = Database::prepare("SELECT reload_cmd, config_dir FROM `" . TABLE_PANEL_FPMDAEMONS . "`");
|
||||||
Database::pexecute($startstop_sel);
|
Database::pexecute($startstop_sel);
|
||||||
$restart_cmds = $startstop_sel->fetchAll(PDO::FETCH_ASSOC);
|
$restart_cmds = $startstop_sel->fetchAll(PDO::FETCH_ASSOC);
|
||||||
// restart all php-fpm instances
|
// restart all php-fpm instances
|
||||||
foreach ($restart_cmds as $restart_cmd) {
|
foreach ($restart_cmds as $restart_cmd) {
|
||||||
|
// check whether the config dir is empty (no domains uses this daemon)
|
||||||
|
// so we need to create a dummy
|
||||||
|
$isDirEmpty = !(new \FilesystemIterator($restart_cmd['config_dir']))->valid();
|
||||||
|
if ($isDirEmpty) {
|
||||||
|
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'nginx::reload: fpm config directory "' . $restart_cmd['config_dir'] . '" is empty. Creating dummy.');
|
||||||
|
phpinterface_fpm::createDummyPool($restart_cmd['config_dir']);
|
||||||
|
}
|
||||||
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'nginx::reload: running ' . $restart_cmd['reload_cmd']);
|
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'nginx::reload: running ' . $restart_cmd['reload_cmd']);
|
||||||
safe_exec(escapeshellcmd($restart_cmd['reload_cmd']));
|
safe_exec(escapeshellcmd($restart_cmd['reload_cmd']));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user