nginx整合lua
1.安装LuaJIT
tar xzvf LuaJIT-2.0.2.tar.gz
echo “/usr/local/luajit/lib” > /etc/ld.so.conf.d/usr_local_luajit_lib.conf ldconfig
#配置环境变量
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0
2.安装NDK与luaModule
wget -c https://github.com/simpl/ngx_devel_kit/archive/v0.2.18.tar.gz
wget -c https://github.com/chaoslawful/lua-nginx-module/archive/v0.8.6.tar.gz
tar xzvf v0.2.18
wget -c https://github.com/chaoslawful/lua-nginx-module/archive/v0.8.6.tar.gz
tar xzvf v0.2.18
tar xzvf v0.8.6
3.重新编译安装Nginx
wget -c http://nginx.org/download/nginx-1.4.2.tar.gz
tar xzvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
tar xzvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
#./configure –add-module=../ngx_devel_kit-0.2.18/ –add-module=../lua-nginx-module-0.8.6/
./configure –add-module=../ngx_devel_kit-0.2.18/ –add-module=../lua-nginx-module-0.8.6/ –with-ld-opt=”-Wl,-rpath,$LUAJIT_LIB”
make
make install
4.测试安装
nginx -t
常见错误:
./nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
解决方法:
在 Nginx 编译时,需要指定 RPATH,加入下面选项即可:
./configure –with-ld-opt=”-Wl,-rpath,$LUAJIT_LIB”
或者
export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
也可以直接用 ldd 命令验证是否链了 libluajit-5.1 这样的 .so 文件,例如:
ldd nginx | grep lua
libluajit-5.1.so.2 => /usr/local/luajit/lib/libluajit-5.1.so.2 (0x00007f48e408b000)
5.环境变量配置
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0
export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
6.测试
在nginx.conf中添加配置
location /lua {
default_type ‘text/plain’;
content_by_lua ‘ngx.say(“hello, lua”)’;
}
default_type ‘text/plain’;
content_by_lua ‘ngx.say(“hello, lua”)’;
}
访问 http://localhost:8080/lua 返回
则表示成功。
1 |
hello, lua |
则表示成功。
©版权声明:本文为【翰林小院】(huhanlin.com)原创文章,转载时请注明出处!
发表评论