function php_fpm() { $unix = new unix(); $bin = $GLOBALS["CLASS_UNIX"]->APACHE_LOCATE_PHP_FPM(); if (!is_file($bin)) { if (!is_file("/etc/debian_version")) { return; } $StampFile = "/etc/artica-postfix/pids/php_fpm.install.time"; $TimeFile = $GLOBALS["CLASS_UNIX"]->file_time_min($StampFile); if ($TimeFile > 1440) { @unlink($StampFile); @file_put_contents($StampFile, time()); syslog_status("php5-FPM: Not installed , installing php5-fpm Time:{$TimeFile}Mn", "artica-status"); $cmd = trim("{$GLOBALS["NICE"]} {$GLOBALS["PHP5"]} " . dirname(__FILE__) . "/exec.apt-get.php --phpfpm-daemon >/dev/null 2>&1 &"); shell_exec2($cmd); } return; } $master_pid = FPM_PID(); $EnablePHPFPM = $GLOBALS["CLASS_SOCKETS"]->GET_INFO("EnablePHPFPM"); $ZarafaApachePHPFPMEnable = $GLOBALS["CLASS_SOCKETS"]->GET_INFO("ZarafaApachePHPFPMEnable"); if (!is_numeric($ZarafaApachePHPFPMEnable)) { $ZarafaApachePHPFPMEnable = 0; } $EnableArticaApachePHPFPM = $GLOBALS["CLASS_SOCKETS"]->GET_INFO("EnableArticaApachePHPFPM"); if (!is_numeric($EnableArticaApachePHPFPM)) { $EnableArticaApachePHPFPM = 0; } $EnablePHPFPMFreeWeb = $GLOBALS["CLASS_SOCKETS"]->GET_INFO("EnablePHPFPMFreeWeb"); if (!is_numeric($EnablePHPFPMFreeWeb)) { $EnablePHPFPMFreeWeb = 0; } $EnablePHPFPMFrameWork = $GLOBALS["CLASS_SOCKETS"]->GET_INFO("EnablePHPFPMFrameWork"); if (!is_numeric($EnablePHPFPMFrameWork)) { $EnablePHPFPMFrameWork = 0; } if ($EnableArticaApachePHPFPM == 1) { $EnablePHPFPM = 1; } if ($ZarafaApachePHPFPMEnable == 1) { $EnablePHPFPM = 1; } if ($EnablePHPFPMFreeWeb == 1) { $EnablePHPFPM = 1; } if ($EnablePHPFPMFrameWork == 1) { $EnablePHPFPM = 1; } if ($ZarafaApachePHPFPMEnable == 1) { $EnablePHPFPM = 1; } if ($EnableArticaApachePHPFPM == 1) { $EnablePHPFPM = 1; } if (!is_numeric($EnablePHPFPM)) { $EnablePHPFPM = 0; } if (is_file("/etc/artica-postfix/WORDPRESS_APPLIANCE")) { $EnablePHPFPM = 1; $EnablePHPFPMFreeWeb = 1; } $l[] = "[APP_PHPFPM]"; $l[] = "service_name=APP_PHPFPM"; $l[] = "master_version=" . php_fpm_version(); $l[] = "service_disabled={$EnablePHPFPM}"; $l[] = "pid_path=/var/run/php5-fpm.pid"; $l[] = "service_cmd=/etc/init.d/php5-fpm"; $l[] = "watchdog_features=1"; $l[] = "family=network"; if (is_file("/etc/monit/conf.d/phpfpm.monitrc")) { @unlink("/etc/monit/conf.d/phpfpm.monitrc"); $GLOBALS["CLASS_UNIX"]->MONIT_RELOAD(); } if ($EnablePHPFPM == 0) { $l[] = ""; return implode("\n", $l); return; } if (!$GLOBALS["CLASS_UNIX"]->process_exists($master_pid)) { $master_pid = $GLOBALS["CLASS_UNIX"]->PIDOF($bin); } if (!$GLOBALS["CLASS_UNIX"]->process_exists($master_pid)) { if (!$GLOBALS["DISABLE_WATCHDOG"]) { syslog_status("php5-FPM: Not running starting php5-fpm", "artica-status"); $cmd = trim("{$GLOBALS["NICE"]} {$GLOBALS["PHP5"]} " . dirname(__FILE__) . "/exec.php-fpm.php --start >/dev/null 2>&1 &"); shell_exec2($cmd); } $l[] = ""; return implode("\n", $l); } $l[] = GetMemoriesOf($master_pid); $l[] = ""; if ($EnableArticaApachePHPFPM == 1) { if (!$GLOBALS["CLASS_UNIX"]->is_socket("/var/run/php-fpm.sock")) { syslog_status("/var/run/php-fpm.sock: no such file, restarting php5-FPM", "artica-status"); $cmd = trim("{$GLOBALS["NICE"]} {$GLOBALS["PHP5"]} " . dirname(__FILE__) . "/exec.php-fpm.php --restart >/dev/null 2>&1 &"); shell_exec2($cmd); } } if ($EnablePHPFPMFreeWeb == 1) { if (!$GLOBALS["CLASS_UNIX"]->is_socket("/var/run/php-fpm-apache2.sock")) { syslog_status("/var/run/php-fpm-apache2.sock: no such file, restarting php5-FPM", "artica-status"); $cmd = trim("{$GLOBALS["NICE"]} {$GLOBALS["PHP5"]} " . dirname(__FILE__) . "/exec.php-fpm.php --restart >/dev/null 2>&1 &"); shell_exec2($cmd); } } $zarafabin = $GLOBALS["CLASS_UNIX"]->find_program("zarafa-server"); if (is_file($zarafabin)) { if ($ZarafaApachePHPFPMEnable == 1) { if (!$GLOBALS["CLASS_UNIX"]->is_socket("/var/run/php-fpm-zarafa.sock")) { syslog_status("/var/run/php-fpm-zarafa.sock: no such file, restarting php5-FPM", "artica-status"); $cmd = trim("{$GLOBALS["NICE"]} {$GLOBALS["PHP5"]} " . dirname(__FILE__) . "/exec.php-fpm.php --restart >/dev/null 2>&1 &"); shell_exec2($cmd); } } } return implode("\n", $l); return; }
function start($aspid = false) { $scriptlog = null; if ($GLOBALS["BYSCRIPT"]) { $scriptlog = " by init.d script"; } $sock = new sockets(); $unix = new unix(); if (is_file("/etc/artica-postfix/FROM_ISO")) { if ($unix->file_time_min("/etc/artica-postfix/FROM_ISO") < 1) { return; } } $daemon_path = $unix->APACHE_LOCATE_PHP_FPM(); if (!is_file($daemon_path)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: PHP-FPM: not installed\n"; } return; } if (!$aspid) { $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid"; $pid = $unix->get_pid_from_file($pidfile); if ($unix->process_exists($pid, basename(__FILE__))) { $time = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: PHP-FPM: Already Artica task running PID {$pid} since {$time}mn\n"; } return; } @file_put_contents($pidfile, getmypid()); } $pid = FPM_PID(); $EnablePHPFPM = $sock->GET_INFO("EnablePHPFPM"); if (!is_numeric($EnablePHPFPM)) { $EnablePHPFPM = 0; } $ZarafaApachePHPFPMEnable = $sock->GET_INFO("ZarafaApachePHPFPMEnable"); if (!is_numeric($ZarafaApachePHPFPMEnable)) { $ZarafaApachePHPFPMEnable = 0; } $EnableArticaApachePHPFPM = $sock->GET_INFO("EnableArticaApachePHPFPM"); if (!is_numeric($EnableArticaApachePHPFPM)) { $EnableArticaApachePHPFPM = 0; } $EnablePHPFPMFreeWeb = $sock->GET_INFO("EnablePHPFPMFreeWeb"); if (!is_numeric($EnablePHPFPMFreeWeb)) { $EnablePHPFPMFreeWeb = 0; } $EnablePHPFPMFrameWork = $sock->GET_INFO("EnablePHPFPMFrameWork"); if (!is_numeric($EnablePHPFPMFrameWork)) { $EnablePHPFPMFrameWork = 0; } if ($EnableArticaApachePHPFPM == 1) { $EnablePHPFPM = 1; } if ($ZarafaApachePHPFPMEnable == 1) { $EnablePHPFPM = 1; } if ($EnablePHPFPMFreeWeb == 1) { $EnablePHPFPM = 1; } if ($EnablePHPFPMFrameWork == 1) { $EnablePHPFPM = 1; } if (is_file("/etc/artica-postfix/WORDPRESS_APPLIANCE")) { $EnablePHPFPMFreeWeb = 1; $EnablePHPFPM = 1; } if ($unix->process_exists($pid)) { if ($EnablePHPFPM == 0) { stop(true); } $timepid = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: PHP-FPM: Already started {$pid} since {$timepid}Mn...\n"; } return; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: PHP-FPM: EnablePHPFPMFrameWork = {$EnablePHPFPMFrameWork}\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: PHP-FPM: EnablePHPFPMFreeWeb = {$EnablePHPFPMFreeWeb}\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: PHP-FPM: ZarafaApachePHPFPMEnable = {$ZarafaApachePHPFPMEnable}\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: PHP-FPM: EnableArticaApachePHPFPM = {$EnableArticaApachePHPFPM}\n"; } if ($EnablePHPFPM == 0) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: PHP-FPM: Disabled ( see EnablePHPFPM )\n"; } @unlink("/etc/monit/conf.d/phpfpm.monitrc"); return; } $end = null; $nohup = $unix->find_program("nohup"); $ParseParams = ParseParams(); $parms[] = "{$daemon_path}"; if (isset($ParseParams["pid"])) { $parms[] = "--pid /var/run/php5-fpm.pid"; } $parms[] = "--fpm-config /etc/php5/fpm/php-fpm.conf"; if (isset($ParseParams["daemonize"])) { $parms[] = "--daemonize"; $end = "&"; } //PHP 5.3.10-1ubuntu3.6 //PHP 5.3.24-1~dotdeb.0 if (isset($ParseParams["allow-to-run-as-root"])) { $parms[] = "--allow-to-run-as-root"; } if ($end != null) { $parms[] = $end; } $cmd = @implode(" ", $parms); if ($GLOBALS["VERBOSE"]) { echo "{$cmd}\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: PHP-FPM: version:" . GetVersion() . "\n"; } FrmToSyslog("Starting PHP-FPM daemon{$scriptlog}"); shell_exec($cmd); for ($i = 0; $i < 6; $i++) { $pid = FPM_PID(); if ($unix->process_exists($pid)) { break; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: PHP-FPM: waiting {$i}/6...\n"; } sleep(1); } $pid = FPM_PID(); if ($unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: PHP-FPM: Success service started pid:{$pid}...\n"; } $monit = new monit_unix(); $monit->MONITOR("PHPFPM"); } else { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: PHP-FPM: Service failed...\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$cmd}\n"; } } }