centOS部署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

這裏有所有版本:
http://www.lua.org/download.html
下載最新的版本:
http://www.lua.org/ftp/lua-5.1.5.tar.gz
解壓後
記得修改一下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
install -p -m 0755 lua luac /usr/local/bin
install -p -m 0644 liblua.a /usr/local/lib
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
版本列表:http://openresty.org/cn/download.html
最新下載地址:https://openresty.org/download/openresty-1.11.2.5.tar.gz
./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相關目錄

所有版本列表:http://luarocks.github.io/luarocks/releases/
最新下載地址 :http://luarocks.github.io/luarocks/releases/luarocks-2.4.4.tar.gz
./configure; sudo make bootstrap
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、
Installing https://luarocks.org/lua-cjson-2.1.0-1.src.rock
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時出現的錯誤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章