さくらのレンタルサーバでDjangoアプリを公開する。

 ちょいと間が空いてしまったけれどもいよいよ最後の行程、配置したDjangoアプリケーションにアクセス可能にしますよ。

 Django | Deploying Django | Django documentation

 Djangoさんの公式サイトに寄りますと、運用環境としてのイチオシはmod_wsgi環境みたいですけども、こちとらヘタれ貧民仕様のレンタルサーバプランなのでそんなの使えるはずもありません、それどころかFastCGI環境すらありません。でも、大丈夫、ちゃんと先人な方々がそんな環境でも動かせるようにしてくださってますから。Yes! ありがとうございます!

 #2407 (CGI Support for django) – Django

 そんなわけで、CGIとして動かしてくれるようなスクリプトを頂いて参ります。私はググったりして使っている人が多かったみたいなので、何も考えずに真ん中あたりのdjango.cgiを選択しましたよ。そのままでは動かないので環境に合わせてちょっとだけ編集します。

#! /home/username/.virtualenvs/django-14/bin/python

sys.path.append('Djangoアプリの配置先へのパス')
# Change mysite to the name of your site package
os.environ['DJANGO_SETTINGS_MODULE'] = 'アプリ名.settings'

 1行目の実行パスやら最後の方にあるDjangoアプリケーションの配置先へのパス、settingsモジュールの指定などを行います。あ、あれからさらっとDjango 1.4環境に移行しちゃいました。編集したファイルは公開ディレクトリ、さくらのレンタルサーバさんだったら/home/username/www/以下とかに配置して実行権を与えておきましょう。

 これでdjango.cgi経由でDjangoアプリケーションが繋がりました。後は渡ってくるURLを紐付ければ上手くいきます。それにはmod_rewriteを使います。幸いこれはヘタれ(ryでも使えます :-)

RewriteEngine on
RewriteBase /
RewriteRule ^(アプリ名.*)$ django.cgi/$1 [L]

 動かしたいDjangoアプリケーションのURL設計によって異なりますが、アプリ向けっぽいURLでアクセスを受けるとまとめてdjango.cgiへ向ける設定はこんな感じになると思いますよ。.htaccessやら何やらなファイルを作って記述します。そして、実際にブラウザからアクセスしてちゃんと動くか確認してみましょう。

 前に使っていたレンタルホストさんではFastCGI環境が使えたので速度的にどうなのかなと思っていましたが、サーバ自体の動きが軽快からなのか思いのほか良好でした。違和感を感じないどころか返って反応いいんじゃないのとかまで思いました。さくらのレンタルサーバさん有り難いっす(物理的な距離の違いもあるので一概にはいえないですけども)。大したアクセスはないので全然余裕でこれからもいけそうでーす。