Willkommen im kivitendo Forum! Hier erweitern und teilen AnwenderInnen und EntwicklerInnen ihr Wissen.

Teste kivitendo!

kivitendo Demo

kivitendo Demo mit Schweizer Kontenplan und neuem Layout

Unterstützt kivitendo mit der Basis-Subskription!

0 Punkte

Hi,

derzeit versuche ich kivi auf nginx laufen zu bekommen.

Das aktuelle Setup umfasst nginx 1.1.19, psql 9.1, php5-fpm 5.3.10 auf einem ubuntu 12.04 Server.

nginx schickt alle fcgi aufrufe an php-fpm welches dann die Skripte ausführt.
Ist vielleicht nicht die beste Lösung perl durch php zu jagen aber bei awstats hats bisher recht zuverlässig funktioniert :D

Hier ist das php-Skript, was fcgi ausführt

<?php
$descriptorspec = array(
    0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
    1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
    2 => array("pipe", "w")   // stderr is a file to write to
);
chdir("/var/www/kivitendo");
$newenv = $_SERVER;
$newenv["SCRIPT_FILENAME"] = $_SERVER["X_SCRIPT_FILENAME"];
$newenv["SCRIPT_NAME"] = $_SERVER["X_SCRIPT_NAME"];
if (is_executable($_SERVER["X_SCRIPT_FILENAME"])) {
    $process = proc_open($_SERVER["X_SCRIPT_FILENAME"], $descriptorspec, $pipes, NULL, $newenv);
    if (is_resource($process)) {
        fclose($pipes[0]);
        $error = fpassthru($pipes[2]);
        if (empty($error)) {
                $head = fgets($pipes[1]);
                while (strcmp($head, "\n")) {
                        header($head);
                        $head = fgets($pipes[1]);
                }
                fpassthru($pipes[1]);
        } else {
                header("Status: 500 Internal Server Error");
                echo($error);
        }
        fclose($pipes[1]);
        fclose($pipes[2]);
        $return_value = proc_close($process);
    } else {
        header("Status: 500 Internal Server Error");
        echo("Internal Server Error");
    }
} else {
    header("Status: 404 Page Not Found");
    echo("Page Not Found");
}

Jetzt hab ich das Problem das als fehler folgendes zurück kommt
> Can't call method "header" on an undefined value at /var/www/kivitendo/SL/Form.pm line 444. 92

die konkrete Zeile 444 ist die hier
> my $output = $cgi->header(%cgi_params);

Leider kenn ich mich nicht genug in Perl aus, dass ich das Environment korrekt setzten kann.

Kann mir hier jemand helfen?

Vielen Dank schon mal!!

Grüße
mr.moe

von
wieder getaggt von Anonym

Hallo mr.moe

Hattest du schon erfolg kivitendo mit nginx im fcgi Modus zu betreiben? Ich scheitere am selben Ort wie du, jedoch versuche ich es mit einer anderen Methode.

Lieber Gruss
Roger

1 Antwort

0 Punkte

wie wäre es mit fcgiwrap?

von (700 Punkte)

Ähnliche Fragen

...