nginx静态编译lua[jit]

原淘宝工程师清无(王晓哲)和春来(章亦春)开发的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,就可以成功了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值