« 仕様書は Excel か Word か他の何かか | メイン | amazon のベストセラーランキング JSON を作る »

python で cgi

mash up award や google ガジェットコンテストなんかの準備のため、ちょっとした cgi を書くことに。

これまでは Perl で書いていたんですが(といっても、Webサービスに接続した結果をそのまま出力するだけの proxy 君的な cgi だけでしたが)、ちょっと Python で書いてみようかと思い立ちました。

ローカルでスクリプトを作成し、ローカルPCのapache 上で動作させるとうまく動きました。

お、やった、簡単簡単なんて浮かれて、サーバへアップロードしたら動作しないんですね。

なんでだろ、と思って調べてみたら、私 mod_python で動くスクリプトを作ってました。あー恥ずかしい。

ローカルPC 上のapache では Trac が動作しているので、それ用に apache + mod_python の環境を作っていたのでした。

僕の借りているサーバは python は cgi モードでしか動作しないってことをすっかり忘れていましたよ。

ってことで、やりなおし。

cgi を配置するディレクトリに、以下のような記述を書いた .htaccess を作成。

AddHandler cgi-script .py

でもって、スクリプトの頭にpython へのコマンドパスを書いて、権限を755 にして、これでOKと思って実行したところ、またしてもエラー。

今度は改行コードが問題でした。

\r\n じゃだめで、\n になっている必要があったんですね。

これを修正して再度アップで、なんとか動作しました。

いやはや、基本が分かってないと色々苦労することが多いですね。