web-dev-qa-db-ja.com

複数のpythonバージョン

Redhat上の同じApacheインスタンスで構成されたいくつかの仮想ホストがあります。

  • Apache-2.2.15
  • デフォルトシステムpython-2.6でコンパイルされたmod_wsgi-3.5

すべての仮想ホスト WSGIScriptAlias 設定は、仮想環境がアクティブ化されているpythonファイルにポイントされます。

activate_this = '/path_to_the_virtualenv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

現在、プロジェクトの1つをpython-2.7にアップグレードし、別のプロジェクトをpython-3.xにアップグレードする予定です。 pythonサンドボックスを分離します。したがって、python側ではすべてが良好です。

質問は次のとおりです:同じApache + mod_wsgiの下で異なるApache仮想ホストに異なるpythonバージョンを使用することは可能ですか?インスタンス?

そうでない場合、続行するにはどのオプションが最適ですか?

関連する WsgiPythonHome 設定がありますが、仮想ホストごとではなく、「サーバー構成」コンテキストでグローバルに定義されます。さらに、mod_wsgiは特定のpython=バージョン用にコンパイルされているため、このケースを処理できるかどうかはわかりません。

3
alecxe

いいえ、それは不可能です。 mod_wsgiバイナリは、1つのPython=バージョンのみに対してコンパイルする必要があり、コンパイル済みのmod_wsgiモジュールのインスタンスを一度に1つだけApacheにロードできます。

独自のポートでリッスンする別のWSGIサーバーにプロキシするようにApacheを設定する必要があります。

Apache/mod_wsgiをそのバックエンドサーバーとしても使用するには、mod_wsgi 4.1.Xを使用して調査する必要があります。見る:

この新しいバージョンのmod_wsgiは、複数のPython=バージョンに対してmod_wsgiをインストールし、提供されたスクリプトを使用してそれぞれに対してApacheインスタンスを実行する方法を提供します。スクリプトは、Apache構成のすべてのセットアップを引き継ぐため、心配する必要はありません。

16