Djangoのプロジェクトをデプロイするとき、私のサーバでのディレクトリ構造は下記のようになっている*1。
+ / + var + www + www.example.com + myproject - settings.py + wsgi - django.wsgi + .python-eggs
Apacheでのmodwsgiの設定は、
WSGIScriptAlias / /var/www/www.example.com/myproject/wsgi/django.wsgi
となっている。
最近、プロジェクトごとにdjango.wsgiを書くのが面倒になってきた。
ドメインが変わったりすることもしばしばあるので、少し汎用化してみた。
import os import sys PROJECT_BASE = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) PROJECT_NAME = os.path.basename(PROJECT_BASE) SITE_BASE = os.path.dirname(PROJECT_BASE) sys.path.append(SITE_BASE) sys.path.append(PROJECT_BASE) os.environ['PYTHON_EGG_CACHE'] = os.path.join(SITE_BASE, '.python-eggs') os.environ['DJANGO_SETTINGS_MODULE'] = PROJECT_NAME + '.settings' from django.core.handlers.wsgi import WSGIHandler application = WSGIHandler()
これを毎回コピーして使うことにする。