openresty操作mongodb

最近项目中使用openresty,需要通过openresty连接mongo,经过几番折腾终于有了一个结果,现将其记录下来,也感谢模块提供者

 

使用openresty操作mongo

1、引入第三方的模块

  https://github.com/isage/lua-resty-moongoo

2、将第三方模块下载后放入openresty相关目录及/usr/local/openresty/lualib/resty/

3、开始使用模块中提供的方法操作数据库,但是在使用中会发现缺少模块cbson,因此在使用该模块时需要再次编辑安装cbson模块,cbson主要用来生成mongo中的ObjectId

安装libbson

git clone git://github.com/mongodb/libbson.git
cd libbson/
./autogen.sh
make
sudo make install

make clean && make LUA_INCLUDE_DIR=/usr/local/openresty/luajit/include/luajit-2.1 LUA_CMODULE_DIR=/usr/local/openresty/lualib LUA_MODULE_DIR=/usr/local/openresty/lualib CBSON_CFLAGS="-g -fpic -I/usr/local/include/libbson-1.0/ " CC=cc

 

安装使用cbson

1、第三方Github地址 https://github.com/isage/lua-cbson

2、编译安装cbson模块,在编译此间出现错误“Could NOT find LuaJIT (missing: LUA_LIBRARIES LUA_INCLUDE_DIR)”,由于我自己的openresty路径不同,所以出现上述报错。解决方法如下:

  a、找到模块中的cmake文件夹,找到一个名为FindLuaJIT.cmake的文件

  b、修改luajit的路径,重新执行编译即可

 

安装完成上述三个模块之后即可按照mongo模块提供的文档进行操作

 

ps:如果在使用cbson时报如下错误:

则需要将libbso-1.0.so.0手动添加到 /usr/lib下,具体操作如下

ln -s /usr/local/lib/libbson-1.0.so.0 ./libbson-1.0.so.0

ldconfig

执行以上命令即可解决找不到动态连的错误

posted on 2017-09-11 16:07  铁猛  阅读(2276)  评论(0编辑  收藏  举报

导航