我是在Red Hat 5.8 的虚机上安装的。

Nginx的一些模块需要其他第三方库的支持,例如gzip模块需要zlib库,rewrite模块需要pcre库,ssl功能需要openssl库等。建议把这些库都安装上。

安装 PCRE

PCRE(Perl兼容正则表达式,Perl Compatible Regular Expressions),一个由Philip Hazel开发的,为很多现代工具所使用的支持正则表达式的函数库。

编译Nginx时需要用到PCRE,同时Nginx的Rewrite和http模块也要用到PCRE的语法!需要安装pcre包pcre-devel包。pcre包负责提供库的编译版本,pcre-devel包提供编译项目时用到的开发头文件和代码!

PCRE在linux系统里被其它的软件所依赖,所以一般的linux系统里都会装有,但是否是最新版本,是否满足要求,那就得看需求了。如果满足不了的话,还是需要编译安装最新版本的pcre软件。

检查系统中是否安装了PCRE软件

系统里是否安装了pcre软件,我们可以使用rpm 命令进行查询,如下命令
rpm -qa pcre

如果没有显示则表示还没有安装,如果显示了,刚表示安装了。如下图

 

上图表示系统已经安装过 pcre-6.6-9.e15 版本,但是没有安装 pcre-devel。

如果需要新版本,则需要卸载掉就版本,然后安装新版本。相关方法参看:

http://jingyan.baidu.com/article/f7ff0bfc6bc0472e26bb13bf.html

安装方法:

yum install pcre pcre-devel

 

yum 安装的文件可以用下面命令来找安装在那个目录下:

rpm –ql pcre

参考: http://blog.csdn.net/ngvjai/article/details/7997743

安装 openssl

安装方法:

yum install openssl openssl-devel

在安装 openssl 时,会把我们需要的其他 zlib库也做了安装。

安装 lua

yum安装:

yum install lua lua-devel

安装Lua或者LuaJIT都是可以的,但是出于效率的考虑,推荐安装LuaJIT。下面的源码例子就是安装LuaJIT

源码安装:

lua下载地址: http://luajit.org/

我这里下载的是:LuaJIT-2.0.1.tar.gz 下载在 /usr/local/src 目录下。

安装命令:

cd /usr/local/src
tar  zxvf LuaJIT-2.0.1.tar.gz
cd LuaJIT-2.0.1

make

make install

因为安装在缺省路径,所以LuaJIT对应的lib,include均在/usr/local目录里。

参考:

http://huoding.com/2012/08/31/156

 

 

安装 tengine

我这里使用的是 tengine-1.4.6.tar.gz 。  下载地址: http://tengine.taobao.org/download 

我把下载好的源文件放在 /usr/local/src 目录下了。

执行命令如下:

cd /usr/local/src
tar  zxvf tengine-1.4.6.tar.gz
cd tengine-1.4.6

配置命令

./configure --prefix=/usr/local/nginx --with-pcre=/usr/include  --with-http_lua_module --with-luajit-lib=/usr/local/lib/ --with-luajit-inc=/usr/local/include/luajit-2.0/ --with-lua-inc=/usr/local/include/luajit-2.0/ --with-lua-lib=/usr/local/lib/ --with-ld-opt=-Wl,-rpath,/usr/local/lib

make

make install

 

 

编译参数说明:

由于 PCRE 我们是通过 yum 安装的,所以会有下面的参数设置  --with-pcre=/usr/include  

lua我们是手工安装的, 所以才会有后面的参数设置 --with-http_lua_module --with-luajit-lib=/usr/local/lib/ --with-luajit-inc=/usr/local/include/luajit-2.0/ --with-lua-inc=/usr/local/include/luajit-2.0/ --with-lua-lib=/usr/local/lib/

--prefix

编译后,计划安装的目录

它的作用:不指定prefix,则可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr/local/share。你要卸载这个程序,要么在原来的make目录下用一次make uninstall(前提是make文件指定过uninstall),要么去上述目录里面把相关的文件一个个手工删掉。
指定prefix,直接删掉一个文件夹就够了。

http://blog.csdn.net/xiyangfan/article/details/5321790

 

--with-ld-opt

其中的 --with-ld-opt=-Wl,-rpath,/usr/local/lib:/opt/openresty/luajit/lib 参数的意思是:
这是链接器选项,目的是把 /usr/local/lib 和 /opt/openrersty/luajit/lib 这两个路径添加进
nginx 可执行文件的 RPATH 头中,这样在启动的时候,系统就可以找到正确的动态链接库文件。

https://groups.google.com/forum/#!msg/openresty/mVi0p-Qx7Qg/zNyrOZi-slgJ 

 

启动 nginx

启动命令(我们前面把 nginx 安装在 /usr/local/nginx 目录下了):

/usr/local/nginx/sbin/nginx

启动后,本机访问 http://localhost 会看到下面页面:

修改  /usr/local/nginx/conf/nginx.conf 文件

增加下面几行代码:

location /hello {
     default_type 'text/plain';
     content_by_lua 'ngx.say("hello, lua")';
   }

然后使用 下面命令重新启动 nginx

/usr/local/nginx/sbin/nginx -s reload

重启命令参考: http://xuun.net/2010/02/16/nginx-restart/

本机访问  http://localhost/hello 会看到下面页面:

 

防火墙设置

