Pythonを使い始めようとしていますが、ローカルホスト用にサーバーを正しくセットアップできません(Amppsを使用)。Pythonは正常に実行されていますIDLEとコマンドラインですが、ブラウザでファイルを開くと、コードが表示されて実行されません。
私はこれに従いました http://www.imladris.com/Scripts/PythonForWindows.html cgiをセットアップするためのチュートリアルですが、機能していません。
これが私の「helloworld」プログラムのコードです。
#!/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>'
助言がありますか?
Webサーバーは、pythonコードを実行可能ファイルではなく静的ファイルとして扱っています。ここでの目標は、Apacheにpythonを実行させ、stdoutをユーザーのブラウザーに送り返すことです。
私はAmppsに精通していませんが、このセットアップを取得するための基本的なApacheフローは次のようなものです。
AddHandler .py
#!\Python26\python
ScriptInterpreterSource registry
をhttpd.confに追加し、WindowsがデフォルトでPython.exeで* .pyファイルを開くようにします。これは、スクリプトをダブルクリックすることでテストできます。実行されない場合は、右クリックして[開く]、[その他]の順に選択し、python.exeを参照します。 [常にこのプログラムを使用してこのタイプのファイルを開く]チェックボックスをオンにしてください。これに関するマイクロソフトサポート技術情報の記事があります ここ 。最後に、mod_wsgiまたはFastCGIは、Apacheにpythonを実行させるための推奨される方法であり、トラフィックの少ないサイト(1日あたり数万のリクエスト)を優先します。また、web.py(非常に軽量)やDjango(より重いですが、ユーザー入力を収集したりデータベースとやり取りしたりする場合は時間を大幅に節約できます)などのWebフレームワークを調べることをお勧めします。
与えられたソリューションは、Raspberry Pi 3 B +で機能しました。
1)編集してみてください:Sudo nano /etc/Apache2/sites-enabled/000-default.conf
2)このファイル内に以下のコードを追加します。
<Directory /var/www/html>
Options +ExecCGI
AddHandler cgi-script .py
# DirectoryIndex index.py
</Directory>
3)Apache2を再起動します:SudoサービスApache2を再起動します
4)コードに上記の数行を追加するだけです。
#!/usr/bin/env python3
import cgitb
cgitb.enable()
print("Content-Type:text/html;charset=utf-8")
print()
print("Hello world")
5)コードは機能するはずです;)