• 締切済み

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

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です。 だれか分かる方。教えていただけないでしょうか?? よろしくお願いします。

みんなの回答

  • seastar3
  • ベストアンサー率69% (99/142)
回答No.2

基本的にhttpサービスが作動していないのではないでしょうか。 MacOSのファイアーウォールか、ApacheなどのWebサーバの設定を確かめて、 index.htmlの表示から再確認したらどうでしょうか。

  • seastar3
  • ベストアンサー率69% (99/142)
回答No.1

まず、ヘッダ情報の出力の末尾は改行が2回必要です。したがって、 print "Content-type: text/html\n"  は、 print "Content-type: text/html\n\n" が正しいのです。 また、エラーメッセージに出ているtest3.py は正常に動作したのでしょうか? 1本でも動作したことがあるとしたら、フォルダのパーミッションや :8000 のポート指定の間違いはないということです。 逆にまだ動いたことがないとしたら、フォルダのパーミッションや ポート指定の変更などの対応が考えられます。ポート指定は、無指定か、:80 :8080 などが候補でしょう。 また、当然、CGIHTTPServer.py のパーミッションもpythonフォルダのパーミッションも確認した方がよいでしょう。

tkmoog
質問者

お礼

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

関連するQ&A