nginx静态编译lua[jit]
2013-12-24 15:51
316 查看
原淘宝工程师清无(王晓哲)和春来(章亦春)开发的lua nginx模块非常强大。现在网上的安装方法主要都是动态编译lua的,但是总有种种原因动态编译有诸多不便,这时候就需要将luajit静态编译进nginx里
第一种方法就是直接使用 openresty,并利用openresty提供的方式静态编译luajit
安装nginx nginx_lua_module luajit nginx_dev_kit步骤略
第二种方法就是在nginx configure执行过后,修改生成的objs/Makefile文件
在第一个target “objs/nginx: objs/src/core/nginx.o \”下面,添加luajit的静态文件
把
-Wl,-E -lpthread -lcrypt -L /xxx/xxx/lua/libs -lluajit-5.1 -lm -ldl /xxx/xxx/pcre-8.02/.libs/libpcre.a -lssl -lcrypto -ldl -lz
改成
-Wl,-E -lpthread -lcrypt /xxx/xxx/libluajit-5.1.a -lm -ldl /xxx/xxx/pcre-8.02/.libs/libpcre.a -lssl -lcrypto -ldl -lz
改完后 再执行 make && make install 就行了
我们用ldd nginx命令可以看到,已经依赖luajit动态链接库了
第三种方法
移除luajit的so文件,只保留.a文件,这样ld在连接时找不到so文件,就只好链接.a文件了。
这样改了之后,还需要修nginx_lua的config文件,否则configure会失败,失败原因是gcc需要-ldl参数
修改nginx_lua的config
将
ngx_feature_libs="-R$LUAJIT_LIB -L$LUAJIT_LIB -lluajit-5.1 -lm"
改为
ngx_feature_libs="-R$LUAJIT_LIB -L$LUAJIT_LIB -lluajit-5.1 -lm -ldl"
即可
相应位置的ngx_feature_libs 都需要添加-ldl这个参数
改完后,重新编译nginx,就可以成功了。
第一种方法就是直接使用 openresty,并利用openresty提供的方式静态编译luajit
安装nginx nginx_lua_module luajit nginx_dev_kit步骤略
第二种方法就是在nginx configure执行过后,修改生成的objs/Makefile文件
在第一个target “objs/nginx: objs/src/core/nginx.o \”下面,添加luajit的静态文件
把
-Wl,-E -lpthread -lcrypt -L /xxx/xxx/lua/libs -lluajit-5.1 -lm -ldl /xxx/xxx/pcre-8.02/.libs/libpcre.a -lssl -lcrypto -ldl -lz
改成
-Wl,-E -lpthread -lcrypt /xxx/xxx/libluajit-5.1.a -lm -ldl /xxx/xxx/pcre-8.02/.libs/libpcre.a -lssl -lcrypto -ldl -lz
改完后 再执行 make && make install 就行了
我们用ldd nginx命令可以看到,已经依赖luajit动态链接库了
第三种方法
移除luajit的so文件,只保留.a文件,这样ld在连接时找不到so文件,就只好链接.a文件了。
这样改了之后,还需要修nginx_lua的config文件,否则configure会失败,失败原因是gcc需要-ldl参数
修改nginx_lua的config
将
ngx_feature_libs="-R$LUAJIT_LIB -L$LUAJIT_LIB -lluajit-5.1 -lm"
改为
ngx_feature_libs="-R$LUAJIT_LIB -L$LUAJIT_LIB -lluajit-5.1 -lm -ldl"
即可
相应位置的ngx_feature_libs 都需要添加-ldl这个参数
改完后,重新编译nginx,就可以成功了。
相关文章推荐
- nginx-1.12.1 + openssl-1.1.0f 静态编译
- openresty编译添加stream-lua-nginx-module模块
- Building openresty1.7.10.1 with luajit on windows using Cygwin, 在windows下用Cygwin下编译带Luajit的openresty
- luajit笔记---编译成静态库以及FFI绑定宿主程序函数
- luajit笔记---编译成静态库以及FFI绑定宿主程序函数
- win7 VS2013 新建工程 编译lua5.2.0 静态库
- 重新编译Nginx指导手册【修复静态编译Openssl的Nginx漏洞 】(转)
- 将nginx编译成静态库
- nginx添加编译lua模块
- JIT 编译 LUA常见库和工具
- nginx静态编译openssl并且使用gdb调试openssl
- luajit笔记---编译成静态库以及FFI绑定宿主程序函数
- Linux环境下编译安装Nginx以及Lua环境
- 用Lua控制Nginx静态文件的url访问权限
- lua5.3.3 vs 编译 静态库
- 重新编译Nginx指导手册【修复静态编译Openssl的Nginx漏洞 】[Openssl Heartbleed]
- centos6.5生产环境编译安装nginx-1.11.3并增加第三方模块ngx_cache_purge、nginx_upstream_check、ngx_devel_kit、lua-nginx
- vs 2010 将编译好的lua静态库运用起来
- Luajit反编译之探索记
- 基于Nginx1.9+LuaJIT+Kafka的点播监控系统实战(上海卓越智慧树网点播监控系统)