DRYな備忘録

Don't Repeat Yourself.

さくらVPS(Debian)にnode.js入れてみた [node.js][npm][express][ejs]

【【【【 WARNING 】】】】

この記事は理解の浅いときに書かれたエントリです。

node,npm,expressのバージョンが異なるので、正しくインストールされないです。

あと、無駄にapacheのドキュメントルートで行ってます。

正しい記事はこちら


 

【問題】

前回記事までで(php)ウェブサーバとして整ったVPSに

今(今更?)話題のnode.jsをインストールしてみたい。

【目標】

node.jsをインストールする

npmで管理する

expressでプロジェクトをつくる

テンプレートエンジンはejs

【とりあえずの記録】

$ apt-get install sudo
$ sudo apt-get install build-essential  libssl-dev  curl
$ cd /var/www       #ウェブドキュメントルート
$ wget http://nodejs.org/dist/node-v0.4.12.tar.gz
$ gzip -dc node-v0.4.12.tar.gz  | tar  xvf -
$ cd node-v0.4.12
$ ./configure
$ make
$ sudo make install
$ vi .npmrc

1
2 root = ~/.npm/libraries
3 binroot = ~/.npm/bin
4 manroot = ~/.npm/man
5

:wq

$ curl  http://npmjs.org/install.sh  |  sh
$ cd /var/www/node-v0.4.12
$ npm -g install express
$ npm -g install ejs

プロジェクトをつくっていく

$ cd /var/www/node-v0.4.12
$ express -t ejs  testprojecthogehoge
$ cd testprojecthogehoge
$ node app.js

以下のように叱られる

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
Error: Cannot find module 'express'
    at Function._resolveFilename (module.js:326:11)
    at Function._load (module.js:271:25)
    at require (module.js:355:19)
    at Object. (/var/www/node-v0.4.12/huga/app.js:6:15)
    at Module._compile (module.js:411:26)
    at Object..js (module.js:417:10)
    at Module.load (module.js:343:31)
    at Function._load (module.js:302:12)
    at Array. (module.js:430:10)
    at EventEmitter._tickCallback (node.js:126:26)

なので、しょーがないから

$ cd testprojecthogehoge
$ npm install express

として

$ node app.js

Express server listening on port 3000 in development mode

となって動いてるようなので、

http://[ぼくのどめいん名]:3000 に訪問すると、ブラウザ上で

Express
500 Error: Cannot find module 'ejs'

と叱られる。しょーがないから

$ cd testprojecthogehoge
$ npm install ejs

として、もう一回

$ node app.js

をすると、ブラウザ上で

Express

Welcome to Express

というリアクションが得られて、とりあえずほっとした

【雑感】

・ -g してるのになんで毎回プロジェクトディレクトリの中でinstallせにゃならんのか

・ build-essentialとか、libssl-devが何なのか、未だ不明

・ makeコマンドって何ぞ