さくらインターネットでDjango

業務でさくらインターネットの共有サーバを使う。その際にDjango環境を構築した。

専用サーバなら訳ないのですが、共用サーバという罠なので記事にしとく。

環境

  • 共用サーバ
  • Python2.6.2が標準で入ってる!

site-packagesディレクトリを作成する。

Pythonの各種ライブラリをインストールする前にインストール先のsite-packagesディレクトリを作成する。

mkdir -p $HOME/local/src
cd $HOME/local/src
mkdir -p $HOME/local/lib/python2.6/site-packages
ln -s ~/local/lib/python2.6 ~/local/lib/python

~/.cshrcに各種パスを設定。

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

各種Pythonライブラリのインストール

setuptoolsのインストール

$HOME/local/srcでの作業。

wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar -zxf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py install --prefix=$HOME/local
MySQL-pythonのインストール

$HOME/local/srcでの作業。

wget http://jaist.dl.sourceforge.net/project/mysql-python/mysql-python-test/1.2.3c1/MySQL-python-1.2.3c1.tar.gz
tar -zxf MySQL-python-1.2.3c1.tar.gz
cd MySQL-python-1.2.3c1
python setup.py install --prefix=$HOME/local
Djangoのインストール

$HOME/local/srcでの作業。

wget http://www.djangoproject.com/download/1.1.1/tarball/
tar xzvf Django-1.1.1.tar.gz
cd Django-1.1.1
python setup.py install --prefix=$HOME/local

Djangoプロジェクトを作成。

ひとまず通例のmysiteってプロジェクト名で作成。

django-admin.py startproject mysite	

django.cgiのインストール。

djangoをCGIとして動かすのでdjango.cgiなるプログラムを導入する必要がある。

django.cgiファイル上部で下記を設定する。
sys.path.append('/path/to/local/lib/python')
sys.path.append('/path/to/local/lib/python/site-packages')
import site
site.addsitedir('/path/to/local/lib/python/site-packages')

パスはそれぞれの環境に置き換えて下さい。

django.cgiファイル下部で下記を設定する。
sys.path.append("/path/to/src")
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

パスは(ry
mysiteってプロジェクト名も適宜置き換えて下さい。

.htaccessでdjango.cgiに向きを変える。

このままだと、django.cgiに向きを変えないと動かないので、.htaccessで小細工。

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

参考

余談。Emacsで日本語入力できない。

さくらインターネットEmacsが入ってるものの、日本語が入力できないので~/.emacsに下記を設定する。

(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)