lapis环境部署

* 转载请注明来处,Mr.Zhou的HelleWGame。


lapis环境部署


系统:centOS 6.8

依赖环境:Lua,luarocks,openresty

注意:由于lapis目前只支持lua5.1,所以不要安装别的版本,安装顺序请依照本文的顺序来操作,lua、openresty、luarocks、lapis


1、lua
注意:centOS 6.8自带了一个lua5.1.4的版本,建议自己编译安装一个5.1.5的,要不然后面要踩很多坑
先安装lua的依赖包
yum install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make readline-devel

这里有所有版本:
下载最新的版本:
解压后
记得修改一下MakeFile
INSTALL_TOP= /usr/local/lua
保存后开始安装
make linux test
make install
cd src && mkdir -p /usr/local/bin /usr/local/include /usr/local/lib /usr/local/man/man1 /usr/local/share/lua/5.3 /usr/local/lib/lua/5.3
cd src && install -p -m 0755 lua luac /usr/local/bin
cd src && install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h lua.hpp /usr/local/include
cd src && install -p -m 0644 liblua.a /usr/local/lib

cd doc && install -p -m 0644 lua.1 luac.1 /usr/local/man/man1


2、openresty
注意:不要采用官网的yum安装方法,后面涉及到luarocks的整合,要不然会找不到很多包的路径
安装openresty需要的依赖包 
yum install readline-devel pcre-devel openssl-devel perl postgresql-devel openssl
./configure --prefix=/usr/local/openresty --with-luajit --without-http_redis2_module --with-http_iconv_module --with-http_postgres_module
gmake
gmake install
附上官网的yum安装方法:
先添加openresty的yum源
sudo yum-config-manager --add-repo https://openresty.org/yum/cn/centos/OpenResty.repo

sudo yum install openresty


3、luarocks
注意:这里需要将luarocks整合到openresty中,要不然后面使用lapis时会出现包找不到的情况,所以prefix那些目录都是填写openresty的luajit相关目录

./configure --prefix=/usr/local/openresty/luajit --with-lua=/usr/local/openresty/luajit/ --lua-suffix=jit --with-lua-include=/usr/local/openresty/luajit/include/luajit-2.1
make build
make install
附上官网的yum安装方法:
luarucks如果没有需要添加一个新yum源
epel中包含后面需要的luarocks,所以先安装这个资源包
yum install epel-release.noarch
安装完毕后再安装luarocks

yum install luarocks.noarch


4、lapis
luarocks install lapis
安装过程中会自动安装lapis需要的依赖包
如果安装时出现lua-cjson装不上,报错
可以通过之前的openresty编译包中找到lua-cjson
/opt/openresty-1.11.2.5/build/lua-cjson-2.1.0.5
通过luarocks make 来进行安装
[root@zhou lua-cjson-2.1.0.5]# luarocks make
gcc -O2 -fPIC -I/usr/local/openresty/luajit/include/luajit-2.1 -c lua_cjson.c -o lua_cjson.o
gcc -O2 -fPIC -I/usr/local/openresty/luajit/include/luajit-2.1 -c strbuf.c -o strbuf.o
gcc -O2 -fPIC -I/usr/local/openresty/luajit/include/luajit-2.1 -c fpconv.c -o fpconv.o
gcc -shared -o cjson.so -L/usr/local/openresty/luajit//lib lua_cjson.o strbuf.o fpconv.o
lua-cjson 2.1devel-1 is now installed in /usr/local/openresty/luajit (license: MIT)
出现上面信息代表cjson也已经安装成功,可以开始安装lapis了
附上成功启动后的页面
最后附上之前采坑时遇到的错误
1、content_by_lua(nginx.conf.compiled:22):2: module 'lapis' not found
这个是由于luarocks与openresty没有整合,虽然lapis已经安装成功,但是启动服务后,nginx会报这个错,所以在安装luarocks时一定要与openresty整合
2、
gcc -O2 -fPIC -I/usr/local/openresty/luajit/include/luajit-2.1 -c lua_cjson.c -o lua_cjson.o
lua_cjson.c:1299: 错误:对‘luaL_setfuncs’的静态声明出现在非静态声明之后
/usr/local/openresty/luajit/include/luajit-2.1/lauxlib.h:88: 附注:‘luaL_setfuncs’的上一个声明在此
Error: Failed installing dependency: https://luarocks.org/lua-cjson-2.1.0-1.src.rock - Build error: Failed compiling object lua_cjson.o

上面这个错误,最后我是通过找到openresty的编译包的/opt/openresty-1.11.2.5/build/lua-cjson-2.1.0.5 目录中,通过luarocks make 直接安装成功的,这样也就避免了luarocks自己安装依赖c-json时出现的错误




Powered By Z-BlogPHP 1.7.4

 Theme By 优美尚品

鄂ICP备15021991号-1