2

同じマシンに 2 つの django プロジェクトがあります。基本的に、標準の django/apache/mod_python 構成を使用してセットアップされます。

<Location "/mysite">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings
    PythonOption django.root /mysite
    PythonDebug On
    PythonPath "['/path/to/project/parent'] + sys.path"
</Location>

ここで、mysite は 2 つのプロジェクトで異なります (Location ディレクティブ、DJANGO_SETTINGS_MODULE、および django.root 内)。PythonPath も異なります。

2 つの Location ディレクティブのうち 1 つだけが配置されている場合、どちらのサイトでも問題なく動作します。どちらの構成も単独で機能します。

両方の Location ディレクティブ (個別の URL パスを参照する) がある場合、1 つのサイトにしかアクセスできません。「/portal」と「/apitest」のロケーション ディレクティブがあり、http://mydomain.com/apitest にアクセスすると常に「/portal」からコードが提供されます。

複数の Location ディレクティブを含めるだけで、同じホストから 2 つの django サイトを提供することは可能ですか、それとも VirtualHosts を使用する必要がありますか?

ありがとう、デビッド

4

1 に答える 1

2

PythonInterpreterドキュメントは、おそらくLocation ブロックごとに異なる値を設定する必要があることを示唆しているようです。それで問題は解決しますか?

同じ VirtualHost (または同じサーバー名を共有する異なる VirtualHost ブロック) 内に 2 つの Django インストールを配置する必要がある場合は、mod_python のキャッシュが混乱しないように特別な予防措置を講じる必要があります。ディレクティブを使用しPythonInterpreterて、異なる<Location>ディレクティブに個別のインタープリターを提供します。

<VirtualHost *>
    ServerName www.example.com
    # ...
    <Location "/something">
        SetEnv DJANGO_SETTINGS_MODULE mysite.settings
        PythonInterpreter mysite
    </Location>

    <Location "/otherthing">
        SetEnv DJANGO_SETTINGS_MODULE mysite.other_settings
        PythonInterpreter othersite
    </Location>
</VirtualHost>

http://docs.djangoproject.com/en/dev/howto/deployment/modpython/#multiple-django-installations-on-the-same-apacheBlockquoteBlockquoteディレクティブ

于 2010-10-04T22:59:31.300 に答える