CORESERVER に Django アプリを複数設置する
CORESERVER はサブドメイン無制限らしいんだけど、Django アプリを設置するたびにサブドメインを増やしたくない。ということでいろいろ調べてたら、CATCH ALL機能と mod_rewrite を使えば動的サブドメインみたいなことができるらしい。実験用に設置するだけなら、これで十分じゃないかな。
※ これは CORESERVER の CORE-A プランで独自ドメインを使った場合。CORESERVER が提供しているサブドメインを使って、同じことができるかどうかは不明。
ちなみに設置してみたのはこの2つ。
- djblogkit --> http://djblogkit.reguzy.jp/djblogkit
- Django-authapi --> http://djangoauthapi.reguzy.jp
Python の設定
前回はこの方法で設定してみたけど、virtual-python というのが面白そうなので、これを利用してみる。
手順はこのまま。virtual-python を入れて、easy_install を入れる。あとあと便利だろうから、pysqlite も入れておく。
# virtual-python wget http://peak.telecommunity.com/dist/virtual-python.py python virtual-python # .bashrc touch ~/.bashrc echo 'export PYTHONPATH=~/lib/python2.4/site-packages' > ~/.bashrc echo 'export PATH=~/bin:$PATH' > ~/.bashrc #easy_install wget http://peak.telecommunity.com/dist/ez_setup.py python ez_setup.py # Django cd ~/lib/python2.4/site-packages svn co http://code.djangoproject.com/svn/django/trunk/django django cp ~/lib/python2.4/site-packages/django/bin/*.py ~/bin/. # pysqlite easy_install pysqlite
~/lib/python2.4/site-packages 以下に djblogkit と Django-authapi を展開しておく。
サーバの設定
※ CATCH ALL機能対応のサブドメイン「default」を指定されますと、設定されていないサブドメインを一括受け入れできます。同じサブドメイン内で一番最後に設定してください。(例:default.example.com は abc.example.comやxyz.example.comを兼ねます)
ということなので、CORESERVERの「管理メニュー」-->「ドメインウェブ」でこんな感じに設定する。
※ 設定は1個毎にやらないとだめっぽい。
ディレクトリ構成
構成はこんなかんじ。ディレクトリ default.example.com 以下の xxx.example.com は、サブドメインと一致させること。あと静的ファイルへのリンクを貼っておく。
- ~/public_html/
- default.example.com/
- djblogkit.example.com/
- media --> /virtual/XXX/lib/python2.4/site-packages/django/contrib/admin/media/
- djblogkit/static --> /virtual/XXX/lib/python2.4/site-packages/djblogkit/blog/templates/static/
- django.cgi
- djangoauthapi.example.com/
- media --> /virtual/XXX/lib/python2.4/site-packages/django/contrib/admin/media/
- site_media --> /virtual/XXX/lib/python2.4/site-packages/djangoauthapi/site_media/
- django.cgi
- .htaccess
- djblogkit.example.com/
- default.example.com/
※ XXX はユーザ名
.htaccess
/public_html/default.example.com/ に置く .htaccess はこんな感じ。
CATCH ALL機能対応を利用してサブドメインを利用する場合について を参考にした。
RewriteEngine On RewriteCond %{REQUEST_URI} ^.+(\.js|\.png|\.jpe?g|\.gif|\.css|\.html?)$ RewriteRule ^(([^\.]+/?)*|([^\.]/)*[^\.]*\.[^\.]+)$ /%{HTTP_HOST}/$1 [L,QSA] RewriteRule ^(([^\.]+/?)*|([^\.]/)*[^\.]*\.[^\.]+)$ /%{HTTP_HOST}/django.cgi/$1 [L,QSA]
RewriteRule は2つ。静的ファイルなら HTTP_HOST 以下にリライト。それ以外なら HTTP_HOST 以下の django.cgi にリライトする。流れとしてはこんな感じらしい。
- ユーザが http://xxx.example.com/yyy/ にアクセス
- /xxx.example.com/django.cgi/yyy にリライト
- /public_html/default.example.com/ 以下の xxx.example.com/django.cgi/yyy にアクセス
CORESERVER 雑感
さくらのときは独自ドメインを取得していなかったので、単純に比較できないが、自由度は CORESERVER の方が高そう。XREAとほとんど同じなので、情報も多いみたい。ただ、管理ページはものすごくわかりずらい。CORESERVER のページと VALUE-DOMAIN のページを行ったりきたりしてる上に、permalink じゃないからブックマークもできない。あとパスワードを自分で決められないのは勘弁してほしい・・・
初心者には厳しい。まあ勉強になるから、もう少し使って見るつもりだけど。