nginx安裝lua-nginx-module模塊


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

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

一:系統版本

1 cat /etc/issue

CentOS release 6.7 (Final)

Kernel \r on an \m

cat /proc/version 

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 2015

 

二 :安裝

1 安裝LuaJIT

下載地址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 平台


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM