さくらのVPSでNode.jsを設定してみた

nodesakuraNode.jsをSAKURA Internetの「さくらのVPS」で使えるように設定してみました。

なにかと話題のNode.js。FlashやCreateJSなどのインタラクティブコンテンツと連動させたら、面白そう!ということで触ってみたのですが、いざインターネットで公開するとなると、多くのレンタルサーバー上では使えないことがわかりました。
root権限が必要なのです。

そこで、SAKURA Internetの「さくらのVPS」を契約して、設定してみました。
今回はインディゴデザインの五十嵐さんに無理を言って教えてもらいました。
五十嵐さん、ありがとうございました!
http://www.idw.jp/

以下、習ったことのメモです。
Node.js自体の説明はしません。
主に自分向けのメモなので、第三者からするとわかりにくいとは思いますが、ご容赦ください。

アカウント情報

さくらのVPSを契約して、次のようなアカウントが発行されたとします。

[サーバ基本情報]
IPアドレス:133.242.123.45

[管理用ユーザ]
ユーザ名 :admin
初期パスワード:abcdefg

SSH接続

Tera Termを使う。
http://ttssh2.sourceforge.jp/

Tera Termを起動して、次の画面のように133.242.123.45に接続。
SSHのデフォルトポートは22番なのでポート番号は変更不要。
teraterm1

username:admin
pass:abcdefg

と入力して、SSHで接続する。
teraterm2
teraterm3

node.jsのインストール

teraterm4

node.jsファイルのコピー

http://nodejs.org/download/
でSource Codeのリンクアドレスのコピーをしておく(今回はバイナリーではない)。
例:http://nodejs.org/dist/v0.10.8/node-v0.10.8.tar.gz

Tera Termで次のように入力。

これで、ソースファイルがコピーされたはず。

lsでファイルがコピーされたことを確認する。

ファイルの展開

tarをgzipで固めている状態なので、展開(解凍)する必要がある。
tarに、zxfというコマンドオプションを付けることによって、gzipを展開する。

lsで解凍されているのを確認する。
青色の文字はディレクトリ。
白色の文字はファイル。
赤色は圧縮されたファイル?(未確認)

解凍したディレクトリに移動する。

README.mdを読む

lessを使うとテキストを表示できる。

READMEの中には、必要なものやインストール方法が記されている。

Evented I/O for V8 javascript. [![Build Status](https://secure.travis-ci.org/joyent/node.png)](http://travis-ci.org/joyent/node)
===

### To build:

Prerequisites (Unix only):

* GCC 4.2 or newer
* Python 2.6 or 2.7
* GNU Make 3.81 or newer
* libexecinfo (FreeBSD and OpenBSD only)

Unix/Macintosh:

./configure
make
make install

If your python binary is in a non-standard location or has a
non-standard name, run the following instead:

export PYTHON=/path/to/python
$PYTHON ./configure
make
make install

Windows:

vcbuild.bat

### To run the tests:

Unix/Macintosh:

make test

Windows:

vcbuild.bat test

### To build the documentation:

make doc

### To read the documentation:

man doc/node.1

Resources for Newcomers

– [The Wiki](https://github.com/joyent/node/wiki)
– [nodejs.org](http://nodejs.org/)
– [how to install node.js and npm (node package manager)](http://joyeur.com/2010/12/10/installing-node-and-npm/)
– [list of modules](https://github.com/joyent/node/wiki/modules)
– [searching the npm registry](http://npmjs.org/)
– [list of companies and projects using node](https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node)
– [node.js mailing list](http://groups.google.com/group/nodejs)
– irc chatroom, [#node.js on freenode.net](http://webchat.freenode.net?channels=node.js&uio=d4)
– [community](https://github.com/joyent/node/wiki/Community)
– [contributing](https://github.com/joyent/node/wiki/Contributing)
– [big list of all the helpful wiki pages](https://github.com/joyent/node/wiki/_pages)

less上で操作を間違えてよくわかんなくなったら「q」(quit)。

ファイルの確認

必要なものが入っているかの確認。
README.mdによると、次のものが必要。

GCC 4.1 or newer
Python 2.6 or 2.7
GNU Make 3.81 or newer

gccのインストール確認

gcc-4.4.7-3.el6.x86_64と返えしたので入ってることを確認できた。

pythonのインストール確認

(python -vとした場合は、quit()で抜ける)

Python 2.6.6と返したので入ってることを確認できた。

GNU Makeはまあ入っているだろう、ということで飛ばした。

インストール(Unixの場合)

README.mdによると、次の手順。

./configure
make
make install

インストールの準備

ソースからバイナリーを作る。

(5分くらいかかった)

インストール

インストール完了!

動作確認

FTPでアップロードして、実行したら動作確認ができた。

FTPでアクセス

SFTPを使えば、FTPソフトでもディレクトリを閲覧、書き込み、消去できる。
ここでは、FileZillaを使った。
nodeftp

foreverで永続的に起動する。

PC上と同じように起動できたのは良いんだけど、コンソールを落とすと終了しちゃうんじゃ困る。ウェブサービスとしては起動しっぱなしじゃなきゃ、意味がない。
そんな目的にはforeverを使うと良いらしい。

参考:foreverを使ったnode.jsのサービス運用 | なんてこったいブログ
http://nantekottai.com/2011/08/15/node-js-based-service-with-forever/

foreverのインストール

app.jsを永続的に起動。

永続的に起動したアプリ一覧を表示する。

一覧の0番目のアプリを終了させる。

メモ

バージョンを指定してインストール

Unixコマンド

  • mkdir ディレクトリを作る
  • ls ディレクトリ一覧を表示
  • cd ディレクトリ移動
  • rm ファイルの消去
  • rm -r ディレクトリを消去(全ファイルに対して確認がある)
  • rm -rf ディレクトリを強制消去(確認なし)
  • which 場所確認(パスの通っているアプリの場所を表示)

hogeディレクトリを作る

ファイルの消去

とすると、次のような確認が出る。

続けて、yと入力し、Enterを押すと、削除される。

ディレクトリの消去

全部消していいか確認が出る。

ディレクトリの強制消去

とすると、強制的に消せる。確認しない。

node場所確認

パスの通っているアプリのインストールされた場所を表示