Lua模块的包管理器LuaRocks
LuaRocks是Lua模块的包管理器。
它允许你创建和安装Lua模块,作为独立包名为rocks。 您可以在Unix和Windows上下载并安装LuaRocks。
LuaRocks是免费软件,使用与Lua相同的许可证。
@[TOC]
linux系统下安装
安装包列表:
http://luarocks.github.io/luarocks/releases/
简单安装
1 | $ wget https://luarocks.org/releases/luarocks-2.4.3.tar.gz |
设置prefix会自动将Luarocks以及往后使用Luarocks安装的Lua包,LuaC包都安装到Luarocks安装路径下的相应位置,否则相关的包文件散落在文件系统中,显得杂乱不便于管理。
如果所安装的Lua模板包含bin文件,则会自动安装到此目录下的bin路径,与Luarocks可执行文件同一路径,更便于管理、使用。
openresty 安装 luarocks 示例
1 | tar xzf luarocks-${RESTY_LUAROCKS_VERSION}.tar.gz |
在 OpenResty 中使用 LuaRocks
https://openresty.org/cn/using-luarocks.html
安装 LuaRocks
1 | wget http://luarocks.org/releases/luarocks-2.0.4.1.tar.gz |
通过 LuaRocks安装 Lua MD5 库
在本示例中, 我们将使用 Lua MD5 library 作为服务器上的一个例子, 所以我们需要通过 LuaRocks 来安装它:
1 | sudo luarocks install md5 |
配置我们的 OpenResty 应用
1 | cd /usr/local/openresty/nginx/ |
编辑 conf/nginx.conf 文件:
1 | worker_processes 1; # we could enlarge this setting on a multi-core machine |
最后,我们创建下面两个 Lua 模块文件 conf/foo.lua
1 | -- conf/foo.lua |
和 conf/bar.lua 文件
1 | -- conf/bar.lua |
开启 Nginx 服务
现在我们通过 Nginx 开启我们的应用:
1 | ulimit -n1024 # increase the maximal fd count limit per process |
如果您已经开启了 Nginx 服务,请先关闭后在重新开启:
1 | ./sbin/nginx -s stop #(译注:我们也可以使用平滑重启命令完成此操作 ./sbin/nginx -s reload) |
测试我们的应用
现在我们通过curl 工具或者任意兼容HTTP协议的浏览器测试我们的应用:
1 | curl http://localhost/luarocks |
我们在第一次运行的时候得到以下的内容:
1 | rocks and md5 loaded |
第二次运行的时候得到以下内容:
1 | 85e73df5c41378f830c031b81e4453d2 |
之所以会出现这样的输出数据是因为 Lua Nginx Module 默认缓存了已经加载过的Lua模块 并且这些输出数据的代码是在 Lua 加载时运行的因此他们将不会在执行.