如何配置一套优雅的Lua开发环境

如何配置一套优雅的Lua开发环境,第1张

优雅Lua发环境

优雅Lua发环境至少包含几点:

安装适合需求新稳定版Lua

安装合适Lua包管理器

源码安装(合理组织安装目录设置环境变量使Lua环境更易用且易于管理)

版本选择

首先我要关注前流行各种Lua版本(5.1x5.2x5.3x)何选择我观点根据自需求选择适合自新稳定版

我环境用做基于Openresty(OpenrestyNginx与其Http_lua模块结合衍版本)Web应用发OpenrestyLua代码执行通LuaJit解析加速LuaJit基于Lua5.1xABI发Openresty官明确指使用LuaJit运行Lua代码优案所毋庸置疑Lua5.1x适合我新稳定版Lua5.1.5

安装部署

相比brew、apt-get、 yum等安装式我更推荐使用源码安装帮助我整环境细节更认识握合理组织安装目录结合环境变量设置便于使用管理

载并解压Lua源码:

wget

tar zxvf lua-5.1.5.tar.gz

cd lua-5.1.5

打Makefile看信息:

PLAT= none #安装平台默认平台none

INSTALL_TOP= /usr/local #安装跟目录默认/usr/local

# Convenience platforms targets. #源码所支持平台

PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris

INSTALL_TOP修改既定安装目录保存

INSTALL_TOP= /usr/local/lua-5.1.5

继续步骤进行安装:

make macosx #编译平台设置macosx其平台直接macosx替换即make linux

make macosx install #安装平台设置macosx

功安装:

? ~/Desktop/ ll /usr/local/lua-5.1.5

total 0

drwxr-xr-x 4 root wheel 136B 10 19 18:48 bin

drwxr-xr-x 7 root wheel 238B 10 19 18:48 include

drwxr-xr-x 4 root wheel 136B 10 19 18:48 lib

drwxr-xr-x 3 root wheel 102B 10 19 18:48 man

drwxr-xr-x 3 root wheel 102B 10 19 18:48 share

运行lua -v查看所安装Lua版本

? ~/Desktop/ lua -v

zsh: command not found: lua

? ~/Desktop/ ln -sf /usr/local/lua-5.1.5/bin/lua /usr/local/bin/lua

? ~/Desktop/ lua -v

Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio

安装目Lua执行文件优雅处于使用源码安装组织安装目录使我更便管理Lua环境今Lua5.1.5版本相关ABI、Lua包等安装安装目录libshare路径我甚至定义LUA_PATH=/usr/local/lua-5.1.5更便引用lua.h等做相关模块发

指定安装目录/usr/local/lua-5.1.5并PATH环境变量所直接执行lua报command not found: lua我使用添加软连接式执行文件链接PATH路径达同效,直接/usr/local/lua-5.1.5/bin添加环境变量PATH

版本共存

使用源码安装实现版本共存

? ~/Desktop/luarocks-2.2.2/ ll /usr/local/lua*

/usr/local/lua:

/usr/local/lua-5.1.5:

/usr/local/lua-5.2.3:

/usr/local/lua-5.3.1:

? // ll /usr/local/bin/lua*

lrwxr-xr-x 1 root admin 28B 10 19 23:16 /usr/local/bin/lua ->/usr/local/lua-5.1.5/bin/lua

lrwxr-xr-x 1 root admin 28B 10 20 10:08 /usr/local/bin/lua52 ->/usr/local/lua-5.2.3/bin/lua

lrwxr-xr-x 1 root admin 28B 10 20 10:12 /usr/local/bin/lua53 ->/usr/local/lua-5.3.1/bin/lua

lrwxr-xr-x 1 root admin 29B 10 20 10:12 /usr/local/bin/luac ->/usr/local/lua-5.1.5/bin/luac

lrwxr-xr-x 1 root admin 29B 10 20 10:08 /usr/local/bin/luac52 ->/usr/local/lua-5.2.3/bin/luac

lrwxr-xr-x 1 root admin 29B 10 20 10:11 /usr/local/bin/luac53 ->/usr/local/lua-5.3.1/bin/luac

有两种方式,一种是apache2.3以上会内置的lua module,大家可以下载apache httpd 2.3.8的代码,在modules目录下有lua这个目录。

另外一种是今天要介绍的,使用wsapi方式。

我们使用ubuntu服务器,先确保lua5.14以及apache2都安装成功。

然后

sudo apt-get install apache2-mpm-worker liblua5.1-0-dev luarocks

sudo apt-get install libfcgi-dev libapache2-mod-fcgid

sudo luarocks install wsapi-fcgi

然后修改.htaccess或者httpd.conf或者你的vhost配置,添加下面部分。

Options ExecCGI

AddHandler fcgid-script .lua

FCGIWrapper /usr/local/lib/luarocks/bin/wsapi.fcgi .lua

要注意的是wsapi.fcgi也许是在不同目录下,用find自己找吧。

在var/www下你的站点中新建一个luacgi目录,然后建立两个文件。

launcher.fcgi:

#!/usr/bin/env lua

require "wsapi.fastcgi"

require "hello"

wsapi.fastcgi.run(hello.run)

index.lua:

module(…, package.seeall)

function run(wsapi_env)

local headers = { ["Content-type"] = "text/html" }

local function hello_text()

coroutine.yield("<html><body>")

coroutine.yield("<p>Hello Wsapi!</p>")

coroutine.yield("<p>PATH_INFO: " .. wsapi_env.PATH_INFO .. "</p>")

coroutine.yield("<p>SCRIPT_NAME: " .. wsapi_env.SCRIPT_NAME .. "</p>")

coroutine.yield("</body></html>")

end

return 200, headers, coroutine.wrap(hello_text)

end

然后用chown –R www-data:www-data luacgi修改目录owner。

这时候应该就能用xxx.com/luacgi/index.lua访问了。

如果你用nginx,也有现成的lua mod可以使用(作者是淘宝的程序员),这里就不多说了。

1网站下载LUA包http://www.lua.org/download.html,ctrl+F2输入gnome-terminal打开终端

2、下载ubuntu的编译支持

sudo apt-get install build-essential

注意,这里不仅仅是安装gcc而已,还包括很多其他工具。

3、下载libreadline相关支持,这个东西在编译时需要用到,无奈。

sudo apt-get install libreadline5

sudo apt-get install libreadline5-dev

4、编译以及安装

tar xzvf lua-5.1.2.tar.gz

cd lua-5.1.2

make linux

sudo make install

这里make的参数linux也可以是其他 *** 作系统,视具体情况而定。

5、测试

$ lua

Lua 5.1.2 Copyright (C) 1994-2007 Lua.org, PUC-Rio

>

按下Ctrl+D退出。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8903642.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-22
下一篇2023-04-22

发表评论

登录后才能评论

评论列表(0条)

    保存