プロが教える店舗&オフィスのセキュリティ対策術

Pythonを用いてCGIを作る勉強をしています。

さて、CGIHTTPServerでCGIのテストをしようとしたところ、ぜんぜん動いてくれません。ちゃんとファイルのパーミッションも755にしました。

自分の力だけではどうにもならなかったため、ここで質問させてもらいます。
どうしたらよいのでしょうか。

僕がつくったPythonのソース test.pyは

#! /usr/bin python

print "Content-type: text/html\n"
print "<html><body>Hello!</body></html>"

です。

本来ならブラウザで「http://127.0.0.1:8000/cgi-bin/test.py
とすれば動いてくれるはずなのに以下のようなエラーメッセージが出ます。

localhost - - [19/May/2010 23:46:43] "GET /cgi-bin/test3.py HTTP/1.1" 200 -
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/CGIHTTPServer.py", line 255, in run_cgi
OSError: [Errno 13] Permission denied
localhost - - [19/May/2010 23:46:43] CGI script exit status 0x7f00


PCの環境はMacOSX10.6です。

だれか分かる方。教えていただけないでしょうか??

よろしくお願いします。

A 回答 (2件)

基本的にhttpサービスが作動していないのではないでしょうか。


MacOSのファイアーウォールか、ApacheなどのWebサーバの設定を確かめて、
index.htmlの表示から再確認したらどうでしょうか。
    • good
    • 0

まず、ヘッダ情報の出力の末尾は改行が2回必要です。

したがって、
print "Content-type: text/html\n"  は、
print "Content-type: text/html\n\n" が正しいのです。

また、エラーメッセージに出ているtest3.py は正常に動作したのでしょうか?
1本でも動作したことがあるとしたら、フォルダのパーミッションや :8000 のポート指定の間違いはないということです。
逆にまだ動いたことがないとしたら、フォルダのパーミッションや ポート指定の変更などの対応が考えられます。ポート指定は、無指定か、:80 :8080 などが候補でしょう。
また、当然、CGIHTTPServer.py のパーミッションもpythonフォルダのパーミッションも確認した方がよいでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

じつはどのファイルも正常に動作してないです。
指摘していただいたことはすべてやってみたんですが、Firefoxで開こうとすると、cgiが実行されずにファイルのダウンロードが開いてしまいます。
Safariでも同じでした。どうすればいいのでしょうか。。。

お礼日時:2010/05/22 01:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!