CentOS7 node.jsのインストールと設定

2018.5.9 (水)

できるだけプロダクト環境というか実践に耐えうるnodeサーバーの構築方法です。バージョンアップと開発がやたらにスピーディーなのでプロダクトって何のことやらという話でもあるのですが。ちなみに2018-05-09現在のものになります。

version

Node.js 8.11.1を選びます。
リリース一覧ではLTSの最新になっているからです。どこからダウンロードすればいいのか探してみたら、
http://nodejs.org/dist/
ここらでダウンロードできそうです。

ソースの入手とインストール (最新版をバイナリからインストール)

もう、どれとってくればいいんだかわからんです。
https://nodejs.org/download/release/v8.11.1/
よくわからんので、

node-v8.11.1.tar.gz

CentOS7なので、この辺りですかね。
17.1MBもあるんですね。でかいよ。

sudoかrootでやった方がたぶん無難です。

cd /usr/local/src/
wget https://nodejs.org/download/release/v8.11.1/node-v8.11.1.tar.gz
tar xvf node-v8.11.1.tar.gz
cd node-v8.11.1
./configure
make
make install 

makeでやたら時間かかります。(いや、長すぎるだろ。)
終わったら、バージョン確認。

node -v
v8.11.1

node.jsの起動と確認

対話環境を立ち上げる

$ node
> console.log("hello world");
hello world
undefined
> .help
> .exit

うごきました。

グローバルでアクセスできるようにする

結局localでの実験ばっかりの情報が多くてプロダクトに耐えうる設定情報ってのは世間にはないわけですよ。
グローバルIPアドレスが123.456.789.xxxで3000ポートでアクセスした場合はこんな感じのコードになります。Firewallとかiptablesとかの設定はまた別項で。(とりあえずは切っておけばいいです。)

// app.js
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(3000);

console.log('Server running at http://123.456.789.xxx:3000/');

このファイルをnodejsで叩きます。

node app.js

http://123.456.789.xxx:3000にアクセスすると「Hello World」が表示される仕組み。port:80を使ってやる際に既存の普通のApacheの設定とかかぶるので、またいろいろ設定が必要です。


http://takafumi-s.hatenablog.com/entry/2015/05/04/122600
https://nodejs.org/en/
centos7で標準のsystemdを使いnode.js製サーバーをデーモン化する
node.jsで動いているアプリケーションにサブドメインを割り当てたい