node¶
- サーバサイド言語nodeおよびnode.jsの構築に関するページです。
- 下記日本語コミュニティが非常に充実しています。
http://nodejs.jp/
前提条件¶
- 本番可動サーバとしてRHEL/CentOS6.xを想定します。
- サービスとしての起動を意識し、デーモン可動を想定します。
- デバッグモードとして自動リスタートツールを導入します。
- 新規環境のため、ベースのみ構成からの構築を想定します。
- 今回、バージョンが前後すると不都合なのでnaveは導入しません。
準備¶
- git、openssl(githubでのsshに使う)をインストールします。
# yum install git openssl openssl-devel
- コンパイルに必要パッケージの取得
- pythonは2.6~2.7にバージョンの縛りがあります。
# yum install python gcc-c++ make
- リバースプロキシを行う場合、httpdも取得。
ただし、websockが特殊な実装になるので、利用する場合は注意。
(apache→nodeではなく、node→apacheの順にリバースプロキシする)# yum install httpd mod_ssl
nodeのインストール¶
- 次のサイトからソースコード「Source Code」を取得します。
- http://nodejs.jp/
- 少しわかりにくいですが、ドキュメント部分から配布元本家に行けます。
- ソースコードを作業ディレクトリにダウンロード、展開します。
# wget http://nodejs.org/dist/v0.11.7/node-v0.11.7.tar.gz # tar xzf node-v0.11.7.tar.gz
- コンパイルします。
- ここでは、「/opt/node」以下に実装するものとします。
# cd node-v0.11.7 # ./configure --prefix=/opt/node # make # make install
- 環境変数を通します。
# vi ~/.bashrc ------------------------------------------------------ # 末尾に追加 export PATH=$PATH:/opt/node/bin
- 設定ファイルの適用
- 違うユーザやcronは別途指定する必要があるので注意すること。
# source ~/.bashrc
- 違うユーザやcronは別途指定する必要があるので注意すること。
- 動作確認(バージョンが返ってくること)
# node -v v0.11.7
拡張のインストール¶
- 「-g」でプロジェクト単体ではなくnode全体にインストールを行う。
- デーモン化モジュールのインストール
# npm install -g forever
- オートリスタート機能のインストール
# npm install -g node-dev
- Express機能のインストール
# npm install -g express
プロジェクトの作成¶
- 次のコマンドを実行する。
- あらかじめディレクトリを作っておく必要はない。
# express /usr/local/project-name
- プロジェクトが作成されたらモジュールをインストールする。
# cd /usr/local/project-name # npm install -d
プロジェクトの実行¶
- とりあえず動作させてみる。
# node app.js Express server listening on port 3000
- 3000ポートでwebサーバが動作している。
- 中断するにはctrl+c
- ただし、この実行はコンソールを閉じると終了してしまう。
- 実機コンソール上やforeverを使うことで解決することは出来る。
- foreverはコマンドが独自だが簡単には以下。(init.d相当?)
- startしておけば、プロセスがダウンしても再起動してくれる。
- initスクリプトに起動コードを各運用でdaemon化が簡単にできる。
- プロセス管理状況をログ出力できる。(-o/-eオプション)
# forever start app.js # forever stop app.js # forever restart app.js # forever list # forever stapall
- jsコンテンツの更新時はリロードが必要(html/cssやjadeは必要ない)
- 開発・デバッグ時など、頻繁にjsを書き換える際にはnode-devを使う。
- nodeコマンドの互換。jsに更新が発生した際に、オートリロードしてくれる。
# node-dev app.js
GitHubへの公開鍵登録¶
- gitから随時最新のコードを同期するための登録を行います。
- コミット時に登録されるユーザ名とメールアドレスを登録します。
# git config --global user.name demo # git config --global user.email demo@example.com (確認) # git config --global --list user.name=demo user.email=demo@example.com
- ssh公開鍵を作成します。パスフレーズは付けないので、応答にはすべてENTER。
# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is:
- 公開鍵をコピーします。
# cd ~/.ssh # cat id_rsa.pub ssh-rsa ~(略) ~ユーザ名@FQDN
- GitHubの「Profile」→「SSH Keys」→「Add SSH Keys」へ進む。
- Title: 登録するサーバの名称、用途など
- Key: 先ほどコピーした公開鍵の内容
- pushとpullがパス無しで正常に行えることを確認します。
# cd /usr/local/project-name # git pull # git push
¶
¶