CentOS6.4にNode.jsとExpressを導入して、サンプルページを起動するまでにやったことをメモとしてのこします。
とりあえず動かすだけなので特殊な訓練を受けたスタッフがrootで実行しています。
良い子はマネしないでください。
Node.jsのインストール
node.jsをyumでインストールする(centos6.5)
こちらの記事を参考にインストール。
私の環境には既にg++が入っていたのでインストールを省略。
- リポジトリを追加します
# yum install epel-release
- node.jsをインストールします
# yum install nodejs npm --enablerepo=epel
- npmをインストールします
# yum install -y npm --enablerepo=epel
- プロジェクトフォルダを作成します
# mkdir プロジェクトディレクトリ; cd $_
- node.jsのプロジェクトファイルを作成します
# npm init
name: (Hogehoge) Hogehoge
Sorry, name can no longer contain capital letters.
name: (Hogehoge) hogehoge
version: (1.0.0)
description: Fugafuga
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
※nameに大文字は使えないそうです。
サンプルページを表示するだけが目的なので、上記のように適当なカンジで入力。
- プロジェクトファイル(package.json)の確認
# ls
package.json があることを確認します。
Expressのインストール
Expressはnpmをつかってインストールします。
上で作ったpackage.jsonが存在するディレクトリで作業します。
- Expressをインストール
# npm install express --save
- Expressで利用するディレクトリやファイルを作る
# express -e ExpressSample
- ディレクトリやファイルが作られているか確認する
# ls
app.js bin package.json public routes views
サンプルの起動
- app.jsを実行する
# node app.js
module.js:340
throw err;
^
Error: Cannot find module 'serve-favicon'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/var/www/html/Hogehoge/app.js:3:15)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
無事、怒られる。
そもそも
# node app.js
ではなく、
# node bin/www
で実行できるらしい。
- 見つからないモジュールがあるようなので、不足しているモジュールをインストールする
まずは不足モジュールを見つけてくれる便利なヤツをインストール
# npm install npm-install-missing -g
そして不足モジュールをインストール
# npm-install-missing
- 改めてサンプルを起動
# node bin/www
GET / 200 40.421 ms - 207
GET /stylesheets/style.css 200 11.732 ms - 111
無事、起動。
デフォルトではlocalhost:3000で起動するようです。
ブラウザで表示してみる
上の手順はあくまでサンプルページの起動でした。
他の環境からアクセスしてページを表示させてあげるには、httpサーバを利用する必要があります。
特殊なことはなにもなく
- httpdのインストール
- httpd.confにVirtualHostを追加
- VertulHostでポート80へのアクセスを127.0.0.1:3000へプロクシ
- httpdの起動
とかやってあげれば適当に見れるはずです。
※iptablesを設定している場合は、ちゃんと穴をあけてください。
※このあたりは別にnginxでもApacheでもアクセスを受け付けることができればなんでもよい。(今回は表示するだけなので)
- ブラウザでアクセスしてみる
node.js+Expressの環境を構築したサーバのIPアドレスをブラウザに入力する。
きっと
Express
Welcome to Express
って表示されるはず。
以上。