14

Python を使い始めようとしていますが、(Ampps を使用して) localhost 用にサーバーを正しくセットアップできません。Python は IDLE とコマンド ラインで正常に動作していますが、ブラウザでファイルを開くと、コードが表示されて実行されません。

このhttp://www.imladris.com/Scripts/PythonForWindows.htmlチュートリアルに従って CGI をセットアップしましたが、うまくいきません。

これが私の "hello world" プログラムのコードです。

#!/usr/bin/env python
# -*#!/usr/bin/python

print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2>'
print '</body>'
print '</html>'

助言がありますか?

4

2 に答える 2

6

Webサーバーは、Pythonコードを実行可能ファイルではなく静的ファイルとして扱っています。ここでの目標は、Apacheにpythonを実行させ、stdoutをユーザーのブラウザーに送り返すことです。

私はAmppsに精通していませんが、このセットアップを取得するための基本的なApacheフローは次のようなものです。

  1. httpd.confのOptions行を編集して、ExecCGIを含めます
  2. 次の行を追加して、Pythonファイルをcgiハンドラーとしてhttpd.confに登録します。
    AddHandler .py
  3. Apacheを再起動します
  4. シバン行(一番上の#!/ usr / bin / env pythonビット)が実際にpython実行可能ファイルへのパスを指していることを確認してください。 C:に存在するpython2.6の場合、これは次のようになります。
    #!\Python26\python
  5. スクリプトを移植可能にする必要がある場合は、shebang行を変更する代わりに、その行ScriptInterpreterSource registryをhttpd.confに追加し、WindowsがデフォルトでPython.exeを使用して*.pyファイルを開くようにします。これは、スクリプトをダブルクリックすることでテストできます。実行されない場合は、右クリックし、[プログラムから開く]、[その他]の順に選択して、python.exeを参照します。[このタイプのファイルを開くには、常にこのプログラムを使用する]チェックボックスをオンにしてください。これに関するMicrosoftナレッジベースの記事がここにあります。

最後に、mod_wsgiまたはFastCGIは、Apacheにpythonを実行させるための推奨される方法であり、トラフィックの少ないサイト(1日あたり数万のリクエスト)を優先します。また、web.py(非常に軽量)やdjango(より重いですが、ユーザー入力を収集したりデータベースとやり取りしたりする場合は時間を大幅に節約できます)などのWebフレームワークを調べることをお勧めします。

于 2012-04-12T13:13:39.370 に答える