web-dev-qa-db-ja.com

python cpythonスクリプトを `python -m SimpleHTTPServer 8000`または` python -m CGIHTTPServer 8000`でホストするには?

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

192.xxx.x.xx:8000/cgi_script.pyを参照するときに、コマンドラインで上記のコマンドを使用して、次の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とそれをホストしているフォルダーのファイル権限を755に変更しました。

23
Bentley4

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

実行可能にするには、スクリプトをcgi-binまたはhtbinディレクトリに移動する必要があることに注意してください。

34
rodrigo

SOはコメントを許可していないので、これをロドリゴのコメントに加えて、別の回答として追加します。

別のパラメータcgi_directoriesを使用できます。デフォルトは['/cgi-bin', '/htbin']です。詳細 ここ

6
spawnedc

Python3では、コマンドラインは単純です

python3 -m http.server --cgi 8000
1
AchimG

この仕事は私にとって、python -m CGIHTTPServer 8000 cgi-binと同じメニューレベルをコマンドし、cgi_script.pyをcgi-binフォルダーに移動します。ブラウザーで次のように入力します http:// localhost:8000/cgi-bin/cgi_script.py

0
Brian

@ Bentley4-それでも実行できない場合は、CGIをインポートしてみてください。

#!C:\ Python34\python.exe -インポートcgi印刷( "Content-type:text/html")

HTH

0
sabiyur

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

0
Marquis Blount