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