基本的にはこちらとこちらのページを見ながら virtual-python を入れて ez_setup を入れてと進み、Django と pysqlite をインストール。デバッグ情報出すために .htaccess に
AddHandler cgi-script-debug .cgidと cgid を追加。
AddHandler cgi-script .cgi
2010-03-02 追加:xrea では上の2行は特に必要ない模様。CORE SERVER では未確認。
あれこれやって簡単な Django アプリケーションが何とかそれっぽい HTML を吐くようになったのだが
Script Errorがでてどうしても先に進めない。
The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with .cgidextension, or add a AddHandler cgi-script-debug .cgiline to your .htaccess file.
xrea のサポートにログを送ったが、
大変申し訳ございませんが、弊社ではユーザー様ご利用スクリプトの動作保証は行っておりません。とにべも無い。ま、安いからねぇ、当然といえば当然。
そのため、上手く動作しない、あるいは、動作していたものが動作しなくなったという場合であっても、サポートすることができません。(以下略)
google で色々検索して調べると、皆さん苦労しているようだが、どうもピンとくるページが見つからない。個別の状況に対する解はそれなりにあるのだが、このエラーがなぜ出てくるのかがわからない。
単にテキストだけとか、単純な HTML を吐く cgi を実行させてもこのエラーが出る。nph CGI を使ってエラーチェックをスルーしてもブラウザがうまく表示できない。もうナニがナンだか。
仕方なくエラーメッセージを読み直す(^^;。
The script did not produce proper HTTP headers.え、HTML ヘッダじゃなくて HTTP ヘッダがおかしい? HTTP ヘッダーってなに?ログをよく見てみると、
argv[0] = ’cgiwrapd’一行目になんだか変なのが入っている。
Executing ’/virtual/xxxx/public_html/django.cgi’
Output of script follows:
=====================================================
run linux server parametera
Status: 200 OK
Vary: Cookie
Content-Type: text/html; charset=utf-8
<;DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">;
調べてみると、確かに最初の一行目は HTTP header として成立していない。どうやら Django の吐いたメッセージが html に紛れ込んだっぽい。
それではと、django.cgi のコードから Django 本体のコードを追うと、ミドルウェアを読み込んだときのメッセージのようだ。Django のコードを手直ししようとしたが、メッセージを吐く部分が見つからず、結局 django.cgi に手をいれ、ダミーの http header にしてしまった (^^;
django.cgi の変更部分
sys.stdout.write('X-DUMMY: ') # この行を追加cgi の出力は、
result = application(environ, start_response)
try:
argv[0] = 'cgiwrapd'これで Script error は出なくなった。
Executing '/virtual/officer/public_html/django.cgid'
Output of script follows:
=====================================================
X-DUMMY: run linux server parametera
Status: 404 NOT FOUND
Content-Type: text/html
Script error を超えるだけで二日かかってしまった。サーバーの無料お試し期限は 1/15 までなんだが、それまでに本番のアプリケーションを fastcgi で動かせるのか?
0 件のコメント:
コメントを投稿