luvitを使ってLuaでWebアプリ!
luvitはNode.jsの機能をLuaで実現しようみたいな?
もののようです。(まだよくわかっていない...)
試しにインストールとブラウザ上で"Hello world"を
表示するところまでやってみます。
最初 Mac OS X 10.6.8 に入れたのですが
luaL_newstate has failed
が出て実行できませんでした。。
解決策を調べて色々と試してはみたのですが
力不足で解決できず、諦めましたw
環境
CentOS 6.2
luvit 0.3.1-61-g95c2503
インストール
git clone https://github.com/luvit/luvit.git
cd luvit
make
make install
※予めLua, LuaJITを入れておく必要はありません。
コーディング
githubから落としてきたなかにexamplesがあって
実装例が豊富にあるので参考になります。
今回はブラウザで表示するだけなので
luvit/examples/http-server.lua
を使用します。
-- http-server.lua local http = require("http") http.createServer(function (req, res) local body = "Hello world\n" res:writeHead(200, { ["Content-Type"] = "text/plain", ["Content-Length"] = #body }) res:finish(body) end):listen(8080) print("Server listening at http://localhost:8080/")
このサンプルファイルを実行して
luvit http-server.lua
"http://localhost:8080/"にアクセスするだけ。簡単!
localhostではなくIPアドレスを指定する方法
検索しても見つからなかったのでソースコードを調べてみました。
"luvit/lib/luvit/net.lua"
を見るとlisten()の第二引数に指定でいけそうです。
-- my-http-server.lua local http = require("http") http.createServer(function (req, res) local body = "Hello world\n" res:writeHead(200, { ["Content-Type"] = "text/plain", ["Content-Length"] = #body }) res:finish(body) end):listen(8080, "192.168.212.197") print("Server listening at http://localhost:8080/")
実行!
luvit my-http-server.lua
ブラウザで"http://192.168.212.197:8080/"にアクセス
Hello world
できた!