转载注明地址: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

2 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./lib(根据本机位置)

export LUAJIT_INC=/opt/luajit-2.0./include/luajit-2.0(根据本机位置)

cd nginx-1.8.

./configure --prefix=/opt/nginx-build-1.8. \
--with-ld-opt="-Wl,-rpath,/opt/luajit-2.0.0/lib" \
--add-module=/opt/lua-nginx-module-0.10. \
--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的回答

Hello!
On Sat, Aug 4, 2012 at 1:16 PM, maanas <reply@reply.github.com> wrote: Thanks. How can i add this in boot parameters so that i do not have to do it again.
One way is to specify RPATH while building Nginx, for example,
加上--with-ld-opt可以直接在编译阶段解决问题
参考ng官方安装文档定义http://nginx.org/en/docs/configure.html

--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 平台

nginx安装lua-nginx-module模块的更多相关文章

  1. nginx安装lua模块实现高并发

    nginx安装lua扩展模块 1.下载安装LuaJIT-2.0.4.tar.gz wget -c http://luajit.org/download/LuaJIT-2.0.4.tar.gz tar ...

  2. Nginx安装lua支持

    Nginx安装lua支持 需要LuaJIT-2.0.4.tar.gz,ngx_devel_kit,lua-nginx-module 1.下载安装LuaJIT-2.0.4.tar.gz wget -c ...

  3. 11: Nginx安装lua支持

    1.1 Nginx 使用lua脚本 注:需要LuaJIT-2.0.4.tar.gz,ngx_devel_kit,lua-nginx-module 1.Nginx安装lua支持 wget -c http ...

  4. Linux上安装Nginx依赖环境和库、Nginx安装,Nginx服务命令

    安装Nginx依赖环境和库.Nginx安装,Nginx服务命令 因为Nginx官方提供的是C源码,要自己进行编译,所以需要自己拥有编译所依赖的环境和库才可正常编译 安装gcc yum -y insta ...

  5. nginx安装配置+清缓存模块安装

    经过一段时间的使用,发现nginx在并发与负载能力方面确实优于apache,现在已经将大部分站点从apache转到了nginx了.以下是nginx的一些简单的安装配置. 环境 操作系统:CentOS. ...

  6. nginx -- 安装配置Nginx

    安装说明 系统环境:CentOS-6.3 软件:nginx-1.2.6.tar.gz 安装方式:源码编译安装  安装位置:/usr/local/nginx  下载地址:http://nginx.org ...

  7. [转] linux学习第四十四篇:Nginx安装,Nginx默认虚拟主机,Nginx域名重定向

    Nginx安装 进入存放源码包的目录: cd /usr/local/src 下载源码包: wget http://nginx.org/download/nginx-1.12.1.tar.gz 解压: ...

  8. VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)

    首先启动Nginx 1. 相关浏览 两个 Tomcat 配置:  VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二) Nginx 安装配置启动: VMware Linu ...

  9. Nginx安装配置|Nginx反向代理|Nginx支持HTTPS|Nginx重定向

    Nginx安装配置 可以直接看到最下面的HTTPS. Nginx安装 我的系统如下: No LSB modules are available. Distributor ID: Ubuntu Desc ...

  10. nginx 安装配置+清缓存模块安装

    经过一段时间的使用,发现 nginx 在并发与负载能力方面确实优于 apache,现在已经将大部分站点从 apache 转到了 nginx 了.以下是 nginx 的一些简单的安装配置.环境操作系统: ...

随机推荐

  1. 利用c++操作XML,主要是内部循环方法的使用

    本文主要分享的是循环方法的使用,设置XML节点属性,用了3种循环方法. XML文件: <?xml version='1.0' encoding='utf-8' ?><root> ...

  2. 适合自己的vim配置文件

    主要用来写c++的:clang-completer这个是单独安装的,其他的都采用的vundle安装完成. clang-completer:只在centos7.2上安装成功过,6.4上失败了.先要安装一 ...

  3. [学习笔记]设计模式之Proxy

    为方便读者,本文已添加至索引: 设计模式 学习笔记索引 写在前面 “魔镜啊魔镜,谁是这个世界上最美丽的人?” 每到晚上,女王都会问魔镜相同的问题(见Decorator模式).这是她还曾身为女巫时留下的 ...

  4. php约瑟夫环

    <?php function popChar($str , $m , $current = 0){ $number = count($str); $num = 1; if(count($str) ...

  5. php模块参考

    <?php //数据库连接类 class ConnDB{ var $dbtype; var $host; var $user; var $pwd; var $dbname; //构造方法 fun ...

  6. ASP.NET MVC 中使用JavaScriptResult

    在浏览器地址栏输入地址,在页面上想通过脚本弹出一个框,看到Controller下有个JavaScript方法,返回的类型是JavaScriptResult,于是想用这个方法弹出框, public Ac ...

  7. vbox里面的Ubuntu虚拟机与主机win7之间设置共享文件夹

    有时候我们希望虚拟机和主机之间进行通信,例如传一些文件.那么设置共享文件夹就是一种很好的方式. 这里我的主机是win7系统,vbox里面的虚拟机是Ubuntu. 1.首先安装vbox的VBOXGues ...

  8. bzoj 3240: [Noi2013]矩阵游戏 矩阵乘法+十进制快速幂+常数优化

    3240: [Noi2013]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 613  Solved: 256[Submit][Status] ...

  9. iOS,OC,图片相似度比较,图片指纹

    上周,正在忙,突然有个同学找我帮忙,说有个需求:图片相似度比较. 网上搜了一下,感觉不是很难,就写了下,这里分享给需要的小伙伴. 首先,本次采用的是OpenCV,图片哈希值: 先说一下基本思路: 1. ...

  10. 【LA2796】Concert Hall Scheduling(最大费用最大流)

    Description You are appointed director of a famous concert hall, to save it from bankruptcy. The hal ...