【Node.js】MacにTower.jsとMongoDBをインストールしてみた
Tower.jsはnode.jsで使えるモジュールがいっぱい入ってるパッケージです。例えば、node.jsのsocket.ioモジュールでチャットを作ります。CoffeeScriptが使いたいのでモジュールをインストールします。あとそれからそれから、、、というのがだいたい入ってます。
僕はこんなに使いこなせるかわかりませんが、とりあえず入れてみて動かしてみたいと思います。参考にさせていただいたのは下記のサイト。
Tower.jsはnpmにはいっているのでインストールは簡単です。
Tower.jsインストール手順
// 1.-gオプションを付けてnpmからTower.jsをインストール
$ npm install -g tower
// 2.$ tower new [フォルダー名]
$ tower new sample
// 3.sampleフォルダーに移動
$ cd sample
// 4.インストールします。
$ npm install
// 5.ターミナルを別タブで開いてMongoDBを起動
$ mongod
// 6.ターミナルのタブを最初に戻して起動します。
$ node server.js
さて、これで動くはずみたいですが、僕のはこんなアラートが出ました。
[Sun, 01 Jul 2012 11:20:01 GMT] INFO Tower development server listening on port 3000
[ERROR] Error
Error: failed to connect to [127.0.0.1:27017]
なるほどMongoDBがいるみたいですね。既に入ってる方は無事に起動したと思います。僕はMongoDBは入ってないのでインストールします。
MongoDBをインストールする手順
黒い画面は苦手なので先人の知恵を拝借させていただきました。
参考サイト
http://d.hatena.ne.jp/babie/20100601/1275420266
しかし、途中の起動のところで下記のエラーが出ました。
$ /opt/local/bin/mongod --dbpath /var/lib/mongodb --logpath /var/log/mongodb.log [/opt/local/var/db/mongodb]
all output going to: /var/log/mongodb.log
can't open [/var/log/mongodb.log] for log file: errno:13 Permission denied
Sun Jul 1 20:04:18 dbexit:
Sun Jul 1 20:04:18 shutdown: going to close listening sockets...
Sun Jul 1 20:04:18 shutdown: going to flush diaglog...
Sun Jul 1 20:04:18 shutdown: going to close sockets...
Sun Jul 1 20:04:18 shutdown: waiting for fs preallocator...
Sun Jul 1 20:04:18 shutdown: lock for final commit...
Sun Jul 1 20:04:18 shutdown: final commit...
Sun Jul 1 20:04:18 shutdown: closing all files...
Sun Jul 1 20:04:18 closeAllFiles() finished
Sun Jul 1 20:04:18 dbexit: really exiting now
errno:13 Permission denied
おそらく、アクセス権限がない。というアラートなんでしょうね。
アクセス権を変えるchownやchmodを使ってみたり、MacOSのシステム環境設定でmongodさんユーザーを管理者で追加してみたり、
色々試してみたんですが上手く行かず・・・。そこでもう一度ググり直した結果、下記の先人の知恵を発見!
http://d.hatena.ne.jp/hidesuke/20120109/1326095198
ここには、「mongodbを起動するときに –dpath オプションで任意の場所を指定できるけど、初心者は色気を出さないほうがいいんじゃないかな。」まさかの色気!笑 初心者なんで色気は出しません!ということでまとめると下記の手順です。
// 1.brewパッケージマネージャーをアップデートします。
$ brew update
// 2.MongoDBをインストール
$ brew install mongodb
// 3.MongoDB使うディレクトリを作成
// (ひょっとしたらできているかもしれません。)
$ sudo mkdir -p /data/db/
// 4.アクセス権限の変更、自分にしておく
$ sudo chown `id -u` /data/db
// 5.MongoDB起動。
$ mongod
// 6.シェルでアクセスするには、ターミナルの別タブを開いて
$ mongo
// 7.動いてるか確認
> new Date();
ISODate("2012-07-01T11:16:13.670Z")
さすが噂のMongoDB、JavaScriptが認識しました。さて、Tower.jsを動かしてみるだけで道のりが遠かった・・・。では、Tower.jsを起動してみます。
$ node server.js
info - socket.io started
[Sun, 01 Jul 2012 11:23:30 GMT] INFO Tower development server listening on port 3000
無事に起動しました!が、名前が変わってるはずの場所がusernameのままで、クリックしても、 No path matches /example@example.com
と文字が出るだけ・・・。うーん、、何があかんねやろ・・・。何方様か教えて頂けませんでしょうか(T-T) まぁでも一応Tower.jsというのは動きましたので、また解決策が見つかれば報告します。