mod_python の設定に関する Google で検索されたいくつかのチュートリアルに従おうとしましたが、毎回失敗しました。ステップバイステップのしっかりしたハウツーはありますか?
私の開発ボックスは OS X、本番 - Centos です。
Apache で Python を実行するには、主に 2 つの方法があります。最も単純な方法は、CGI を使用して通常の Python スクリプトを作成することであり、2 つ目は Django や Pylons などの Web フレームワークを使用することです。
CGI の使用は簡単です。Apache 設定ファイルに cgi-bin が設定されていることを確認してください。そうでない場合は、ドキュメントに従ってください ( http://httpd.apache.org/docs/2.0/howto/cgi.html )。その時点で、Python スクリプトを cgi-bin ディレクトリに配置するだけで、標準出力が HTTP 応答になります。詳細については、Python のドキュメント ( https://docs.python.org/library/cgi.html ) を参照してください。
Web フレームワークを使用する場合は、mod_python または FastCGI をセットアップする必要があります。これらの手順は、使用するフレームワークによって異なります。Django は mod_python と Django を Apache でセットアップする方法について明確な指示を提供します ( http://www.djangoproject.com/documentation/modpython/ )
はい、mod_pythonの設定はかなり混乱しています。これが私がそれをした方法です。
httpd.confの場合:
LoadModule python_module modules/mod_python.so
<Directory "/serverbase/htdocs/myapp">
AddHandler mod_python .py
PythonHandler myapp
PythonDebug On
およびアプリケーションディレクトリ内:
$ /serverbase/htdocs/myapp$ ls -l
total 16
-r-xr-xr-x 1 root sys 6484 May 21 15:54 myapp.py
mod_pythonで実行するPythonプログラムごとに構成を繰り返します。
UNIXまたはWindowsでPythonを実行していますか?
mod_pythonとFastCGIの代わりにmod_wsgiがあります。modwsgiで詳細を確認できます
私はこれを問題なくSolarisにビルドしてインストールしました。以前にmod_pythonを試しましたが、ビルドの一部として共有ライブラリで問題が発生しました。利用可能な優れたインストールドキュメントがあります。
私にとっての問題は、Apache の設定ではなく、mod_apache が実際に .py ファイルをどのように使用するかを理解することでした。if __name__=='__main__'
モジュール レベルのステートメント (セクション内のステートメントを含む) は実行されません。コマンドラインでスクリプトを実行することによる stdout がサーバーが出力するものであると想定しましたが、それは機能しません。
代わりに、 というモジュール レベルの関数index()
を作成し、ページの HTML を文字列として返すようにしました。otherFunction()
URI 内のさらなるセグメントとしてアクセスできる他のモジュール レベル関数 (例: ) を持つことも可能です(例:testScript/otherFunction
ファイルtestScript.py
)。
明らかに、これは私の元の stdout の概念よりも理にかなっています。巨大なマークアップ言語ではなく、スクリプト言語として実際に Python を使用するための優れた機能。