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盘,否则会引起权限不足的问题。

  1. 安装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目录及其下级均需要具有写入权限。

  1. 使用LuaRocks安装Kepler-xavante

可直接登录https://luarocks.org搜索需要下载的第三方包

$ luarocks install kepler-xavante

问题:LuaRocks在Win10系统下,安装依赖经常会出现权限问题。

$ luarocks --version
  1. 安装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身份安装makemake-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身份安装luarocksluarocks是Lua的包管理工具。

$ sudo apt install luarocks

# 查看luarocks版本
$ luarocks -version
/usr/bin/luarocks 2.4.2
LuaRocks main command-line interface

使用luarocks搜索并安装wsapi-xavantewsapi-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安装orbitorbit是基于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 文本文件
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