Tag/mod_wsgi

mod_wsgiでHTTP_AUTHORIZATIONを受け取る。

Django でDigest認証用のバックエンドを書いていたんだけれども、 Apachemod_wsgi で動かすとなぜか認証を通過出来ない。

で、色々と泥臭いデバッグを繰り返したところ、 そもそも HTTP_AUTHORIZATION ヘッダが渡されていない様子。

request.META.get('HTTP_AUTHORIZATION')  # <-- コレがNoneになる。

ちょこっとググってみる前に、 mod_wsgi のドキュメントを眺めてみると、 ちゃんと Configuration GuidelinesConfiguration Directives に書いてありました。

WSGIPassAuthorization On

これを VertualHost ディレクティブに追加したら、 バッチリ HTTP_AUTHORIZATION を受け取れた! 認証も通りましたですよ!

セキュリティ面から、 WSGIPassAuthorization ディレクティブはデフォルトではOffらしい。 なるほどなるほど。

Posted at: 
2007/12/27 01:43:07
2 Comments
0 TrackBacks
Tags: 
apache
Django
mod_wsgi
Python
Trackback: 
http://humming.via-kitchen.com/2007/12/27/passed-httpauthorization-on-modwsgi/trackback/

mod_wsgi-1.0出てたよ。

mod_wsgi-1.0 がもう5日も前にリリースされてたよ。全然知らなかった。

apache を2.2.6にアップデートするタイミングで mod_wsgi もアップデートしなきゃね。 週末にでも一気にやってしまいそうな勢い。 Senna とか tritonn もそろそろアップデートな感じなので、ワクワクしてしまう。

でも、どう転んでもサイト止めてしまうのがちょっと悲しい。

Posted at: 
2007/09/11 02:29:24
0 Comments
0 TrackBacks
Tags: 
apache
mod_wsgi
Python
Trackback: 
http://humming.via-kitchen.com/2007/09/11/mod_wsgi-1-already-release/trackback/

mod_wsgi-1.0c1がリリース!!

mod_wsgi の1.0が遂に出たよ!まだc1って付いてるけどね。

現状TRUNK rev@308とかで走っているので、1.0がリリースされたら乗せ換えよう。 mod_python よりも設定とか簡単でパフォーマンスも良い気がする(憶測含む)。

かなり待ち遠しい!

Posted at: 
2007/07/28 04:16:31
0 Comments
0 TrackBacks
Tags: 
apache
mod_wsgi
Python
Trackback: 
http://humming.via-kitchen.com/2007/07/28/release-mod-wsgi-10c1/trackback/

興味シンシン

Twisted Mind さんの コチラのエントリー より。

Trac + MySQL + mod_wsgi の環境構築テストをされてるみたいです。

前に Trac 0.10.3で MySQL 使ってオオハマリしただけに、コレはちょっと興味シンシン。上手く行くといいなぁ。ってか、上手く行ってほしい!一度やってみた時にはチケットまわりでSQLエラー吐きまくってチケットが全く使えなかった。

そういえば、まだ先の事だと思って調べてなかったけど、 mod_wsgi で動く TracTracEnvParentDir とかって設定出来るんでしょうか?出来るなら乗り換えやすいんだけどなぁ。

ここはとりあえず期待して感想を待つ事にしよっと。

Posted at: 
2007/06/18 02:22:54
4 Comments
0 TrackBacks
Tags: 
mod_wsgi
MySQL
Python
Trac
Trackback: 
http://humming.via-kitchen.com/2007/06/18/very-interested-it/trackback/

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/

Categories

Archives