[b]Lua编译进nginx的方法[/b]
[b]1、[/b]先安装lua-jit,网上说也可以下载lua,不过lua-jit效率比较高,地址:[url=http://luajit.org/download.html]http://luajit.org/download.html[/url]
我下的是2.0.3版本的
下载解压后,直接make && make install就可以了,默认安装在/usr/local目录
[b]2、[/b]下载ngx devel包
地址:[url=https://github.com/simpl/ngx_devel_kit/tags]https://github.com/simpl/ngx_devel_kit/tags[/url]
注意,这个是一个nginx的扩展,不需要编译
[b]3、[/b]下载nginx的lua扩展
[url=https://github.com/openresty/lua-nginx-module/archive/v0.9.8.tar.gz]https://github.com/openresty/lua-nginx-module/archive/v0.9.8.tar.gz[/url]
[b]4、[/b]导出两个变量
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-<VERSION>
其中LUAJIT表示luajit的安装目录
[b]5、[/b]接下来是编译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脚本吧