2013-10-03 18 views
7

Nie mogę uzyskać modułu pythonowego cgitb, aby wyprowadzić ślad stosu w przeglądarce. Nie mam żadnych problemów w środowisku powłoki. Używam Centos 6 z pythonem 2.6.python cgitb nie działa przez przeglądarkę

Oto przykład prosty kod, który używam:

import cgitb; cgitb.enable() 

print "Content-type: text/html" 
print 

print 1/0 

pojawia się błąd wewnętrzny serwer zamiast wydrukowany szczegółowy raport. Próbowałem różnych typów błędów, różnych przeglądarek itp.

Kiedy nie mam błędu, oczywiście python działa dobrze. Wydrukuje błąd w drobnej powłoce. Punkt cgitb polega na wydrukowaniu błędu zamiast zwrócenia "Wewnętrznego błędu serwera" w przeglądarce dla większości wyjątków błędów. Zasadniczo próbuję uzyskać cgitb do pracy w środowisku przeglądarki.

Wszelkie sugestie?

Odpowiedz

-1

będę po prostu przytoczyć docs:

Upewnij się, że skrypt jest czytelny i wykonywalne przez „innych”; tryb plików Unix powinien być 0755 ósemkowy (użyj chmod 0755 filename).

Upewnij się, że pierwsza linia skryptu zawiera #! rozpoczynając w kolumnie 1, a następnie przez ścieżki interpretera Pythona, na przykład:

#!/usr/local/bin/python

+0

OP powiedział, że bez błędu skrypt działa poprawnie. więc z pewnością nie jest to problem z wykonywaniem CGI. Proszę, skomentuj swoją odpowiedź na wypadek, gdy źle to zrobię, ponieważ ja też muszę to uruchomić, a cgitb po prostu łapie i działa na mój problem. – Chris

+0

Nie zgadzam się z tobą. W powłoce możesz uruchomić plik, przekazując 'python' przed nazwą pliku. W CGI musisz upewnić się, że sam plik jest wykonywalny, ponieważ silnik CGI może nie wiedzieć, jak go uruchomić. Musisz umieścić wartość Shebang na początku pliku. – baldr

+0

Uzgodnione. Jednak uważam, że odpowiedź sprawia, że ​​myślę, że jest to poprawne i jedyne rozwiązanie problemu. Zwłaszcza "po prostu". Myślę, że powinno to brzmieć "Upewnij się, że masz podstawową wiedzę o CGI". Zdaję sobie sprawę, że zakładam, że faktycznie * istnieją * różne rozwiązania tego problemu w scenariuszu PO. – Chris

0

Ok, mam mój problem stałe i OP przywiodł mnie do tego: nawet tho cgitb wyświetli HTML domyślnie, nie wyświetli nagłówka! I Apache nie lubi i że może dać Ci trochę głupi błąd jak:

<...blablabla>: Response header name '<!--' contains invalid characters, aborting request

To oznacza, że ​​Apache nadal pracuje jego droga przez nagłówkach kiedy już napotkał niektóre HTML. Sprawdź, co OP drukuje przed wywołaniem błędu. To jest nagłówek i potrzebujesz tego. W tym pusta linia.

Powiązane problemy