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スクリプトを実行しようとすると、ブラウザにプレーンテキストとして出力されるだけです。まったく実行されません。誰か助けてください。
_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
_
Mod_pythonとmod_wsgiはどちらも、それぞれのハンドラーを操作するために特別なコードを必要とします。単純なpythonスクリプトを実行することが目標である場合は、cgiを使用します。Redhatでは、デフォルトの場所は/var/www/cgi-bin/
であり、Apacheのパス/cgi-bin/
にすでにマップされています。 。