sven: ImageMagick & FastCGI

Grüssi!

Ich hab grad ein Perl-Skript für den Einsatz mit FastCGI getrimmt und es läuft fast perfekt, bis auf

Img->Write('jpg:-');

Gibt ein ImageMagick-Bild über die Standard-Ausgabe als JPG aus. Hat vor der Umstellung auf FastCGI perfekt geklappt.
Jetzt bleibt die Seite leer und die Funktion gibt anscheinend auf STDERR aus.

Hab auch einiges sonst probiert, z.B.:

Img->Write( file => \*STDOUT );

Hilft aber alles nichts. Der JPEG-Code steht im Apache-Log. Wenn ich über obiger Befehlszeile folgendes einfüge, klappt die Ausgabe.

print "Content-Type: text/html\n\nDoes STDOUT work correctly?";

Ich nehme also an, dass STDOUT eigentlich korrekt funktioniert.

Wenn ich mir das error-log genauer ansehe, stelle ich fest, dass der JPG-Code einfach nach dem letzten Eintrag eingefügt wird und kein Datum, Zeit oder weitere Infos hat.

Hat jemand einen Rat?

Gibt es eine Möglichkeit ein Handle auf einen Skalar umzubiegen? Als Workaround! Das Skalar kann ich ja anscheinend per print ausgeben.

Etwas System-Information:
SuSE Linux 9.1
Apache 2.0.49
mod_fastcgi 2.4.0
ImageMagick 5.5.7
PerlMagick 5.5.7

danke
Sven

  1. Hi!

    Mir gehen inzwischen schon die Ideen aus, wie ich den Fehler eingrenzen könnte.

    Hat jemand zumindest Hinweise, Ideen: Wo könnte ich ansetzen? Was ich könnte ich noch probieren?

    Auch nochmal konkret die Frage:
    Kann ich ein Handle so umbiegen, dass in ein Skalar geschrieben wird anstatt in eine Datei?

    merci
    Sven

  2. Hallo,

    print "Content-Type: text/html\n\nDoes STDOUT work correctly?";

    Ich nehme also an, dass STDOUT eigentlich korrekt funktioniert.

    Hmm, musst Du nicht, wenn Du das Bild über den Browser (also mittels CGI) anzeigen willst, IMMER einen Content-Header davor schreiben?

    Dein Browser muss doch irgendwie wissen, was das für Daten sind, die da ankommen.
    Könnte mir vorstellen, dass fastCGI, wenn die Header fehlen, automatisch auf STDERR umbiegt, aber nur so ne Idee.

    Viele Grüße,

    Jörg