2013-10-03 10 views
7

Pythonモジュールcgitbをブラウザに出力するように見えません。私はシェル環境で問題はありません。私はCentOS 6をPython 2.6で動かしています。私が代わりに印刷された詳細なレポートの内部サーバーエラーが発生しますpython cgitbがブラウザから機能していません

import cgitb; cgitb.enable() 

print "Content-type: text/html" 
print 

print 1/0 

:ここ

は、私が使用していますたとえば、単純なコードです。私はさまざまな種類のエラー、さまざまなブラウザなどを試しました。

私はエラーがないのにもちろんpythonはうまく動作します。それはシェルの細かい点でエラーを出力します。 cgitbのポイントは、ほとんどのエラー例外に対して、ブラウザに「内部サーバーエラー」を返す代わりにエラーを出力することです。基本的に私はちょうどcgitbをブラウザ環境で動かそうとしています。

何か提案がありますか?

答えて

-1

私はちょうどdocsを引用します:

スクリプトが読めると「他者」によって実行可能であることを確認してください。 Unixファイルモードは、0755 8進数(chmod 0755 filenameを使用)にする必要があります。

は、スクリプトの最初の行が#!は、例えば、Pythonインタプリタのパス名に続いて1列で始まる含まれていることを確認してください:

#!/usr/local/bin/python

+0

OPはエラーなしで、スクリプトはうまく動作すると言いました。 CGIの実行には問題ありません。私が間違っている場合に備えてあなたの答えにコメントしてください。私もこの実行を取得する必要があり、cgitbは私の問題を捕まえて行動するようです。 – Chris

+0

私はあなたに同意しないでください。シェルでは、ファイル名の前に 'python'を渡してファイルを実行することができます。 CGIでは、CGIエンジンが実行方法を知らないため、ファイル自体が実行可能であることを確認する必要があります。あなたはファイルの先頭にシバン値を入れなければなりません。 – baldr

+0

合意。しかし、私は答えが私にこれが問題のための正確で唯一の解決策であると思うようになります。特に "ちょうど"。 「CGIの基礎があることを確認してください」と言わなければならないと思います。 OPのシナリオでは、実際に*この問題に対する*異なる解決策があると私は思っています。 – Chris

0

さて、私は私の問題を修正しまったとOPは私にそれをもたらした:tho cgitbはデフォルトでHTMLを出力し、ヘッダーを出力しない!そして、Apacheはそれを好きではないとのようにあなたにいくつかの愚かなエラーを与える可能性があります

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

それはそれは、すでにいくつかのHTMLに遭遇したとき、Apacheはまだヘッダをその方法を働いていたことを、示しています。 OPがエラーを引き起こす前に印刷するものを見てください。それはヘッダーであり、それが必要です。空行を含む。

関連する問題