nginx安裝lua-nginx-module模塊

轉載註明地址:http://www.cnblogs.com/dongxiao-yang/p/5312285.htmlhtml

本文主要採用手動源碼安裝的方式將lua-nginx模塊編譯到nginx源碼內部nginx

一:系統版本git

1 cat /etc/issuegithub

CentOS release 6.7 (Final)centos

Kernel \r on an \mpost

cat /proc/version ui

Linux version 2.6.32-573.el6.x86_64 (mockbuild@c6b9.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) ) #1 SMP Thu Jul 23 15:44:03 UTC 2015this

 

二 :安裝lua

1 安裝LuaJITurl

下載地址http://luajit.org/download.html,本次下載的是2.0.0版本

安裝命令參考http://luajit.org/install.html教程,本文直接修改了Makefile文件裏的默認路徑PREFIX到/opt/luajit-2.0.0。

make && make install

安裝完畢。

2 安裝nginx

(1) 下載ng源碼並解壓 

 wget http://nginx.org/download/nginx-1.8.1.tar.gz

(2)下載 ngx_devel_kit (NDK) 模塊 HERE. 解壓

(3)下載 ngx_lua HERE.解壓

(4)安裝pcre依賴庫

yum install readline-devel pcre-devel openssl-devel gcc

(5)設置變量並編譯export LUAJIT_LIB=/opt/luajit-2.0.0/lib(根據本機位置)


export LUAJIT_INC=/opt/luajit-2.0.0/include/luajit-2.0(根據本機位置)

 

cd nginx-1.8.1

./configure --prefix=/opt/nginx-build-1.8.1 \
--with-ld-opt="-Wl,-rpath,/opt/luajit-2.0.0/lib" \
--add-module=/opt/lua-nginx-module-0.10.2 \
--add-module=/opt/ngx_devel_kit-0.3.0rc1

make -j2

make install

這裏注意的是不少人編譯的時候沒有加選項:--with-ld-opt="-Wl,-rpath,/opt/luajit-2.0.0/lib

這樣會致使編好的nginx在啓動的時候會沒法找到位於luajit內的類庫,相似於

/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf
/opt/nginx/sbin/nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory

這個問題不少人發現後採用了將libluajit-5.1.so.2連接到系統庫的作法,好比http://cywhoyi.iteye.com/blog/2118913,以及https://www.ttlsa.com/nginx/nginx-modules-ngx_lua,採用的

ln -s /usr/local/lib/libluajit-5.1.so.2 /lib64/

這樣能夠解決問題,可是至關於一個補救方法。

參考問題https://github.com/openresty/lua-nginx-module/issues/8 裏agentzh的回答

--with-ld-opt=parameters — sets additional parameters that will be used during linking. When using the system PCRE library under FreeBSD, --with-ld-opt="-L /usr/local/lib" should be specified.  

因此至關於直接把luajit的lib庫加到了nginx的搜索庫。

(6)啓動

ln -s nginx-build-1.8.1 nginx 設爲默認路徑

/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf

啓動成功

 

參考資料

如何安裝nginx_lua_module模塊

lua-nginx-module 

OpenResty 一個可伸縮的基於 NGINX 的 Web 平臺

相關文章
相關標籤/搜索