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を一部変更する。

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.cgi?format=raw
~> mv django.cgi\?format\=raw django.cgi
~> chmod 755 ./django.cgi


django.cgiを少し編集する。

import os, sysの次の行に以下を挿入(XXXは自分のユーザ名ね)

sys.path.append('/virtual/XXX/python/lib/python2.4/site-packages')


run_with_cgi関数でenviron = dict(os.environ.items())の次の行に以下を挿入

    environ['PATH_INFO']         = environ.get('PATH_INFO',"/")


django.cgiの一番下を自分の環境に合わせる。

os.environ['DJANGO_SETTINGS_MODULE'] = 'djblogkit.settings'


.htaccessを書く

public_html以下にこんな感じの.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/.


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


 
ponybadge

Powered by

Feedbacks

Tweets

Tags

Calendar