2010年11月22日月曜日

debian環境でdjango用のApacheサーバ設定をする

libapache2_mod_pythonが既にインストールされていて、
mod_enablesにモジュールがリンクされている前提。

1.ページが見れるように設定する
以下のファイルを編集し、
virtualhostタグ内にLocationタグを追加する。

$vim /etc/apache2/site-enables/000-default

<VirtualHost *:80>
...

    <Location "/mysite">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE mysite.settings
        PythonOption django.root /mysite
        PythonDebug On
        PythonPath "['/var/www'] + sys.path"
    </Location>
</VirtualHost>

上の設定は、
「/var/www/mysite」フォルダにDjangoプロジェクト一式が入っている状態で、

http://127.0.0.1/mysite/
にアクセスすると表示される設定になっている。

---
Admin管理者用ページもApacheで行うなら、このままだと
スタイルシートやテンプレート関係が全滅になる。
Adminページのソースを見るとドキュメントルート下のMediaディレクトリにアクセスしているので、
LocationタグでMediaを設定してあげれば良いので、

<VirtualHost *:80>
...
</VirtualHost>
<Location "/media">
    SetHandler None
</Location>

これでMediaディレクトリの用意は整えた。

次は中身を入れればいいので

まるごとコピー
$ mkdir /var/www/media/
$ cp -Rp /usr/lib/python2.5/site-packages/django/contrib/admin/media/* /var/www/media/

シンボリックリンク(ショートカット)でもおk。
$ cd /var/www
$ ls -s /usr/lib/python2.5/site-packages/django/contrib/admin/media media

$ /etc/init.d/apache2 restart
アパッチ再起動してAdminページを開いてみる。
コメントを投稿

Androider