mod_wsgiでDjango

Pylons を動かしたくて入れてみた mod_wsgi だったのに、 Django ばっかり触ってたらいつの間にか疎遠になっちゃってた。

が、ちょうど簡単なTODOリストを Django で作る事になったので、良い機会なのでコレを mod_wsgi で動かしてみる事に。

mod_wsgi からキックするスクリプトは IntegrationWithDjango を参考にして(ってかコピペして)必要に応じて書き換えるだけ。ファイル名はなんでも良いみたいなので、 dispatch.wsgi とかにして、 django-admin.py したディレクトリの中に apache なディレクトリを作ってそこに置いてみた。一応自分用にメモしとく。

import os
import sys

# プロジェクトディレクトリの1個上にした。
sys.path.append('/path/to/before/projects')

# settings.pyを指定。
os.environ['DJANGO_SETTINGS_MODULE'] = 'projects.settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()

httpd.conf もほとんど書いてあるものをコピペ。今回は VirtualHost を切って設定してみた。とりあえずこんな感じ。

<VirtualHost *:80>

    ServerName      example.com
    DocumentRoot    /path/to/projects/apache

    Alias /media /path/to/projects/media
    Alias /admin_media /path/to/django/contrib/admin/media
    WSGIScriptAlias / /path/to/projects/apache/dispatch.wsgi

    <Directory "/path/to/projects/media">
        AllowOverride None
        Allow from all
    </Directory>

    <Directory "/path/to/django/contrib/admin/media">
        AllowOverride None
        Allow from all
    </Directory>

    <Directory "/path/to/projects/apache">
        AllowOverride None
        Allow from all
    </Directory>

</VirtualHost>

ココでとりあえずブラウザから確認してみる。

が、見事にエラー画面。指定されたテンプレートファイルが見つからないとの事。

そういえば、 settings.pyTEMPLATE_DIRS とか MEDIA_ROOT とか、全部osから抜き取ってた。(これじゃダメ?)ので、とりあえずコレを修正してみる。

# ココを変更。
#BASE_PATH = os.getcwd()
BASE_PATH = '/path/to/projects'

MEDIA_ROOT = os.path.join(BASE_PATH, 'media')

TEMPLATE_DIRS = (
    os.path.join(BASE_PATH, 'templates'),
)

もう1度 apache をリスタートしてブラウザから確認。うむ、今回は動いた!素敵♪

コレと同じ事を、初めて mod_pythonDjango 動かした時にもやってハマった記憶がある。やっぱり apache 経由だと os.getcwd は取れないのかね?取れないか。

まだ全然開発段階なんだろうけど、 mod_wsgi には結構期待してたりする。って、言ってる矢先にちょっとした問題っぽいものを発見。 Yのほぼコード置き場 さんの コチラのエントリー

コレ、うちの環境もあてはまるんですけど。

とりあえず現状では mod_python はオフれないので、 mod_wsgi を一時あきらめる事にする。そのうち mod_wsgi に乗り換える日が来るのかね?

Posted at: 
2007/06/11 02:48:33
0 Comments
0 TrackBacks
Tags: 
Django
mod_wsgi
Python
Trackback: 
http://humming.via-kitchen.com/2007/06/11/django-with-modwsgi/trackback/

TrackBacks

まだ登録されていません。

Comments

まだ登録されていません。

Add Comment

Add Comment