使用Lua做Web開(kāi)發(fā)

Lua應(yīng)用程序與框架

  • Orbit Lua的MVC Web框架,基于WSAPI。
  • WSAPI 從Lua Web應(yīng)用程序抽象Web主機(jī)服務(wù)器的API
  • Xavante 提供WSAPI接口的Lua Web服務(wù)器

Orbit

Orbit是Lua的MVC Web框架,完全擯棄CGILua腳本模型,轉(zhuǎn)而支持應(yīng)用程序,每個(gè)Orbit應(yīng)用程序都可以放在一個(gè)文件中,按需可分為多個(gè)文件。

Orbit框架運(yùn)行在WSAPI協(xié)議的服務(wù)器上,可工作在Xavante和一些CGI和FastCGI程序上。

所有Orbit應(yīng)用程序都遵守WSAPI協(xié)議,因此與Xavante、CGI和FastCGI一起使用,它包含一個(gè)啟動(dòng)程序,可輕松啟動(dòng)Xavante實(shí)例進(jìn)行開(kāi)發(fā)。

Windows上安裝Orbit

考慮到系統(tǒng)權(quán)限問(wèn)題,推薦不要將引用安裝到C盤(pán),否則會(huì)引起權(quán)限不足的問(wèn)題。

  1. 安裝LuaRocks

https://luarocks.org/modules/luarocks/luasocket

安裝Orbit是使用LuaRocks,Luarocks是安裝Orbit的命令,因此需要先安裝LuaRocks。

LuaRocks是Lua的包管理工具,基于Lua開(kāi)發(fā),提供命令行來(lái)管理Lua包依賴(lài)、安裝第三方Lua包等。是社區(qū)比較流行的的包管理方式之一,還有如LuaDist,但LuaRocks的包數(shù)量比LuaDist多。

環(huán)境:lua >= 5.1, < 5.2

下載安裝Lua5.1

http://luadist.org/
http://luabinaries.sourceforge.net/

將lua的安裝路徑配置到系統(tǒng)環(huán)境變量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

參數(shù)說(shuō)明

  • /F 如果安裝目的地已經(jīng)有安裝則強(qiáng)制覆蓋
  • /MW 使用MinGW編譯
  • /LUA 指定Lua編譯器所在路徑
  • /P 指定LuaRocks安裝路徑
  • /NOADMIN 不使用管理員權(quán)限
  • /SELFCONTAINED 將LuaRocks建立的各種目錄集中到安裝目錄下
  • /Q 不現(xiàn)實(shí)確認(rèn)操作

安裝成功后將生成D:\lua\luarocks,將其路徑添加到系統(tǒng)環(huán)境path中。

錯(cuò)誤說(shuō)明

# 注意Lua版本為5.1,錯(cuò)誤原因是系統(tǒng)Lua版本過(guò)高,應(yīng)使用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 路徑添加到環(huán)境路徑path

$ where luarocks
D:\lua\5.1\bin\luarocks.exe
D:\lua\luarocks\luarocks.bat

打開(kāi)D:\lua\luarocks\config-5.1.lua文件,檢查配置項(xiàng)。

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目錄添加到系統(tǒng)環(huán)境變量path中,進(jìn)而可以直接使用LuaRocks安裝的可執(zhí)行文件。注意C:\lua目錄及其下級(jí)均需要具有寫(xiě)入權(quán)限。

  1. 使用LuaRocks安裝Kepler-xavante

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

$ luarocks install kepler-xavante

問(wèn)題:LuaRocks在Win10系統(tǒng)下,安裝依賴(lài)經(jīng)常會(huì)出現(xiàn)權(quán)限問(wèn)題。

$ luarocks --version
  1. 安裝WSAPI、FCCGI、Orbit、Xavante
    要啟動(dòng)應(yīng)用程序,需要將+ExecCGI添加到Orbit應(yīng)用程序根目錄中的.htaccess文件中。

WSAPI

WSAPI充當(dāng)項(xiàng)目的基礎(chǔ),其中嵌入許多功能,系統(tǒng)支持Windows和UNIX。
WSAPI支持的服務(wù)器 和接口包括:CGI、FastCGI、Xavante
WSAPI提供的庫(kù)可輕松進(jìn)行Web編程,主要包括:請(qǐng)求處理、輸出緩沖、認(rèn)證、文件上傳、請(qǐng)求隔離、并發(fā)傳輸...

Xavante

Xavante 是一個(gè)Lua HTTP 1.1 Web服務(wù)器,基于URL映射處理程序的模塊化體系結(jié)構(gòu),目前提供:文件處理程序、重定向處理程序、WSAPI處理程序。

  • 文件處理程序用于常規(guī)文件
  • 重定向處理程序啟用URI重映射和WSAPI處理程序,以便與WSAPI應(yīng)用程序一起處理。

Lua的Web組件

  • Copas 基于協(xié)同程序的調(diào)度程序,可由TCP/IP服務(wù)器使用。
  • Cosmo 安全模板引擎,保護(hù)應(yīng)用程序免受模板中任意代碼的攻擊
  • Cospcall 將Lua native pcall、xpcall、coroutine兼容
  • LuaFileSystem 一種訪(fǎng)問(wèn)底層目錄結(jié)構(gòu)和文件屬性的可移植方式
  • Rings 提供從Lua內(nèi)部創(chuàng)建新的Lua狀態(tài)的方式

Ubuntu配置Lua Web環(huán)境

使用root身份安裝makemake-guile命令,用于編譯源碼包。

$ sudo apt install make
$ sudo apt install make-guile

使用root身份安裝Lua5.1

$ sudo apt install lua5.1

# 查看Lua當(dāng)前版本
$ 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服務(wù)API的Web服務(wù)器。

$ 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啟動(dòng)web服務(wù)器
$ 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

瀏覽器訪(fǎng)問(wèn) 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 訪(fǎng)問(wèn)

安裝vscode編輯器

$ sudo snap install vscode --classic

安裝vim編輯器

$ sudo apt install vim

安裝mysql數(shù)據(jù)庫(kù)

$ sudo apt install mysql-server
$ sudo apt install mysql-client
$ sudo apt install mysql-libmysqlclient-dev

# 查看mysql運(yùn)行狀態(tài)
$ service mysql status

# 查看默認(rèn)密碼
$ 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添加新建文件

主目錄>模板>右鍵【在終端打開(kāi)】

$ sudo gedit 文本文件
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容