Nov 4, 2013
Unity → Edit → Project Setting → Editor
Asset Serialization
Mode
Force Text
サーバ起動時にnodeで自分が作った.jsを起動する
1./etc/init.d/nodeを作る
vi /etc/init.d/node
#!/bin/sh # # chkconfig: 35 99 99 # description: Node.js /MyDirectory/app.js # . /etc/rc.d/init.d/functions user="root" # 実行するユーザー nodejs="/root/.nvm/v0.6.12/bin/node" # Node.jsのパス rootdir="/MyDirectory/" #app.jsがあるパス server="$rootdir/app.js" # サーバへのパス logfile="/var/log/node/app.log" # ログファイルのパス lockfile="/var/lock/subsys/node" # ロックファイルへのパス start() { if [ ! -f $lockfile ] ; then echo -n $"Starting $server: " runuser -l "$user" -c "nohup $nodejs $server >> $logfile &" && echo_success || echo_failure RETVAL=$? echo [ $RETVAL -eq 0 ] && touch $lockfile else echo "$server is locked." RETVAL=1 fi } stop() { echo -n $"Stopping $server: " pid=`ps -aefw | grep "$nodejs $server" | grep -v " grep " | awk '{print $2}'` kill -9 $pid > /dev/null 2>&1 && echo_success || echo_failure RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f $lockfile } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" RETVAL=1 esac exit $RETVAL
2.chkconfigに登録する
- chkconfig --add node
- chkconfig node on
※rebootすると/etc/init.d/node startされていると思います。
前の記事でapp.jsが起動できない時
※下のものに差し替えると動くと思います。
configureがちょっとずつ変わっているみたいです。
/** * Module dependencies. */ var express = require('express'); var app = module.exports = express.createServer(); // Configuration app.configure(function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser()); app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] })); app.use(app.router); app.use(express.static(__dirname + '/public')); app.use(express.logger()); }); app.configure('development', function(){ app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); app.configure('production', function(){ app.use(express.errorHandler()); }); // Routes app.get('/', function(req, res){ res.render('index', { locals: { title: 'Express' } }); }); // Only listen on $ node app.js if (!module.parent) { app.listen(3000); console.log("Express server listening on port %d", app.address().port) }
AmazonAMI64bitにnode.js v0.6.12とnpmでexpressとかをインストールするまで
※書きかけで置いていたので、追記&修正しました。
1.yum
※インストールに必要なライブラリを入れる
- yum install gcc.x86_64 gcc-c++.x86_64 libgcc.x86_64 gcc-gfortran.x86_64 gcc-java.x86_64 gcc-objc.x86_64 gcc-objc++.x86_64
- yum install git.x86_64
- yum install openssl-devel.x86_64
- yum install make.x86_64
2.nvm
※nodeのバージョン管理ツール
- git clone git://github.com/creationix/nvm.git ~/.nvm
- . ~/.nvm/nvm.sh
- vi ~/.bashrc
. ~/.nvm/nvm.sh
3.node.js
- nvm install v0.6.12
※安定版 開発版はv0.7.5
foreverが使えないので注意
4.npm
- npm install socket.io -g
※通信用(Server) - npm install socket.io-client -g
※通信用(Client) - npm install express -g
※テンプレート - npm install ejs -g
※テンプレート - npm install jsdom -g
※jQuery使えるようにするツール - npm install forever -g
※落ちても再起動してくれるツール - npm install node-dev
※.jsのソースが変更された時、再起動してくれるツール
5.bashrc
- ユーザにnodeを使えるようにPATHを張る
vi ~/.bashrc
if [ -s ~/.nvm/nvm.sh ]; then
. ~/.nvm/nvm.sh
nvm alias default 0.6 > /dev/null
nvm use v0.6.12
fi
PATH="$PATH":/root/.nvm/v0.6.12/bin:/root/node_modules/express/bin
※ /root/.nvm/v0.6.12/binはnodeがあるところ
/root/node_modules/express/binはexpressがあるところです
テスト機のrootでほいほい作ってしまったので/root/になっています
6.express
- 作成したいディレクトリに移動
- express -t ejs sample
※sampleを作る - cd tmmorpg
- npmモジュールをリンクさせる
※linkでエラーの時はinstallする。 - npm link socket.io
npm link express
npm link ejs
npm link jsdom
npm link socket.io-client
npm link forever
npm link node-dev
7.テスト起動
※sampleディレクトリのapp.jsを実行
- cd sample
- node app.js
※http://localhost:3000/
にアクセスすると、views/index.ejsが帰ってくるはず
node-dev app.js
だと、起動中にapp.jsの中身を変えると、nodeが再起動するはず
forever start app.js
だと、落ちても勝手に再起動されるはず