RSS

Django + modwsgi

DjangoをApacheのmodwsgiで動かす。

必要なパッケージ

  • libapache2-mod-wsgi

/home/takaki/devel/django_app で開発しているとする。

apacheの設定ファイルのように記述。/etc/apache2/site-availableなどを利用する。

Alias /media/ "/usr/share/python-support/python-django/django/contrib/admin/media/"
<Directory "/usr/share/python-support/python-django/django/contrib/admin/media">

Order allow,deny
Options Indexes
Allow from all
IndexOptions FancyIndexing
</Directory>

WSGIScriptAlias / "/home/takaki/devel/django_app/apache/django_app.wsgi"

<Directory "/home/takaki/devel/django_app/apache/django_app.wsgi">
Allow from all
</Directory>

/home/takaki/devel/django_app/apache/django_app.wsgiを以下のように書く。

import os, sys

#Calculate the path based on the location of the WSGI script.
apache_configuration= os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)

os.environ['DJANGO_SETTINGS_MODULE'] = 'django_app.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

これだけで動く。意外と簡単だった。develとproductionで分けたいとかは参考文献を見て下さい。