2012-05-01 3 views
21

シェルにpython -m SimpleHTTPServer 8000またはpython -m CGIHTTPServer 8000を実行すると、現在のディレクトリのコンテンツをインターネットにホストしています。`python -m SimpleHTTPServer 8000`または` python -m CGIHTTPServer 8000`でpython cgiスクリプトをホストするには?

私は正しく、私は192.xxx.x.xx:8000/cgi_script.py

#!/usr/bin/env python 
print "Content-Type: text/html" 
print 
print """\ 
<html> 
<body> 
<h2>Hello World!</h2> 
</body> 
</html> 
""" 

を参照。しかし、このスクリプトは文字通り表示されるだけでなく、「Hello Worldのコマンドラインで上記のコマンドを使用して、次のcgi_script.py仕事をしたいと思います! "部。 Btw私はcgi_script.pyとそれをホストしているフォルダのファイルアクセス権を755に変更しました。

+0

MacまたはLinuxでこれを試している人は、ファイルを実行できるアクセス許可を持っていることを確認してください。つまり、 'chmod + x cgi-bin/cgi_script.py' – greggles

答えて

32

python -m CGIHTTPServer 8000をお試しください。

実行可能にするには、スクリプトをcgi-binまたはhtbinディレクトリに移動する必要があります。

+0

これは残念なことに変更されません。 (なぜ私は理解できません)。 – Bentley4

+0

@ Bentley4 - CGIディレクトリに関する最新の回答をご覧ください。 – rodrigo

+0

私はcgi_bin、htbin、そしてcgi-binという名前のディレクトリで試しました。いずれも適切に働かなかった。 – Bentley4

5

私はコメントすることができませんので、私はこれを別の答えとして追加しています。

cgi_directoriesのデフォルト値は['/cgi-bin', '/htbin']です。 More info here

0

私がこの問題に遭遇したとき、python -m CGIHTTPServer 8000コマンドを実行したときのディレクトリによって異なる結果が得られることがわかりました。 cgi-binディレクトリにある間にコマンドを実行しようとすると、ブラウザは生のスクリプトコードを返し続けました。一レベル上でcd'edしてpython -m CGIHTTPServer 8000コマンドをもう一度実行すると、スクリプトが実行され始めました。

0

@ Bentley4 -ifyouはまだできません。 cgiをインポートしてみてください。

#C:\ Python34 \ python.exe -u 輸入CGI プリント( "コンテンツタイプ:text/htmlの")

HTH

0

のpython3のコマンドラインは単純です

python -http.server --cgi 8000 
+1

とyes:スクリプトは '/ cgi-bin'に存在する必要があります – AchimG

+3

コマンドは 'Unknown option:-p'というエラーで失敗します。これは' http.server'をshortのように指定しているためですオプション。このようには機能しません。代わりに 'python -m http.server -cgi 8000'とする必要があります。 – josch

0

私にとってこの作品、CGI-binにとpython -m CGIHTTPServer 8000コマンドと同じメニューレベルを実行して、CGI-binにfolder.Inブラウザの種類にcgi_script.pyを移動http://localhost:8000/cgi-bin/cgi_script.py

関連する問題