Esempio n. 1
0
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;
}
Esempio n. 2
0
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";
        }
    }
}