CoreserverでDjangoを使う

2007/09/27 02:47

※ 商品のリンクをクリックして何かを購入すると私に少額の報酬が入ることがあります【広告表示】

なんだか使える場所がないとか言われているので、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を書く

メディアファイルを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/.

アクセスしてみなー( 期間限定 )。意外と動くよ

Prev Entry

Next Entry