Tags: apache
ubuntu 8.04.01 Apache2.2上でDjangoを動かしてみた
ことだまんです。
いつもDjango付属のテストサーバーで開発をしている訳ですが
アプリケーションが完成(デザイン以外)したので、Apacheで動かしてみました。
とりあえず、mod_pythonがインストールされていなかったのでインストール
$ sudo apt-get install libapache2-mod-python
a2emodしなくても有効になってました。
次に/etc/apache2/sites-available/defaultを編集
<Location "/ProjectName/">
SetHandler python-program
PythonPath "['/DocumentRoot/ProjectDirectory'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE ProjectName.settings
PythonDebug On
PythonAutoReload On
</Location>
こんな感じ。
PythonPathにはプロジェクトまでのディレクトリをフルパス。
SetEnv DJANGO_SETTINGS_MODULEはプロジェクト名.settingsで完了。
PythonAutoReloadはスクリプトに変更があると、Apacheを再起動無しにリロードしてくれる便利な機能。
本番環境ではDebugもAutoReloadも不要です。
あとはurl.pyを変更する。
上の場合は/ProjectName/を各urlパターンに追加する。
さて、sqlite3を使用し、ささっとアプリケーションを作ったのですが・・・
sqlite3でこける。
OperationalError at /hoge/some
unable to open database file
settings.pyのDATA_BASE_NAMEがフルパスになっていなかったのが原因、更にDBファイルのパーミッションがApache権限で書き込めない様になっていたのが原因。
sqliteを初めて使ったのでプチはまり。
さて、次はCSSやAdminサイトの静的ファイルの設定だ。