0

以下の単純な python スクリプト、hellocgi.py があります。

import sys
sys.stdout.write("Content-type: text/html \r\n\r\n")
sys.stdout.write("<!doctype html><html><head><title>Hello CGI</title></head>")
sys.stdout.write("<body><Hello CGI</h2></body></html>")

ファイルはディレクトリに配置されます

/Users/MyName/cgi-bin

次に、権限を変更します

chmod +x hellocgi.py

そして走る

python -m CGIHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

でブラウザーを開くと、次のhttp://localhost:8000/cgi-bin/hellocgi.py,ようになります。

Error response
Error code 404.
Message: No such CGI script ('/cgi-bin/hellocgi.py').
Error code explanation: 404 = Nothing matches the given URI.

誰が何が起こっているのか教えてもらえますか? /Library/WebServer/CGI-Executables でスクリプトのペースを調整しようとしましたが、うまくいきません。

ありがとう

4

2 に答える 2

0

あなたがリストしたエラーを無効な (存在しない) パスで再現したので、使用しているディレクトリと、ファイル名と URL のスペルを再確認することをお勧めします。

ドキュメント [1] によると、「このクラスは、現在のディレクトリ以下からファイルまたは CGI スクリプトの出力を提供するために使用されます」CGIHTTPServer は、それが実行されているディレクトリをルートとするディレクトリ ツリーで動作します。したがって、いくつかのディレクトリを選択し ($HOME は機能します。テストを行うだけの場合は /tmp/www/ と同様)、提供するファイルをセットアップし、そのディレクトリからサーバーを起動する必要があります。

[1] http://docs.python.org/2/library/cgihttpserver.html

于 2013-09-15T23:34:42.010 に答える
0

スクリプトには、実行権限ではなく、読み取り権限が必要です。Python インタープリターが実行され、スクリプトがファイル システムから読み込まれます。

于 2013-09-15T00:35:43.637 に答える