0

本番用と開発用に 2 つの異なる設定ファイルを使用しようとしています。

DJANGO_SETTINGS_MODULE='mysite.settings_production' を設定しまし
た サーバーを実行しているときに完全に機能しますrunserver

ただし、Apacheで実行すると、Apacheは設定を使用していないようで、~/.bash_profile代わりos.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")にwsgi.pyファイルで使用します

おそらく、Apacheが私のものではなく別のユーザーで実行されているためだと思います..わかりました..私のec2 ubuntuでwww-dataとして実行されているようです。

/home/www-data/.bash_profile を作成し、env 変数を設定する必要がありますか?

別の設定ファイルを使用するのはとても面倒なようです。
これを行う明らかに簡単な方法はありますか?(wsgi.py ファイルはソース管理されているため、変更したくありません)

4

2 に答える 2

0

まあ、それは本当に間違った方法です。環境ごとに個別の設定を行う一般的な方法は、環境に依存するものを local_settings.py (または任意の名前) に保存し、settings.py からインポートすることです。

from local_settings.py import *

コミットごとに上書きするため、local_settings.py をプロジェクト リポジトリの下に置かないでください。ローカル設定のサンプルを保持したい場合は、別のファイルに入れます。例: local_settings.py.example

ローカル設定は、settings.py の先頭 (つまり、settings.py の設定がローカル設定を上書きします) または最後にインポートできます。また、両方の場合に 2 つのローカル設定ファイルを使用することもできます。

于 2013-01-25T12:35:32.140 に答える
0

これを行うには、bash_profile を使用するのは完全に間違った方法です。

正しい方法は、wsgi.py ファイルを使用することです。ただし、これを行いたくないので (バージョン管理されていることが何と関係があるのか​​ わかりませんが)、SetEnv を使用して Apache 構成で環境変数を直接設定できます。

SetEnv DJANGO_SETTINGS_MODULE mysite.settings
于 2013-01-21T11:25:57.363 に答える