糖果实验室杂货铺

Candy Lab

Lua Lapis安装与项目创建

1 year ago 0

Lapis是程序员leafo写的一个lua语言的WEB框架,目前已经发布了1.3版本。要求的服务器开发环境是Openresty,而且支持moonscript,这个moonscript语言类似于Javascript的coffescript。起到的作用是,可以用简短moonscript实现你的任务,然后通过翻译程序把moonscript翻译成lua语言。

Lapis还提供了命令行工具,用来管理nginx实例的启动,关闭,重新加载。

1.安装luarocks.

在Lua语言生态工具中,有一个类似于Python的Pip一样的引用管理工具,叫做Luarocks。这个工具可以方便的安装,目前在Lua世界中很多的软件包。而如果正好使用的Linux是Ubuntu系统,使用sudo apt-get install luarocks就可以安装Luarocks了。

2.Lapis的安装:

当在Linux系统上安装完luarocks之后,使用如下命令就可以安装lapis:

None
1
luarocks install lapis

因为lapis是在有openresty基础上运行,我们假设现在openresty已经安装好了。而lapis提供了命令行程序,提供了快捷的方式创建nginx工程实例和配置文件,并且可以通过lapis命令行,管理服务。

3.创建工程。

lapis命令行的名字是“lapis”

我们在shell环境下运行lapis命令航工具。

None
1
lapis help

这条命令显示lapis都有哪些子功能,首先我们先用命令创建一个lua的WEB工程。

None
1
lapis new

命令执行后,会在当前目录创建一个空应用,会生成三个文件。

None
1
2
3
4
5
app.moon

mime.types

nginx.conf

app.moon是自动生成的一个moonscript脚本,可以通过程序翻译成lua程序。

mime.types是文件类型描述汇集,会在nginx.conf中include包含进去。

nginx.conf就是典型的nginx配置文件。

目前这个阶段可能最需要讲的一下就是nginx.conf文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
worker_processes ${{NUM_WORKERS}};error_log stderr notice;daemon off;

events {

  worker_connections 1024;}

http {

  include mime.types;

  server {

    listen ${{PORT}};

    lua_code_cache ${{CODE_CACHE}};

    location / {

      default_type text/html;

      content_by_lua '

        require("lapis").serve("app")

      ';

    }

    location /static/ {

      alias static/;

    }

    location /favicon.ico {

      alias static/favicon.ico;

    }

  }}
1
include mime.types;

就是引用mime类型文件之前已经说了。

1
listen ${{PORT}};

定义监听的端口, PORT变量的设置,会在之后说明,如果在config文件中设置PORT变量。

1
lua_code_cache ${{CODE_CACHE}};

code cache的设置也是可以在config文件中配置的。luacodecache 设定成on,每次编辑修改lua程序的时候,服务会自动的重载入,这在调试环境下也很有用,省去的重启的麻烦。

剩下的就是三个路由

1
location / {

这是一个根路由,输入网址后第一个被定为到的页面处理定义。

1
2
3
4
5
content_by_lua '

        require("lapis").serve("app")

      ';

这就话就是lua lapis程序的入口,location“/”的意思,你只要是输入服务器的IP:PORT,而不指定其他任何后缀,比如:127.0.0.1/,都会调用执行lapis应用(简单说,任何的请求都会执行app.lua脚本,只要在nginx.conf没有同名locate定义。),就是当前工程目录下app.lua的脚本。

1
location /static/ {

这定义了工程静态文件的位置,用于存放CSS,image,js等静态文件的位置。

1
location /favicon.ico {

这是一个图片,输入127.0.0.1/favicon.ico,就会在浏览器中显示出。设定我们的服务在前台运行。

1
error_log stderr notice;

这是在设定,log输出重定向输出到屏幕上。

1
daemon off;

这么设定对程序员调试很有用,而在实际的生产环境中,可以关掉此选项。配置文件基本注释完了。启动服务。

1
lapis server

用这条命令来启动一个ningx实例服务,用当前的目录的nginx.conf.lapis会在下面的目录,去搜索openresty的nginx执行文件。

1
2
3
4
5
6
7
"/usr/local/openresty/nginx/sbin/"

"/usr/local/opt/openresty/bin/"

"/usr/sbin/"

""

停止服务,用ctrl + c,或是使用命令

1
lapis term

作者:糖果

PS:转载到其它平台请注明作者姓名及原文链接。


糖果实验室

Openresty中文编程网
IKBC经典机械键盘
机械键盘领券优惠购买

Write a Comment