Herokuにサインアップ
Node.jsのデプロイ先としてHerokuを使用してみる。
参考にしたのは、ここ。
http://gihyo.jp/dev/serial/01/nodejs/0005
基本的には、上記記事のとおり、
からサインアップを選択して、いわれるがままに進めばOKなんだけど、
少し詰まったところを書き留めておく。
・サインアップ後にインストールするToolbeltの対象OSにCentOSが明示されていない。
メニューからは、Max OS X、Windows、Debian/Ubuntu、Otherが選択できるが、
CentOSの場合は、OtherでOKっぽい。
・Toolbeltインストール後、PATHは自分で通す必要がある。
CentOSの場合、デフォルトでは、/usr/local/heroku/binにインストールされるので、
シェルのprofileにPATH=/usr/local/heroku/bin:$PATHを追記すればOK
・herokuコマンド実行には、rubyが必要。
yum install rubyでインストールは簡単にできるけど、バージョンが1.8.xなので、
最新版を1.9.3を導入してみる。
既にrubyがインストールされている場合は、一旦アンインストール。
# yum remove ruby
ついで、ruby最新版のソースコードをダウンロードしてくる。
#wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p286.tar.gz
※2012/10/18時点の最新安定版
・解凍してコンパイルしてインストール
# tar zxvf ruby-1.9.3-p286.tar.gz
# cd ruby-1.9.3-p286
# ./configure --prefix=/usr
# make
# make install
・rubyのバージョンを確認
・herokuが実行できるか確認
# heroku
Node.js~express.jsの導入
Node.js~express.jsを導入したときの作業メモ。
参考にしたのは、ここ。
http://gihyo.jp/dev/serial/01/nodejs/0001
OSは、CentOS 6.3 (64bit)。
最初にNode.js本体をインストールする。
Node.jsのソースコードを取得して、
# wget http://nodejs.org/dist/v0.8.12/node-v0.8.12.tar.gz
( 2012/10/16時点の最新版)
解凍&インストール。
# tar zxvf node-v0.8.12.tar.gz
# cd node-v0.8.12
# ./configure
# make
# su (rootユーザになる)
# make install
次にforeverをインストールする。
これは、Node.jsプロセスが落ちても自動で再起動してくれるモジュールみたい。
インストールには、npmを使用。
# npm install -g forever
-g オプションは、グローバルインストールになるので実行にはroot権限が必要。
foreverは、
# forever start foge.js
みたいな感じで起動すると、foge.jsが例外等で落ちても勝手に再起動してくれる。
ちなみに停止は、
# forver stop foge.js
最後に、express.jsをインストール。
これは、Node.js用のWebアプリケーションフレームワーク。
これもグローバルインストール
# npm install -g express
導入はこんな感じ。npmはwget+rpmライクで超楽ちん。
RedHat Enterprise Linux ES4 にGitをインストール
今更ながら、RedHat Enterprise Linux ES4(32bit)にGitを導入してみた。
YumやSubversionやらが導入されていない状況を想定している。
yumがないのでyumをインストール
# wget http://dl.fedoraproject.org/pub/epel/4/i386/yum-2.4.3-0.5.el4.noarch.rpm
# rpm -ivh yum-2.4.3-0.5.el4.noarch.rpm
/etc/yum.confを作成
# touch /etc/yum.conf
デフォルトのyumリポジトリーにはgitがないのでリポジトリにEPELを追加
# wget http://dl.fedoraproject.org/pub/epel/4/i386/epel-release-4-10.noarch.rpm
# rpm -ivh epel-release-4-10.noarch.rpm
/etc/yum.repos.d/epel.repoを編集
[epel]
enabled=0
SQLiteインストール
python系のモジュールをインストール
# wget http://dl.fedoraproject.org/pub/epel/4/i386/python-elementtree-1.2.6-0.6.el4.i386.rpm
# wget http://dl.fedoraproject.org/pub/epel/4/i386/python-sqlite-1.1.7-0.1.2.2.el4.i386.rpm
# wget http://dl.fedoraproject.org/pub/epel/4/i386/python-urlgrabber-2.9.8-0.3.el4.noarch.rpm
# rpm -ivh python-elementtree-1.2.6-0.6.el4.i386.rpm
Subversionインストール(既にインストール済みの場合はスキップ)
# wget ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el4/en/i386/extras/RPMS/subversion-1.4.6-0.2.el4.rfx.i386.rpm
# rpm -ivh subversion-1.4.6-0.2.el4.rfx.i386.rpm
# svn --version --quiet (バージョンが1.4.6になっていることを確認)
PerlのSubversionモジュールをインストール
# wget ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el4/en/i386/extras/RPMS/subversion-perl-1.4.6-0.2.el4.rfx.i386.rpm
# rpm -ivh subversion-perl-1.4.6-0.2.el4.rfx.i386.rpm
※バージョンが1.4.6-0.2となっているが、これはインストールされているSubversionのバージョンに合わせる。
Gitをインストール
# yum -y --enablerepo=epel install git
Gitのバージョンを確認
# git --version
Gitで開発環境構築(3)
Gitにソース等を登録して開発環境を構築する。
(2012/10/15: bareにすると共有リポジトリ側でコミットできないので、ローカル側からPushするように変更)
クライアント(Linux)
ローカルリポジトリ作成
・適当な場所にローカルリポジトリを作成する。
# git init
ソースコード展開
・ソースコードを展開してgit addおよびgit commitでローカルリポジトリにチェックイン
# git add .
# git commit -a -m "message"
共有リポジトリの情報を登録
・共有リポジトリの情報をリモートとして登録
# git remote add origin git://<共有リポジトリのパス>
ホスト(Windows7)
共有リポジトリの作成
・ベースフォルダ配下に管理するソースを含む共有リポジトリフォルダを作成する
例:project_foge.git
共有リポジトリ初期化
・ターミナル起動
共有リポジトリフォルダを右クリック->Git Bush Here
・ターミナルからコマンド入力
# git init --bare --shared=true
クライアント(Linux)
リモートリポジトリにプッシュ
・ローカルリポジトリの変更内容をリモートリポジトリにプッシュしてマージ
# git push origin master
共有リポジトリの変更をローカルに反映させる場合
・共有リポジトリからPullしてマージする。
# git pull origin master
以降、他ホストなどで作業したい場合は、Cloneを作成する。
# git clone git://<共有リポジトリのパス>
Gitで開発環境構築(2)
ローカル側の環境構築。
CentOS 5.6 (64bit)にGitをインストールする。
yumリポジトリーに設定を追加する
・EPELのrpmファイルをダウンロードする。
http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
・rpmをインストールする。
#rpm -ivh epel-release-5-4.noarch.rpm
・/etc/yum.repos.d/epel.repoの設定を変更
[epel]
enabled=0
gitをインストールする
・ターミナルからコマンド入力
yum -y --enablerepo=epel install git
・バージョンの確認
git --version
Gitで開発環境構築(1)
ホストOSのWindows7とVMWareで仮想化したLinux環境とでGitを使用してソースコードを共有する環境を構築してみる。
方針は、
・共有リポジトリはWindows上に構築
・WindowsではGitは、msysGitを使用
な感じで、構成イメージは、以下のとおり。
Linux環境が複数あるのは、それぞれ異なるバージョンでアプリの動作確認を行いたいから。
まずは、WIndows環境に共有リポジトリを作成してみる。
msysGitインストール
・モジュールを下記アドレスからその時点の最新版をダウンロードする。
http://code.google.com/p/msysgit/
(2012/10/11時点では、Git-1.7.11-preview20120710.exe)
・インストーラーを起動してインストール。
基本はデフォルトで変更した箇所は以下のとおり。
右クリックからシェルを起動したいのでチェック
WindowsアプリとLinuxアプリの両方を管理したいので、改行コードの変換はナシ
共有リポジトリ作成
・リポジトリのベースフォルダを作成する
例:F:\Git\repos
・ベースフォルダ配下にテスト用の共有リポジトリフォルダを作成する
例:sample.git
共有リポジトリ初期化
・ターミナル起動
共有リポジトリフォルダを右クリック->Git Bush Here
・ターミナルからコマンド入力
# git init --bare
・sample.gitフォルダ配下に色々作成されるのを確認する。
外部から接続するためにデーモン起動設定
・batファイルなどで以下のコマンドがスタートアップ時に実行されるようにする。
# git daemon --verbose --export-all --enable=receive-pack --base-path=D:\Git\repos
(パスの部分は環境にあわせる)
接続確認
・ターミナルからコマンド入力
# git ls-remote git://サーバ名/sample.git
Request upload-pack for <リポジトリのパス>がでればOK
Web関連単語の備忘録
誤解を恐れない備忘録。
Node.js
サーバサイドのJavaScript。シングルスレッド、ノンブロッキングI/Oで実装されており、I/Oバウンドな用途に向いていると思われ。逆にCPUバウンドな用途は苦手。
IndexedDB
JavaScriptを使用してアクセスできるクライアントサイドのKVS。
トランザクション、インデックスも使用でき、ブラウザで実装される。
プロキシサーバやWebキャッシュサーバで使用されるフリーソフト。
HTTP、FTPといった多様なプロトコルに対応。
WebSocket(NodeならSocket.IO)
ブラウザーWebサーバ間で使用することを想定した双方向通信用の通信規格
PushState(pjax)
ブラウザの履歴を変更する仕様。
ajaxと組み合わせる(pjaxはajax+pushStateのjQueryプラグイン)ことでajaxコンテンツでも「戻る」、「進む」ボタンが有効になる。
WebStorage(localStorage,IndexedDB)
ブラウザで実装されたクライアントサイドDB(KVS)。
sessionStorage ... ウィンドウ、タブの中でデータを共有
localStorage ... オリジン(ドメイン+ポート番号)内でデータを共有
WebWorker
JavaScript用マルチスレッドライブラリ(HTML5 API)
backbone.js(CSMVC)
http://documentcloud.github.com/backbone/
http://d.hatena.ne.jp/kazuk_i/20110407/1302130947
underscore.js(utility)
JavaScriptの配列や連想配列系のライブラリ。
backbone.jsが依存。