node.jsを動作させる環境を作ったよ
CGIを今まで作ったことが無くて、でも何かを読んだときのおぼろげな記憶は残っていて、
それにはコマンド実行用のユーザを作って、そのユーザで動作させると書いてありました。
Apacheなどは最初からそうなってるとか見たような気がしないでもないですが。
とかまあ、早い話がnginx本の最初を読みながらnode.js実行用のユーザ作ったよって話です。何が早い話なのか……
環境:さくらのVPS 512 / Ubuntu 10.04.3 LTS 64bit
ユーザを作る
$ sudo mkdir -p /opt/node $ sudo useradd --shell /usr/sbin/nologin --home /opt/node $ sudo chown node:node /opt/node
最初にnodeユーザのためのディレクトリを作って、その後ユーザ追加、ディレクトリの所有者を変更、としています。
あとからログインしようと思ったら出来なくて、そりゃ当たり前でシェルにnologinしていしてるんだからログインできないよね、
ということで変更を。
$ sudo usermod --shell /bin/bash node
$ sudo passwd node
nodeユーザのシェルを変更後、パスワードの設定。
ユーザの切り替えと初期設定
$ su - node Password: $ vi .bashrc
.bashrcを作ります。内容は以下のように。
alias ls='ls --color=auto' NVM=$HOME/nvm/nvm.sh if [ -f "$NVM" ] then source "$NVM" fi
実はこれだけだと読み込まれなくて、.bash_profileを作る必要があるんですが、ここではとりあえずこのまま。
nvmのインストール
$ git clone https://github.com/creationix/nvm.git ./nvm $ logout $ su - node Password: $ nvm ls nvm? 知らんなあ的メッセージ
というわけで.bash_profileが必要だと気付いたのでMacと同じく.bashrcを読み込むだけのものを作ります。
$ vi .bash_profile
内容は以下のように。-fじゃない方が良いんだろうけど、まあいいや。
if [ -f .bashrc ] then source .bashrc fi
これで再度ログインし直して、nvm lsが使えることを確認。あとは
$ nvm install v0.6.7 ... $ nvm use v0.6.7
で使えます。nvm defaultだっけ?を使ってログイン直後から使えるようにしておいた方が良いのかもしれません。
Hello, World!
$ node -e 'console.log("Hello, World!")'
Hello, World!
あとMongoDB用のユーザも作ってあげればいいのかなー。
でも本来はここからなんだよね……
追記:
.npmrcの設定を忘れてた。
$ su - node
Password:
$ touch ~/.npmrc
$ vi .npmrc
内容は以下。
root = $HOME/.npm/libraries binroot = $HOME/.npm/bin manroot = $HOME/.npm/man