なんだか使える場所がないとか言われているので、coreserver.jp(年間5000円)でDjangoを使ってみます。xreaでも動きますが、先人もいるしドメインとらないと無料のやつが使えないようなので coreserver.jp のお試しでやってみます。
お題はdjblogkit(unicode対応版)で。
まずは、coreserver.jpを借りてください。 お試しの場合はアクセス数かなにかが制限されているそうなので、しばらく試していると動作しなくなるかもしれません。
coreserver.jpはsshログインするためのホストを設定しなければならず、設定変更後反映まで5分かかるらしいので、まずはホスト設定をしましょう。
coreserver.jpの管理サイトにログインしてください。 メニューに、「ホスト情報登録」というボタンがあるのでクリックします。ホスト情報が表示されますので、確認後「SSH登録」をクリックします。
反映待ちの間に、データベースを作成します。DjangoはPostgreSQLでの運用が奨められているのでPostgreSQLを追加します。 文字コードはUNICODE を選択して作成ボタンをクリックします。
サーバにSSHでログインし bashと打ち込みシェルを切り替えます( `tomishimaさんとこ見る`_ まで気にしてなかった) 、Pythonに関する環境を確認します。インタラクティブシェルに入ります。いきなりreadlineがないってエラーが出ますが、我慢我慢
~> python
Python 2.4.3 (#1, Sep 9 2006, 16:25:40)
[GCC 3.4.6] on linux2
Type "help", "copyright", "credits" or "license" for more
information.
Traceback (most recent call last):
File "/etc/pythonstart", line 7, in ?
import readline
ImportError: No module named readline
当然、psycopgもpsycopg2もインストールされていません。
>>> import psycopg2
Traceback (most recent call last):
File "", line 1, in ?
ImportError: No module named psycopg2
>>> import psycopg
Traceback (most recent call last):
File "", line 1, in ?
ImportError: No module named psycopg
psycopg2をインストールします。
ctl+Dでインタラクティブシェルを抜け、ホームディレクトリに、pythonディレクトリを作成します。
~> mkdir ~/python
psycopg2をダウンロードして、作成したpythonディレクトリを指定してインストールします。
~> wget http://initd.org/pub/software/psycopg/psycopg2-latest.tar.gz
~> tar xzf ./psycopg2-latest.tar.gz
~> python setup.py install --prefix=~/python
再びpythonコマンドでインタラクティブシェルに入ります。今度はエラーなくimportできるはずです。
>>> import os
>>> import sys
>>> sys.path.insert(0, os.path.join(os.path.expanduser('~'),
'python/lib/python2.4/site-packages'))
>>> import psycopg2
Djangoをインストールする。
svnの最新版をインストールしましょう。簡単です。
~> cd ~/python/lib/python2.4/site-packages
~> svn co http://code.djangoproject.com/svn/django/trunk/django
django
~> mkdir ~/python/bin
~> cp ~/python/lib/python2.4/site-packages/django/bin/*.py
~/python/bin/.
環境変数を設定してしまう
~> touch ~/.bashrc
~> echo 'export PYTHONPATH=~/python/lib/python2.4/site-packages' >
~/.bashrc
~> echo 'export PATH=~/python/bin:$PATH' >> ~/.bashrc
djblogkitをインストールする
~> cd ~/python/lib/python2.4/site-packages
~> wget http://static.everes.net/related/stuff/djblogkit20070927.zip
~> unzip ./djblogkit20070927.zip
~> rm ./djblogkit20070927.zip
~> vi ./djblogkit/settings.py
djblogkitを設定する
ここまで順序通りにしていれば、settings.pyをviで開いているはずなので、データベースの設定とURLを一部変更する。
settings.py
DEBUG = False
DATABASE_ENGINE = 'postgresql_psycopg2'
DATABASE_NAME = 'xxxxx'
DATABASE_PASSWORD = 'yyyyy'
BLOG_BASE = '/blog'
djblogkitのテーブルを作成する
ガツンとテーブルを作ります。スーパーユーザは作った方がラクチンです。
~> cd ~/python/lib/python2.4/site-packages/djblogkit
~> ./manage.py syncdb
cgiの設定をする
djangoprojectのBTSからcgiのファイルを持ってくる。
~> cd ~/public_html
~> wget http://code.djangoproject.com/attachment/ticket/2407/django.c
gi?format=raw
~> mv django.cgi\?format\=raw django.cgi
~> chmod 755 ./django.cgi
django.cgiを少し編集する。
import os, sysの次の行に以下を挿入(XXXは自分のユーザ名ね)
django.cgi
sys.path.append('/virtual/XXX/python/lib/python2.4/site-packages')
run_with_cgi関数でenviron = dict(os.environ.items())の次の行に以下を挿入
django.cgi
environ['PATH_INFO'] = environ.get('PATH_INFO',"/")
django.cgiの一番下を自分の環境に合わせる。
django.cgi
os.environ['DJANGO_SETTINGS_MODULE'] = 'djblogkit.settings'
.htaccessを書く
public_html以下にこんな感じの.htaccessを書く
.htaccess
everes@s12:~> ls
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /django.cgi/$1 [QSA,L]
メディアファイルをpublic_html以下にリンクする
メディアファイルをcgiが返していると地球温暖化の原因となるので、リンクを張る。
admin用のメディアは階層の問題か、うまくいかないのでコピッちゃった。
~> cd
~> mkdir public_html/blog
~> ln -s `pwd`/python/lib/python2.4/site-
packages/djblogkit/blog/templates/static `pwd`/public_html/blog/static
~> ln -s `pwd`/python/lib/python2.4/site-
packages/django/contrib/admin/media `pwd`/public_html/media
~> cp -R ~/python/lib/python2.4/site-
packages/django/contrib/admin/media ~/public_html/.
アクセスしてみなー( 期間限定 )。意外と動くよ