Lapis是程序员leaf写的一个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:

luarocks install lapis

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

3.创建工程。

lapis命令行的名字是“lapis”

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

lapis help

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

lapis new

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

app.moon

mime.types

nginx.conf

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

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

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

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


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;
    
    }

  }}

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

listen $;

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

lua_code_cache $;

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

剩下的就是三个路由

location / {

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

content_by_lua '

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

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

location /static/ {

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

location /favicon.ico {

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

error_log stderr notice;

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

daemon off;

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

lapis server

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


"/usr/local/openresty/nginx/sbin/"

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

"/usr/sbin/"

""

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

作者:糖果

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