FUJILOG

見た、聴いた、触れたこと。 動かしたもの、書いたもの。 ウェブとリアルの備忘録です。

さくらVPSでnode.js

月額980円で始めるVPS(2週間の無料試用付き)ということで、さくらVPS
サーバサイドJavaScriptとWebSocketの勉強のため、今回はNode.JSで。

iTerm等でターミナルを起動して
  ssh username@割り当てられたドメイン
   passwaord
の入力でログイン

node.jsのインストールにあたり先行サイトを参照しつつ進めました。

【参照】

・さくらの VPS に node.js + npm + Socket.IO をインストールする手順
http://jmblog.jp/archives/709

◇gitインストール

sudo yum install gitを実行してもエラーで入らず。

Trying other mirror.
Error: failure: repodata/primary.xml.gz from git: [Errno 256] No more mirrors to try.

延々とエラー対策するも治らず…以後、次の操作したら治ったみたい

  yum check-update (したら治った?)
  yum search git (でgit発見。)
  sudo yum install git





トラブルシューティング
yum 実行時に「Error performing checksum」エラー
http://d.hatena.ne.jp/miau/20100404/1270384404
CentOS 5.4 に git をインストール
http://ameblo.jp/ootokage/entry-10469782021.html


◇nodeインストール

git cloneしたnodeを、そのディレクトリ直下で
  ./configure
するも失敗。

エラーメッセージから、事前にOpenSSLを入れる必要ありとのこと。
  sudo yum install openssl-devel

その後、再度
  ./comfigure
  make

'build' finished successfully が表示された
  make install

'install' finished successfully で、
  node -v
でVersion(この時点では0.3.0-pre)が表示されたらOK?


◇npmインストール

パッケージを入れるディレクトリでコマンド入力
  curl http://npmjs.org/install.sh | sh

するも、エラーを吐く。

node cli.js cache clean
make: node: Command not found
make: *** [uninstall] Error 127

…node cli.js install npmのところでつまづいている様子。

なので、一旦npmパッケージをダウンロードしておいて展開、
 tar -xzf npm-0.2.8-1.tgz 
  make
  make install


…しても結果変わらず。。

参照サイトを見るとインストールしたnode.jsのバージョン次第で同エラーを吐くとのこと。

なので、前に入れたnode.jsを削除してから、node-v0.3.1.tar.gz を本家から落としてきて
  tar -xzf node-v0.3.1.tar.gz 

再度
   ./configure
   make
   make install
で入った。

再び、npm-0.2.8-1直下でmake,make installで今度はOK。


DNSサービスの利用

  1. お名前.comにログイン
  2. 左パネルで、[ドメイン設定 > ネームサーバーの設定 > レンタルDNSレコード設定] と進む
  3. 対象のドメインを選んで、[入力画面へ進む] をクリック。
  4. サブドメインを使うなら、[ホスト名]に入力。ex: www.y-fuji.com
    サブドメインを使わないなら何も入れない。ex: (空).y-fuji.com
    サブドメイン有無の両方にする場合は、それぞれを追加する。
  5. [VALUE]に「さくらVPSで割り当てられたIPアドレス」を入力。
    その後、[確認画面へ進む] をクリック。次の画面で、[設定する] をクリック。
  6. 手続きが終わったら、[ドメイン設定 > ネームサーバーの設定 > ネームサーバーの情報変更] をクリック。
  7. 対象のドメインを選んで、[ネームサーバー情報を入力する] に、「01.dnsv.jp」と「02.dnsv.jp」を入力。確認画面を経て、[設定する] で終了。
設定後、通知メールが届き、数時間程で状態が反映されました。


◇node実行テスト

動作確認のため、以下のようなコードを書いてexample.jsで保存。
※xxx.xx.xx.xxx はさくらVPSで割り当てられたIPアドレス

var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen("80", "xxx.xx.xx.xxx");
console.log('Server running at http://xxx.xx.xx.xxx:80/');


ターミナルで
  node sample.js
で起動後、お名前.comの情報が反映されたら、その登録ドメインURLをブラウザで叩くと正常に動作。


◇サンプルアプリ起動

遭遇したエラー:process.nextTick error, or 'error' event on first tick
…installしたはずのモジュールが見当たらない。

一旦、npm uninstallして再インストールするも状況変わらず。

原因は .npmrcファイルのファイルの置き場所と記述内容でした。
.npmrcファイルをnpmモジュールディレクトリ直下に置いて、bin,manのパスを正しく通せばエラーは解決でした。

トラブルシューティング
・npmをインストールする
http://d.hatena.ne.jp/yssk22/20100814/1281802092
http://d.hatena.ne.jp/perezvon/20100929/1285780850


◇デバッガインストール

node.js用にEclipseのデバッガがあるので、それもインストール。

毎度のEclipseの[新規ソフトウェアのインストール]>[リポジトリ情報登録]>[利用許可承諾]>[OK]です。

[リポジトリ情報]
・(Name)Google Chrome Developer Tools
・(URL)http://chromedevtools.googlecode.com/svn/update/dev/


デバッガインストール後、テストコードを書いて、
  node --debug dbgtest.js
すると、デバッガ用に5858ポートが開いたと出るので、デバッグ可能に。

以上、環境構築でした。


【その他参照】
・node.js ハンズオン資料
http://dl.dropbox.com/u/219436/node.js/handson/build/html/index.html
・node.js を試してみた
http://d.hatena.ne.jp/ursm/20100925/1285359068