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/.
アクセスしてみなー(期間限定)。意外と動くよ
