需要安装

  • Nginx
  • 安装Nginx的echo模块
  • 安装Nginx的lua 模块
  • 安装Mysql

ps: echo模块,可以让我们像在PHP使用echo一样,打印出参数。
但是要加 default_type "text/html”;不然会出现请求页面出现下载的情况。

知识点:

* 了解Nginx,正则匹配location:【http://www.cnblogs.com/zlingh...

安装完lua以后,需要安装luajit;

使用luajit 的luarocks类似于PHP的composer,

安装mysql

执行命令:

安装lua 的mysql扩展前,一定要安装mysql.
$ luarockt install luasql-mysql

例子:

1. 首先修改nginx.conf

location /luatest {
    default_type "text/html”;
    content_by_lua_file /Users/Keil/study/lua/test.lua;
}

当页面匹配到 luatest,就会执行test.lua脚本。配置好 default_type "text/html”; ,不然服务器会把test.lua文件下载下来。
ps:content_by_lua_file 命令:告诉服务器加载和执行lua文件。

test.lua中的代码:

local luasql =require("luasql.mysql")
--创建环境对象
env = luasql.mysql()
--
----连接数据库
conn = env:connect("wechats","root","","127.0.0.1")
--
----设置数据库的编码格式
conn:execute"SET NAMES UTF8"

----执行数据库操作
cur = conn:execute("select * from status")
row = cur:fetch({},"a")
while row do
        var = string.format("%d %s\n", row.id, row.name)
        ngx.say(var)
        row = cur:fetch(row,"a")
end
conn:close()  --关闭数据库连接
env:close()

2.nginx -s reload

对比:

使用 openresty也可以做到这个,而且更简单,openresty是一个集成的扩展集合,里面有nginx,也有lua,而且给用户配置好了,lua的redis,mysql扩展。适合新的服务器中使用;如果已有服务器,又不影响业务,可以手动安装lua扩展,不影响业务的使用。

lua扩展的资料

这兄弟写的很详细。按照上面走一遍就可以了。


wmm369
125 声望12 粉丝

< 笃信力行 >