apache の設定

次に apache の設定ファイル /etc/apache2/httpd.conf を編集。 を加える。とりあえず の下に入れてみた。

<Location "/mysite/">
	SetHandler python-program
	PythonHandler django.core.handlers.modpython
	SetEnv DJANGO_SETTINGS_MODULE mysite.settings
	PythonDebug On
</Location>

説明ページのまんま。「mysite.settings は、 Django プロジェクトの設定ファイルを指す Python import パスになるよう、自分の環境に合わせて置き換えて下さい。」という部分がなんの事だか良く解らないのでそのまんまで。
とりあえずはこの状態で apache をリスタートして設定を読み込ませる。

Macintosh:myDjangoSite paraches$ sudo apachectl restart

というわけで http://localhost/mysite/ にアクセスすると…

MOD_PYTHON ERROR

ProcessId:      14528
Interpreter:    'Macintosh.local'
<長いので省略>
  File "/Library/Python/2.5/site-packages/django/conf/__init__.py", line 83, in __init__
    raise EnvironmentError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)

EnvironmentError: Could not import settings 'mysite.settings' (Is it on sys.path? Does it have syntax errors?): No module named mysite.settings

う〜ん、エラー! どうも mysite.settings を import できないって言われてるみたい。
というわけで、ここで迷った。
mysite の置き場所がいけないのかな〜? と思って DocumentRoot に作らなきゃいけないのかもしれないと思いついた。因に httpd.conf はこんな感じ

DocumentRoot "/Library/WebServer/myDocuments"

というわけで、強引に /Library/webServer/myDocuments の下に mysite を作ってみたけど、これもだめ。で、説明ページの下の方を良く読んで(っていうか最初読んでなかった…)なんとなく理解。 で URL の /mysite/ をアクセスしたら、Djangomod_python で動かして、その時のプロジェクト(アプリケーション?)は SetEnv DJANGO_SETTINGS_MODULE mysite.settings の部分にある mysite.settings。で、mysite.settings がどこにあるのかは、python path で設定しなくちゃいけない。なんにもしてない状態だと、/Users/paraches/myTest/myDjangoSite/mysite は見つからないからエラーになる。
というわけで、PythonPath に mysite のおいてある場所を設定すれば良い。で、場所を設定した新しい設定は以下

<Location "/mysite/">
	SetHandler python-program
	PythonHandler django.core.handlers.modpython
	SetEnv DJANGO_SETTINGS_MODULE mysite.settings
	PythonPath "['/Users/paraches/myTest/myDjangoSite'] + sys.path"
	PythonDebug On
</Location>

またまた apache をリスタートして http://localhost/mysite/ にアクセスすると…

出た〜〜〜!!!

なんとなく、 の書き方みたいなもの解ったみたいな…感じ?