2008-08-07 3 views

答えて

12

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はApacheでmod_pythonとDjangoを設定する方法を明確に説明しています(http://www.djangoproject.com/documentation/modpython/

+2

mod_pythonに関する情報はDjangoプロジェクトサイトから削除されました。代わりにmod_wsgiを代わりに使用することをお勧めします。 - https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi/ –

8

はい、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プログラムの設定を繰り返します。

5

UNIXまたはWindowsでPythonを実行していますか?

mod_pythonとFastCGIの代わりに、mod_wsgiを使用できます。あなたは、私が問題なくSolaris上でこれを構築し、インストールしているmodwsgi

でより見つけることができます。以前はmod_pythonを試していましたが、ビルドの一部として共有ライブラリの問題が発生しました。利用可能なのはgood install docsです。

0

私の問題はApacheでは設定されていませんでしたが、mod_apacheが実際に.pyファイルをどのように使用するかを理解する上で問題でした。モジュールレベルのステートメント(if __name__=='__main__'セクションのステートメントを含む)はではないが実行されました - コマンドラインでスクリプトを実行するstdoutはサーバーが出力するものであると仮定しましたが、それは動作しません。

代わりに、私はindex()と呼ばれるモジュールレベルの関数を書いて、ページのHTML文字列として返しました。これは、他のモジュールレベルの機能を持つことも可能です(例えば、otherFunction())明らかに

(ファイルtestScript.py。のために例えば、testScript/otherFunction)URIにさらにセグメントとしてアクセスすることができ、これは私の元のstdoutの概念より多くの理にかなっています。膨大なマークアップ言語ではなく、実際にPythonをスクリプト言語として使用する優れた機能。

関連する問題