AWSでNode.js、socket.ioの設定した時のメモ

サーバーサイドはそんなに詳しく無いんだけども設定してみた。
間違ってることもあるかもしれないけど今後のためにメモ。


scoketを80番ポートで使うためにはrootでNode.jsを動かす必要がある。
そのためにはいろいろとrootでやらないといけない。


というわけでrootへ。80じゃなくてもいい場合は省略。
sudo su -

サーバのアップデートだって。
yum update

gitのインストール
yum install git

nvm(Node Version Manager)をダウンロード
git clone git://github.com/creationix/nvm.git .nvm

パスを通してるのかな??
. .nvm/nvm.sh

バージョン指定してnode.jsのインストール
nvm install v0.10.27
nvm use v0.10.27

socket.ioのインストール
「-g」をつけるといいことがある。
npm install -g socket.io

expressのインストール
(どこかで見つけたsocket.ioのサンプルで使ってたので)
npm install -g express

デーモンで動かすためのforeverというのをインストール
npm install -g forever

foreverを使ってnode.jsを起動
forever start app.js


app.jsはherokuでやったやつとほぼ同じ。ポートを80にしてる。


●困ったときは

・nodeとかnpmとか「コマンドが見つかんない」っていうエラー
パスを通す必要がある。
bash_profileとかで設定しろっていうのを見かけるけど、それがイマイチ分からないんですよ。
どこかで見つけたシンボリックリンクエイリアス)を作る方法で。
ln -s [パス]/.nvm/v0.10.27/bin/node /usr/bin/node
ln -s [パス]/.nvm/v0.10.27/lib/node /usr/lib/node
ln -s [パス]/.nvm/v0.10.27/bin/npm /usr/bin/npm
ln -s [パス]/.nvm/v0.10.27/bin/node-waf /usr/bin/node-waf
ln -s [パス]/.nvm/v0.10.27/bin/forever /usr/bin/forever
ln -s [パス]/.nvm/v0.10.27/bin/npm /usr/bin/npm
インストール直後はパス通ってるけど一回SSH切ってつなぎ直すと
パスが通らなくなってるので設定は必要。
または再度インストール。


・なんか動いてない
foreverを使うとapp.jsにエラーがあってもforever自体は動いちゃいます。
普通に
node app.js
で起動するとエラーが見れる。


Basic認証を使いたい
.htaccess設置するか・・・・Apacheじゃなかった!」ってなります。
express.basicAuthを使うのが簡単。
でも最新のexpress4.xでは無くなっている。。ので3.xを使う。
npm install -g express@3.x
とやると3.xがインストールできる。
ただこれだと「expressが見つかんないよ」っていうエラーが出たりする。
「.nvm/v0.10.27/lib/node_modules」にexpressが無いとダメっぽい。
npm install express
とやると「.nvm/v0.10.27/lib/node_modules」にインストールされた。(-gオプション無し)
インストールされたのは4.xだけど3.xのまま使えた。
よく分かりません。
npm install -g
だけでインストールするとpackage.jsonに書かれたバージョンがインストールされるので最初からそれでやればいいのかも。

↓書く順番大事
app.use(express.basicAuth('userid', 'password'));
app.use(express.static(__dirname + '/htdocs/'));


「ワンクリック」読みました。
AWSって2002年からあったんだね。。

ワンクリック ジェフ・ベゾス率いるAMAZONの隆盛

ワンクリック ジェフ・ベゾス率いるAMAZONの隆盛