Posted at

LuaとNginxとRedisについて

More than 3 years have passed since last update.


NginxでLuaを使う


LuaJITのインストール


本体インストール

こんな感じ。

wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz

tar vxzf LuaJIT-2.0.2.tar.gz
cd LuaJIT-2.0.2
make;sudo make install;


LuaRocksインストール

cpanmみたいな感じの物。

sudo apt-get install zip

cd /usr/local/src
wget https://nodeload.github.com/keplerproject/luarocks/zip/master
mv master master.zip
cd luarocks-master
# 適当に環境変数は設定する
./configure --with-lua=/usr/local/bin/luajit --with-lua-lib=/usr/local/lib/ --with-lua-include=/usr/local/include/luajit-2.0
make
sudo make install
# LuaRocks内のShebangが正しくLuaJITを参照しないので置換する
sudo perl -pi -e 's|/usr/local/bin/luajit/bin/lua|/usr/local/bin/luajit|' /usr/local/bin/luarocks


Nginxのインストール

モジュールを落としてきて関連づけさせてインストールする。

git clone https://github.com/chaoslawful/lua-nginx-module.git

# 適当に環境変数でLuaJITの位置を指定してあげる
# 適当なNginxのソースに対してconfigureを実行する
# UbuntuだとZlibとかPCREが要求されるので適当に入れておくなり、指定するなり…
LUAJIT_INC=/usr/local/include/luajit-2.0 LUAJIT_LIB=/usr/local/lib/ ./configure --add-module=/usr/local/src/lua-nginx-module
make; sudo make install


LuaからRedisを使うにあたって


インストール

Redisはインストールされているとします。

LuaRedisのモジュールを使用する。

LuaRocksは入っているのでインストール出来る。

# 適宜sudoする必要があるかも

luarocks install redis-lua


確認する

LuaJITのreplから入ってる事の確認をする。

r=require("redis");

c=r.connect("localhost" , 6379);
c:set("hoge" , 1);
print(c:get("hoge"));
-- 1