Lua应用程序与框架
- Orbit Lua的MVC Web框架,基于WSAPI。
- WSAPI 从Lua Web应用程序抽象Web主机服务器的API
- Xavante 提供WSAPI接口的Lua Web服务器
Orbit
Orbit是Lua的MVC Web框架,完全摈弃CGILua脚本模型,转而支持应用程序,每个Orbit应用程序都可以放在一个文件中,按需可分为多个文件。
Orbit框架运行在WSAPI协议的服务器上,可工作在Xavante和一些CGI和FastCGI程序上。
所有Orbit应用程序都遵守WSAPI协议,因此与Xavante、CGI和FastCGI一起使用,它包含一个启动程序,可轻松启动Xavante实例进行开发。
Windows上安装Orbit
考虑到系统权限问题,推荐不要将引用安装到C盘,否则会引起权限不足的问题。
- 安装LuaRocks
https://luarocks.org/modules/luarocks/luasocket
安装Orbit是使用LuaRocks,Luarocks是安装Orbit的命令,因此需要先安装LuaRocks。
LuaRocks是Lua的包管理工具,基于Lua开发,提供命令行来管理Lua包依赖、安装第三方Lua包等。是社区比较流行的的包管理方式之一,还有如LuaDist,但LuaRocks的包数量比LuaDist多。
环境:lua >= 5.1, < 5.2
下载安装Lua5.1
http://luadist.org/
http://luabinaries.sourceforge.net/
将lua的安装路径配置到系统环境变量path中
$ lua -v
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
下载安装LuaRocks3.0.4
http://luarocks.github.io/luarocks/releases/luarocks-3.0.2-win32.zip
http://luarocks.github.io/luarocks/releases/luarocks-3.0.4-win32.zip
$ cd luarocks-3.0.4
$ install.bat /F /MW /LUA "d:\lua\5.1" /P "d:\lua\luarocks" /NOADMIN /SELFCONTAINED /Q
$ luarocks --version
参数说明
-
/F
如果安装目的地已经有安装则强制覆盖 -
/MW
使用MinGW编译 -
/LUA
指定Lua编译器所在路径 -
/P
指定LuaRocks安装路径 -
/NOADMIN
不使用管理员权限 -
/SELFCONTAINED
将LuaRocks建立的各种目录集中到安装目录下 -
/Q
不现实确认操作
安装成功后将生成D:\lua\luarocks
,将其路径添加到系统环境path
中。
错误说明
# 注意Lua版本为5.1,错误原因是系统Lua版本过高,应使用Lua5.1。
Could not find Lua. See /? for options for specifying the location of Lua, or installing a bundled copy of Lua 5.1.
将生成的 LuaRocks 路径添加到环境路径path
中
$ where luarocks
D:\lua\5.1\bin\luarocks.exe
D:\lua\luarocks\luarocks.bat
打开D:\lua\luarocks\config-5.1.lua
文件,检查配置项。
rocks_trees = {
{ name = [[user]],
root = home..[[/luarocks]],
},
{ name = [[system]],
root = [[c:\lua\luarocks\systree]],
},
}
variables = {
MSVCRT = 'm', -- make MinGW use MSVCRT.DLL as runtime
LUALIB = 'liblua.dll.a',
CC = [[C:\MinGW\bin\gcc.exe]],
MAKE = [[C:\MinGW\bin\make.exe]],
RC = [[C:\MinGW\bin\windres.exe]],
LD = [[C:\MinGW\bin\gcc.exe]],
AR = [[C:\MinGW\bin\ar.exe]],
RANLIB = [[C:\MinGW\bin\ranlib.exe]],
}
verbose = false -- set to 'true' to enable verbose output
将D:\lua\luarocks\systree\bin
目录添加到系统环境变量path
中,进而可以直接使用LuaRocks安装的可执行文件。注意C:\lua
目录及其下级均需要具有写入权限。
- 使用LuaRocks安装Kepler-xavante
可直接登录https://luarocks.org搜索需要下载的第三方包
$ luarocks install kepler-xavante
问题:LuaRocks在Win10系统下,安装依赖经常会出现权限问题。
$ luarocks --version
- 安装WSAPI、FCCGI、Orbit、Xavante
要启动应用程序,需要将+ExecCGI添加到Orbit应用程序根目录中的.htaccess文件中。
WSAPI
WSAPI充当项目的基础,其中嵌入许多功能,系统支持Windows和UNIX。
WSAPI支持的服务器 和接口包括:CGI、FastCGI、Xavante
WSAPI提供的库可轻松进行Web编程,主要包括:请求处理、输出缓冲、认证、文件上传、请求隔离、并发传输...
Xavante
Xavante 是一个Lua HTTP 1.1 Web服务器,基于URL映射处理程序的模块化体系结构,目前提供:文件处理程序、重定向处理程序、WSAPI处理程序。
- 文件处理程序用于常规文件
- 重定向处理程序启用URI重映射和WSAPI处理程序,以便与WSAPI应用程序一起处理。
Lua的Web组件
- Copas 基于协同程序的调度程序,可由TCP/IP服务器使用。
- Cosmo 安全模板引擎,保护应用程序免受模板中任意代码的攻击
- Cospcall 将Lua native pcall、xpcall、coroutine兼容
- LuaFileSystem 一种访问底层目录结构和文件属性的可移植方式
- Rings 提供从Lua内部创建新的Lua状态的方式
Ubuntu配置Lua Web环境
使用root
身份安装make
和make-guile
命令,用于编译源码包。
$ sudo apt install make
$ sudo apt install make-guile
使用root
身份安装Lua5.1
$ sudo apt install lua5.1
# 查看Lua当前版本
$ lua -v
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
使用root
身份安装luarocks
,luarocks
是Lua的包管理工具。
$ sudo apt install luarocks
# 查看luarocks版本
$ luarocks -version
/usr/bin/luarocks 2.4.2
LuaRocks main command-line interface
使用luarocks
搜索并安装wsapi-xavante
,wsapi-xavante
是支持Web服务API的Web服务器。
$ luarocks search wsapi-xavante
$ sudo luarocks install wsapi-xavante
Installing https://luarocks.org/wsapi-xavante-1.7-1.src.rock
wsapi-xavante 1.7-1 is now installed in /usr/local (license: MIT/X11)
$ wsapi --help
$ sudo find / -name wsapi
/usr/local/bin/wsapi
/usr/local/lib/luarocks/rocks/wsapi
/usr/local/lib/luarocks/rocks/wsapi-xavante/1.7-1/bin/wsapi
/usr/local/share/lua/5.1/wsapi
# 使用wsapi启动web服务器
$ cd /usr/local/lib/luarocks/rocks/wsapi/1.7-1/samples
$ wsapi
[Xavante launcher] Starting Xavante...
[2019-01-20 20:23:28] Xavante started on port(s) 8080
浏览器访问 http://127.0.0.1:8080/hello.lua
使用luarocks
安装orbit
,orbit
是基于WSAPI的MVC框架。
$ luarocks search orbit
$ sudo luarocks install orbit
$ cd /usr/local/lib/luarocks/rocks/orbit/2.2.4-1/samples
$ wsapi
[Xavante launcher] Starting Xavante...
[2019-01-20 20:30:37] Xavante started on port(s) 8080
$ wsapi -p8090
$ wsapi -p8090 &
$ orbit -p 8090 &
浏览器输入http://127.0.0.1:8080/hello/hello.lua 访问
安装vscode编辑器
$ sudo snap install vscode --classic
安装vim编辑器
$ sudo apt install vim
安装mysql数据库
$ sudo apt install mysql-server
$ sudo apt install mysql-client
$ sudo apt install mysql-libmysqlclient-dev
# 查看mysql运行状态
$ service mysql status
# 查看默认密码
$ vim /etc/mysql/debian.conf
user:sys-debian-maint
password:xxxxxxxxxxxxxxx
# 登录mysql
$ mysql -u sys-debian-maint -p
安装net-tools
$ sudo apt install net-tools
$ sudo netstat -tap | grep mysql
tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN 24222/mysqld
ubuntu添加新建文件
主目录>模板>右键【在终端打开】
$ sudo gedit 文本文件