web-dev-qa-db-ja.com

RHEL6でMOD_WSGIまたはMOD_PYTHONを使用してApacheにpythonスクリプトを実行させる方法は?

Apacheにpythonスクリプトを実行させようとしています。MOD_WSGI、Apache、PythonがRHEL6にインストールされています。httpd.confファイルを編集して、これらの行。

<Directory /var/www/>
  Options Indexes FollowSymLinks MultiViews ExecCGI

  AddHandler cgi-script .cgi
  AddHandler wsgi-script .wsgi

  AllowOverride None
  Order allow,deny
  allow from all
</Directory>

Apacheサーバーも再起動しました。しかし、pythonスクリプトを実行しようとすると、ブラウザにプレーンテキストとして出力されるだけです。まったく実行されません。誰か助けてください。

3
HOT

_Apache2ctl -t -D DUMP_MODULES_または_apachectl -t -D DUMP_MODULES_を発行して、モジュールが正しくロードされたかどうかを確認します。そうでない場合は、_httpd.conf_またはインクルードされたファイルを編集して、以下を含めます(必要に応じて、libを_lib64_に置き換えます)。

_LoadModule wsgi_module /usr/lib/httpd/modules/mod_wsgi.so_

WSGIでpythonスクリプトを実行できないことに注意してください-私が正しく覚えていれば、WSGIハンドラーとのインターフェイスをサポートする必要があります。任意のpythonスクリプトおそらく、古いCGIを使用する必要があります。これは、低速ですが(自分よりもユーザーが多い場合は、本番環境では使用しないでください)、簡単です。スクリプトが_cgi-bin_にあり、右Shebang上部では、すでにほとんど機能しているはずです。

Mod_pythonを使用してApacheに通常のpythonスクリプトを実行させる場合は、最初にモジュールをロードしていることを確認してください。

_  LoadModule python_module modules/mod_python.so
_

次に、これを構成に追加します。たとえば、Directoryブロック内で、最初に他の変更を削除します。

_  AddHandler mod_python .py
  PythonHandler mod_python.publisher
_
4
Eduardo Ivanec

Mod_pythonとmod_wsgiはどちらも、それぞれのハンドラーを操作するために特別なコードを必要とします。単純なpythonスクリプトを実行することが目標である場合は、cgiを使用します。Redhatでは、デフォルトの場所は/var/www/cgi-bin/であり、Apacheのパス/cgi-bin/にすでにマップされています。 。

0
JimB