上面访问是本机访问的,如果我们想其他机子也能访问,需要开放

直接关闭防火墙的命令:

service iptables stop

参考:http://kiddwyl.iteye.com/blog/67708

查看防火墙状态
chkconfig iptables --list

打开 80 端口的访问权限方法:

vi /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允许80端口通过防火墙)
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)
特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面(如下规则)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

 

/etc/init.d/iptables restart
#最后重启防火墙使配置生效

 

参考资料:

centos linux 编译安装pcre软件
http://jingyan.baidu.com/article/f7ff0bfc6bc0472e26bb13bf.html

Nginx与Lua
http://huoding.com/2012/08/31/156

tengine+lua的安装步骤的更多相关文章

  1. 淘宝开源Web服务器Tengine基本安装步骤

    Tengine 是由淘宝核心系统部基于Nginx开发的Web服务器,它在Nginx的基础上,针对大访问量 网站的需求,添加了很多功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,淘宝商 ...

  2. 自己整理的openresty安装步骤

    这几天一直在研究对webapi的限流和名单的问题,于是看了开涛博客的方案,于是就用到了openresty,一个把Nginx和lua集成的东西. 下面就是整理的安装方案(简单使用基本可以这么安装) 下载 ...

  3. Tengine+Lua+GraphicsMagick

    狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! 使用 Tengine+Lua+GraphicsMagick 实现图片自动裁剪缩放 需求 : 图片 ...

  4. 如何搭建SVN服务器,详细安装步骤。

    SVN服务器端安装 下载: VisualSVN是一款图形化svn服务器.官网 http://www.visualsvn.com/server/ 下载地址: http://www.visualsvn.c ...

  5. arcgis10.2.2桌面版具体的安装步骤过程

    先声明一下,这里的截图虽说是ArcGIS10.1版本的,但是安装步骤是对的,本人用ArcGIS10.2.2软件测试成功安装上 一.ArcGIS许可证管理器安装 1.在软件包文件夹license man ...

  6. LoadRunner 11 安装步骤

    loadrunner 安装步骤: LoadRunner11下载:  在网上可以搜索到,在这个就不提供了. LoadRunner11原理: 破解方法和以前版本相同,我用的是LR8.0的破解文件,同样实用 ...

  7. MySQL安装步骤

    MySQL安装步骤 1. 下载MySQL Community Server 5.6.21,注意选择系统类型(32位/64位) 2. 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下. ...

  8. Java开发工具安装步骤内容如下

    Java开发工具安装步骤内容如下 安装 开发工具 STS 链接下载网址 eclipse 链接下载网址 JDK安装 jdk链接下载地址 Marven环境 marven链接下载地址 Tomcat tomc ...

  9. PhantomJS linux系统下安装步骤及使用方法(网页截屏功能)

    PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, ...

随机推荐

  1. 正确的理解this 和 super

    this和super是Java的两个关键字. 先明确一个问题,有人错误的认为它们是对象里的“属性”,这只能怪老师没有讲清楚计算机的本质了.因为计算机的处理器只能用指令去处理数据,像C语言之类的容易理解 ...

  2. Data Flow ->> Term Lookup

    Term Lookup是和Term Extraction相反的一个组件.Term Extraction是为了找出term,Term Lookup是利用我们关心的term list来找出某个文本里面包含 ...

  3. uploadify+批量上传文件+java

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  4. CF-358D-Dima and Hares【T^T+*^*】

    [文章标题打着转载,是因为不是自己想出来的解题,但下面的文字是自己敲的[~捂脸*>_<*~]] 题目就不贴了~~~DP+greedy的题.弱爆了看别人的代码思路过的.T^T但还是自己复述一 ...

  5. 自动化测试LoadRunner

    这个地址应该比较的好下载,以前找的地址都是需要输入一些相关的信息.这个只需要有一个HP的注册账号就可下载,记下来.以备后用: 下载地址: http://www8.hp.com/us/en/softwa ...

  6. Android HTTPS(2)HttpURLConnection.getInputStream异常的原因及解决方案

    Common Problems Verifying Server Certificates InputStream in = urlConnection.getInputStream(); getIn ...

  7. 消息队列-推/拉模式学习 & ActiveMQ及JMS学习

    一种分类是推和拉 . 还有一种分类是 Queue 和 Pub/Sub . 先看的这一篇:http://blog.csdn.net/heyutao007/article/details/50131089 ...

  8. EF CodeFirst-----简单demo示例

    关于EF CodeFirst的文章院子里有很多的学习资料,但大多数都是一些讲Model通过特性或是Fluent API与数据库之间形成映射的关系,看了相关的文章之后,Model如何映射到数据还是有些迷 ...

  9. HDU 3790 最短路径问题【Dijkstra】

    题意:给出n个点,m条边,每条边的长度d和花费p,给出起点和终点的最短距离和花费,求最短距离,如果有多个最短距离,输出花费最少的 在用dijkstra求最短距离的时候,再用一个f[]数组保存下最少花费 ...

  10. LA 3516 Exploring Pyramids (记忆化搜索)

    题意 给定一个DFS序列,问能有多少树与之对应. 思路 设输入序列为S,dp(i, j)为子序列Si, Si+1, --, Sj对应的树的个数,则边界条件为d(i, i) = 1,且Si != Sj时 ...