さくらVPS上にDjangoの開発環境を構築してみました。
それぞれのバージョンです。
・Fedora 14 x86_64
・Nginx 1.0.8
・Python 2.7
・uwsgi 0.9.9.2
・Django 1.3.1
・mysql 5.5.17
■Nginxのインストール
デフォルトのyumレポジトリーは0.8x系だったので追加しました。
yumレポジトリーファイル
Django用に仮想ホストの設定ファイルを用意します。
仮想ホスト設定ファイル
server_nameの値は環境にあわせて修正してください。
■uwsgiのインストール
fastcgiは個人的にあまり良いイメージがないのでwsgiにしました。
Pythonはデフォルトで2.7がインストールされていたのでそのまま。
他に必要な依存ライブラリをインストールします。
Pythonのパッケージ管理?らしきpipを利用してuwsgiをインストールしました。
rubyのrvmのようにバージョン別に環境を用意できるようなのですが、めんどくさかったので特に意識しないで利用しました。
daemonで起動できるように適当に起動スクリプトを作成しました。
起動スクリプトファイル
起動設定ファイル
設定ファイル
■Mysqlのインストール
この辺はありきたりな方法でさくっと。
Python用のドライバをpipでインストール
Django用にデータベースを作成
■Djangoのインストール
pipでインストールします。
便利や・・・
あとは普段と同じようにDjangoプロジェクトを作成してサービスを起動します。
ソースを修正した後は/tmp/reload.txtをtouchコマンドなどで更新すると反映されます。Passengerに似ていますね。
開発時はわざわざ更新するのがめんどいので毎回読み込むように設定をしたいのですが方法がわかりませんでした。。。
2011/11/03追記
ソース更新をチェックしてuwsgiを再起動することで対応できました。
こちらをどうぞ
それぞれのバージョンです。
・Fedora 14 x86_64
・Nginx 1.0.8
・Python 2.7
・uwsgi 0.9.9.2
・Django 1.3.1
・mysql 5.5.17
■Nginxのインストール
デフォルトのyumレポジトリーは0.8x系だったので追加しました。
yumレポジトリーファイル
cp nginx.repo /etc/yum.repos.d/nginx.repo
yum install --enablerepo=nginx nginx
Django用に仮想ホストの設定ファイルを用意します。
仮想ホスト設定ファイル
cp sns.conf /etc/nginx/conf.d/
server_nameの値は環境にあわせて修正してください。
■uwsgiのインストール
fastcgiは個人的にあまり良いイメージがないのでwsgiにしました。
Pythonはデフォルトで2.7がインストールされていたのでそのまま。
他に必要な依存ライブラリをインストールします。
yum install python-setuptools
yum install python-devel.x86_64
yum install libxml2-devel.x86_64
yum install gcc.x86_64
Pythonのパッケージ管理?らしきpipを利用してuwsgiをインストールしました。
rubyのrvmのようにバージョン別に環境を用意できるようなのですが、めんどくさかったので特に意識しないで利用しました。
easy_install pip
pip install uwsgi
daemonで起動できるように適当に起動スクリプトを作成しました。
起動スクリプトファイル
起動設定ファイル
設定ファイル
cp uwsgi.init /etc/rc.d/init.d/uwsgi
cp uwsgi.sysconfig /etc/sysconfig/uwsgi
cp uwsgi.yaml /etc/uwsgi.yaml
chkconfig --add uwsgi
■Mysqlのインストール
この辺はありきたりな方法でさくっと。
rpm -Uvh http://rpms.famillecollet.com/remi-release-14.rpm
yum install --enablerepo=remi mysql.x86_64 mysql-server.x86_64 mysql-devel.x86_64
Python用のドライバをpipでインストール
pip install mysql-python
Django用にデータベースを作成
mysql -u root
create database sns_development default character set utf8;
grant all privileges on sns_development.* to sns@'localhost' identified by 'sns';
flush privileges;
■Djangoのインストール
pipでインストールします。
pip install django
便利や・・・
あとは普段と同じようにDjangoプロジェクトを作成してサービスを起動します。
/etc/rc.d/init.d/uwsgi start
/etc/rc.d/init.d/nginx start
ソースを修正した後は/tmp/reload.txtをtouchコマンドなどで更新すると反映されます。Passengerに似ていますね。
開発時はわざわざ更新するのがめんどいので毎回読み込むように設定をしたいのですが方法がわかりませんでした。。。
2011/11/03追記
ソース更新をチェックしてuwsgiを再起動することで対応できました。
こちらをどうぞ
そうあれはミレミアムを迎えるさなか、ネットゲームデビューを果たした物語。
当時東京めたりっくと契約したので前々から興味のあったウルティマオンラインのパッケージを購入して(たしか3Dになったやつ)冒険の地へ赴きました。
普通のRPGと違って決められた道しるべもなく、コンピューターなのかプレイヤーなのかすら区別出来ずにいました。
自分は人に役に立ちたいと思い鍛冶屋を目指す事にしました。
と、言ってもお金も知識もありません。
見習いは黙って雑魚モンスターを狩るのがRPGの王道。ナイフと一切れのパンをカバンにつめてモンスターを探しました。戦う鍛冶屋さんのデビューです。
スタート地点の街の近くに人が集まるエリアがありました。
たぶんここは「おいしい狩り場」だとピンときました。
ルーキーだからと言って遠慮することはありません。威風堂々とナイフを構えて獲物を待ちます。
やっと現れたモンスターはゾンビでした。
ちょw最初はスライムとかじゃないのwwせめて、おおがらすだろ・・・
さすがネットゲーム。今までの常識がまったく通じません。
ただ見た目程たいした事はなく、ヒット&ウェイ(死に戻り)でなんなく倒す事が出来ました。
すこしづつあぶく銭がたまっていくと、ゾンビメイルを手に入れました。
もうね。。。絶叫したね。近所迷惑だったね。
これはレアアイテムに違いない。だれも装備していないからね。
颯爽とゾンビメイルを装備してテンションUPで狩りを続けました。
相変わらずヒット&ウェイ(死に戻り)を繰り返していると、ひとつの疑惑が生まれました。
このゾンビメイルぱち物なんではないかと。。。そもそも最初の街にいきなりレアアイテムが手に入るのもおかしな話だ。そうこうしている間に2つめのゾンビメイルを手に入れました。
さらに狩りを続けていると馬に乗った装備がイカツイ人(Aさん)に絡まれました。
これが運命の出会いになるとは。。。
つづく
当時東京めたりっくと契約したので前々から興味のあったウルティマオンラインのパッケージを購入して(たしか3Dになったやつ)冒険の地へ赴きました。
普通のRPGと違って決められた道しるべもなく、コンピューターなのかプレイヤーなのかすら区別出来ずにいました。
自分は人に役に立ちたいと思い鍛冶屋を目指す事にしました。
と、言ってもお金も知識もありません。
見習いは黙って雑魚モンスターを狩るのがRPGの王道。ナイフと一切れのパンをカバンにつめてモンスターを探しました。戦う鍛冶屋さんのデビューです。
スタート地点の街の近くに人が集まるエリアがありました。
たぶんここは「おいしい狩り場」だとピンときました。
ルーキーだからと言って遠慮することはありません。威風堂々とナイフを構えて獲物を待ちます。
やっと現れたモンスターはゾンビでした。
ちょw最初はスライムとかじゃないのwwせめて、おおがらすだろ・・・
さすがネットゲーム。今までの常識がまったく通じません。
ただ見た目程たいした事はなく、ヒット&ウェイ(死に戻り)でなんなく倒す事が出来ました。
すこしづつあぶく銭がたまっていくと、ゾンビメイルを手に入れました。
もうね。。。絶叫したね。近所迷惑だったね。
これはレアアイテムに違いない。だれも装備していないからね。
颯爽とゾンビメイルを装備してテンションUPで狩りを続けました。
相変わらずヒット&ウェイ(死に戻り)を繰り返していると、ひとつの疑惑が生まれました。
このゾンビメイルぱち物なんではないかと。。。そもそも最初の街にいきなりレアアイテムが手に入るのもおかしな話だ。そうこうしている間に2つめのゾンビメイルを手に入れました。
さらに狩りを続けていると馬に乗った装備がイカツイ人(Aさん)に絡まれました。
これが運命の出会いになるとは。。。
つづく