taoqilin 2019-06-13
Lua编译进nginx的方法
1、先安装lua-jit,网上说也可以下载lua,不过lua-jit效率比较高,地址:http://luajit.org/download.html
我下的是2.0.3版本的
下载解压后,直接make && make install就可以了,默认安装在/usr/local目录
2、下载ngx devel包
地址:https://github.com/simpl/ngx_devel_kit/tags
注意,这个是一个nginx的扩展,不需要编译
3、下载nginx的lua扩展
https://github.com/openresty/lua-nginx-module/archive/v0.9.8.tar.gz
4、导出两个变量
代码如下:
export LUAJIT_LIB=/usr/local/lib export LUAJIT_INC=/usr/local/include/luajit-<VERSION>
其中LUAJIT表示luajit的安装目录
5、接下来是编译nginx了
代码如下:
./configure --prefix=/opt/nginxrw --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --add-module=/data/src/lua-nginx-module-0.9.8 --add-module=/data/src/ngx_devel_kit-0.2.19
其中两个--add-module表示lua的nginx模块和ngx devel包扩展
启动时,可能报某个库的路径找不到:
代码如下:
sbin/nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
用ldd命令可以看下某个二进制文件的引用的动态库
解决办法:
代码如下:
echo "/usr/local/lib" >> /etc/ld.so.conf.d/usr_local_lib.conf ldconfig
ok,是不是编译成功了呢,开始编写lua脚本吧