需要安装
Nginx
- 安装Nginx的
echo
模块 - 安装Nginx的
lua
模块 - 安装
Mysql
ps: echo模块,可以让我们像在PHP使用echo一样,打印出参数。
但是要加 default_type “text/html”;不然会出现请求页面出现下载的情况。
知识点:
* 了解Nginx,正则匹配location
:【http://www.cnblogs.com/zlingh…】
- Nginx操作命令,-s [reload|stop]
- lua语法【http://www.runoob.com/lua/lua…】
安装完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扩展的资料
这兄弟写的很详细。按照上面走一遍就可以了。