linux下lua环境搭建

我前面我们介绍了nginx+lua环境的搭建,在此我们再来了解下lua开发环境的安装。

目前lua版本已经更新到lua5.3,但是我们在此安装lua5.1,因为5.1运行了好多年,有好多模块都是基于此版本的,例如lua_gd。

安装:

1.先安装lua的相关依赖

yum install readline-dev readline-devel

2.安装lua5.1

  1. wget http://www.lua.org/ftp/lua-5.1.0.tar.gz  
  2. tar -zxvf lua-5.1.0.tar.gz  
  3. make linux test  
  4. make install  
wget http://www.lua.org/ftp/lua-5.1.0.tar.gz
tar -zxvf lua-5.1.0.tar.gz
make linux test
make install

lua有一个模块管理工具luarocks,类似于yum,我们可以使用luarocks来安装相关模块。

1.安装

  1. wget http://luarocks.org/releases/luarocks-2.2.1.tar.gz  
  2. tar zxpf luarocks-2.2.1.tar.gz  
  3. cd luarocks-2.2.1  
  4. ./configure  
wget http://luarocks.org/releases/luarocks-2.2.1.tar.gz
tar zxpf luarocks-2.2.1.tar.gz
cd luarocks-2.2.1
./configure
会出现以下提示:

  1. Lua interpreter found: /usr/bin/lua…  
  2. Lua version detected: 5.1  
  3. lua found in $PATH: /usr/bin  
  4. Checking Lua includes… lua.h not found (looked in /usr/include, /usr/include/lua/5.1, /usr/include/lua5.1)  
  5. You may want to use the flag –with-lua or –with-lua-include. See –help.  
  6.   
  7. configure failed.  
Lua interpreter found: /usr/bin/lua...
Lua version detected: 5.1
lua found in $PATH: /usr/bin
Checking Lua includes... lua.h not found (looked in /usr/include, /usr/include/lua/5.1, /usr/include/lua5.1)
You may want to use the flag --with-lua or --with-lua-include. See --help.

configure failed.

提示找不到lua.h,默认情况下会从/usr下寻找,因为我们需要指定lua.h的目录

  1. find / -name lua.h  
  2. /usr/local/luajit/include/luajit-2.0/lua.h  
  3. /usr/local/src/lua/lua-5.1.5/src/lua.h  
  4. /usr/local/src/lua/LuaJIT-2.0.4/src/lua.h  
  5. /usr/local/include/luajit-2.0/lua.h  
  6. /usr/local/include/lua.h  
find / -name lua.h
/usr/local/luajit/include/luajit-2.0/lua.h
/usr/local/src/lua/lua-5.1.5/src/lua.h
/usr/local/src/lua/LuaJIT-2.0.4/src/lua.h
/usr/local/include/luajit-2.0/lua.h
/usr/local/include/lua.h

再重新编译安装:

  1. ./configure –with-lua=/usr/local –with-lua-include=/usr/local/include  
  2. make bootstrap  
./configure --with-lua=/usr/local --with-lua-include=/usr/local/include
make bootstrap
我们就将luarocks安装到/usr/local下了,加入以下环境变量,就可以直接使用了:

export PATH=/usr/local/bin:$PATH

lua可用模块列别,可以在此查看http://luarocks.org/repositories/rocks/,我们通过以下即可直接安装:

  1. [root@usvr-126 local]# luarocks install luafilesystem  
  2. Installing https://rocks.moonscript.org/luafilesystem-1.6.3-1.src.rock…  
  3. Using https://rocks.moonscript.org/luafilesystem-1.6.3-1.src.rock… switching to ‘build’ mode  
  4. gcc -O2 -fPIC -I/usr/local/include -c src/lfs.c -o src/lfs.o  
  5. gcc -shared -o lfs.so -L/usr/local/lib src/lfs.o  
  6. Updating manifest for /usr/local/lib/luarocks/rocks  
  7. luafilesystem 1.6.3-1 is now built and installed in /usr/local (license: MIT/X11)  
[root@usvr-126 local]# luarocks install luafilesystem
Installing https://rocks.moonscript.org/luafilesystem-1.6.3-1.src.rock...
Using https://rocks.moonscript.org/luafilesystem-1.6.3-1.src.rock... switching to 'build' mode
gcc -O2 -fPIC -I/usr/local/include -c src/lfs.c -o src/lfs.o
gcc -shared -o lfs.so -L/usr/local/lib src/lfs.o
Updating manifest for /usr/local/lib/luarocks/rocks
luafilesystem 1.6.3-1 is now built and installed in /usr/local (license: MIT/X11)
安装完成后,会在/usr/local/lib/lua/5.1/下生成一个lfs.so的文件,我们只需要将此文件拷贝到nginx中自定义的LUA_PATH中,就可以引用该库,调用其中的函数。

例如在nginx的配置文件中引用:

  1. lua_package_path ‘/usr/local/nginx/lua/?.lua;;’  
  2. lua_package_cpath ‘/usr/local/nginx/lua/lib/?.?;;’;  
  3. #其中”;;”代表原先查找范围。  
lua_package_path ‘/usr/local/nginx/lua/?.lua;;’
lua_package_cpath ‘/usr/local/nginx/lua/lib/?.?;;’;




#其中”;;”代表原先查找范围。注:路径自己定义,也可定义成默认路径。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值