zoukankan      html  css  js  c++  java
  • 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 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 平台

  • 相关阅读:
    python的几个实例程序员节日快乐
    用python的time库写一个进度条
    用python绘画一些简单图片
    头文件板子
    Codeforces 606-C:Sorting Railway Cars(LIS)
    中南林业科技大学第十一届程序设计大赛- I:背包问题
    离散数学:用C语言来判断集合存在的二元关系
    中南林业科技大学第十一届程序设计大赛-C:有趣的二进制
    POJ 1611:The Suspects(并查集)
    POJ 2236:Wireless Network(并查集)
  • 原文地址:https://www.cnblogs.com/dongxiao-yang/p/5312285.html
Copyright © 2011-2022 走看看