Home > Django > さくらインターネット、CGIでDjangoを動かす

さくらインターネット、CGIでDjangoを動かす

  • 2007-04-16 (月) 13:46
  • Django

自宅サーバーにDjangoを入れてちょこちょこいじっていたが、httpd.confのMaxRequestsPerChildを1に設定してもそこそこ動いていた。
ということはCGIでも意外と動くんじゃないの?ということでさくらインターネットの共用サーバーに入れてみた。

参考にしたのは以下のサイト
sh1.2 pyblosxom : CGIでDjangoを動かす
oqreの日記 - さくらインターネットでDjango

まずは準備でDjangoとMySQLdbを”$HOME/local”にインストール。
Djangoのバージョンは0.96を入れたが、この辺はoqreさんの日記とほぼ同じ。

$HOME/localにインストールしたので環境変数に以下を追加

setenv PYTHONPATH $HOME/local/lib/python:$HOME/local/lib/python/site-packages
setenv PATH $HOME/local/bin:$PATH
setenv LD_LIBRARY_PATH $HOME/local/lib

次にsh1.2 pyblosxomさんの情報を参考に以下のサイトからdjango.cgiを取得。
#2407 ([patch] CGI Support for django) - Django Code - Trac

32行目に以下の行を追加

sys.path.append(’/home/XXX/local/lib/python’)
sys.path.append(’/home/XXX/local/lib/python/site-packages’)

$HOME/srcにソースを置くことにしたので、95・97行目を以下に変更

sys.path.append(”/home/XXX/src”)
os.environ['DJANGO_SETTINGS_MODULE'] = ‘XXX.settings’

django.cgi編集の最後は、環境変数の設定。
これが抜けているのに気付かなくって苦労した。
結局1行目の#!部分で渡すことにした。
参考:「さくらのレンタルサーバ」で Python外部モジュールを使う

#!/usr/bin/env PYTHONPATH=/home/XXX/local/lib/python:/home/XXX/local/lib/python/site-packages python

django.cgiは、最終的に(※)”/django.cgi”でアクセスできる場所(ルートディレクトリ)に置いた。

次はmod_rewriteの設定。
今回は都合により、特定ディレクトリ配下でDjangoを動かすように設定したためこんな感じにしてみた。
実はここではまったんだけどそれは後で。(※)

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^XXX/(.*)$ /django.cgi/$1 [QSA,L]

これでDjangoが動いた。
簡単なアプリケーションを作るつもりなので、動くようになったら公開します。
これであまりストレスを感じないスピードで動いてくれたら、ちょっとしたサイトを作るのに手軽にDjangoが使えそうだな。

追記 2007/04/18
このまま動かしたらmysql接続でエラーが出るので以下のエントリーで補足を書いた。
[補足]さくらインターネット、CGIでDjangoを動かす

※mod_rewriteの設定

まず最終的な環境はこんな感じになった
・ドメイン:xxx.example.com
・エイリアス設定したディレクトリ:$HOME/www/xxx/
・django.cgi:$HOME/www/django.cgi
・.htaccess:$HOME/www/.htaccess

最初にはまったのは、.htaccessとdjango.cgiを特定ディレクトリ配下に置いたら想定どおりに動かなかったこと。
$HOME/www/xxx/yyy/.htaccess ⇒ $HOME/www/xxx/.htaccess
$HOME/www/xxx/yyy/django.cgi ⇒ $HOME/www/xxx/django.cgi
上記のように変更。

次にさくらインターネットのmod_rewriteでは以下の設定では動かなかった。

RewriteRule ^/XXX/(.*)$ /django.cgi/$1 [QSA,L]

ルートディレクトリの/を除けば動くようだけどなぜだか分かりません・・・。
サブドメイン+Aliasを使ってるけど関係ないよなー。

この二つが重なって結構悩んでしまいました。。。

Comments:1

30からのBlog 07-04-18 (水) 20:55

[補足]さくらインターネット、CGIでDjangoを動かす

さくらインターネット、CGIでDjangoを動かす 上記のおとといのエントリーで…

Comment Form
Remember personal info

Trackbacks:1

Trackback URL for this entry
http://blog.joyfullife.jp/archives/2007/04/16134657.php/trackback
Listed below are links to weblogs that reference
さくらインターネット、CGIでDjangoを動かす from 30からのBlog
pingback from cgiでDjango! XREAインストール設定編 09-02-16 (月) 20:42

[...] さくらインターネット、CGIでDjangoを動かすのmod_rewriteの設定を参考にしました。こんな感じです。 [...]

Home > Django > さくらインターネット、CGIでDjangoを動かす

Search
Feeds
Meta

Return to page top