Lua Lapis安装与项目创建
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:
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}};
定义监听的端口, PORT变量的设置,会在之后说明,如果在config文件中设置PORT变量。
lua_code_cache ${{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:转载到其它平台请注明作者姓名及原文链接。