27 Oktober

Hilfe beim CGI-Skript debuggen

Wenn man selber schon CGI-Skripte geschrieben hat, dann weiß man, wie schwierig es sein kann, den Fehler zu finden, wenn das Skript nicht so funktioniert, wie es soll.
Das Problem dabei ist, dass man die Ausgabe- bzw. Fehlermeldungen eines CGI-Skripts beim Zugriff nicht zu sehen bekommt.
Es wird einem nur die Fehlermeldung des Apachen präsentiert, häufig ein nichtsagender Error 500.
Hier kann uns das Apache-Modul mod_cgi weiterhelfen.
Mit der Direktive ScriptLog kann man die Ausgabe von CGI-Skripten protokollieren, die nicht korrekt ausgeführt werden.
Dabei werden immer die folgenden Zeilen im Logfile ausgegeben:

%% [time] request-line
%% HTTP-status CGI-script-filename

Je nach Art des Fehlers sind im Logfile noch folgende Einträge zu finden:

%request
All HTTP request headers received
POST or PUT entity (if any)
%response
All headers output by the CGI script
%stdout
CGI standard output
%stderr
CGI standard error

oder:

%%error
error-message

Passend zur ScriptLog Direktive existieren noch ScriptLogBuffer und ScriptLogLength.
Mit diesen beiden Direktiven lässt sich Größe des Logfiles begrenzen, da bei CGI-Skripten oft große Datenmengen anfallen können, besonders wenn die HTTP-Methoden PUT oder POST benutzt werden.

Beispiel:
ScriptLog logs/cgilog
ScriptLogLength 2097152
ScriptLogBuffer 2048

ScriptLogLength 2097152 - begrenzt das Logfile auf 2MB Größe
ScriptLogBuffer 2048 - nur die ersten 2048 Byte der Anfrage werden in das Logfile aufgenommen

tags: ,

11:08:00 27.10.2004 Holger Struck - Kategorie: Tipps/Tricks

TrackBack

Trackback
There are currently no trackbacks for this item.
Use this TrackBack url to ping this item (right-click, copy link target). If your blog does not support Trackbacks you can manually add your trackback by using this form.

Kommentare

Noch keine Kommentare

Kommentar schreiben

:

:
:




Kommentar wird nach Überprüfung freigeschaltet