我是在Red Hat 5.8 的虚机上安装的。html
Nginx的一些模块须要其余第三方库的支持,例如gzip模块须要zlib库,rewrite模块须要pcre库,ssl功能须要openssl库等。建议把这些库都安装上。linux
PCRE(Perl兼容正则表达式,Perl Compatible Regular Expressions),一个由Philip Hazel开发的,为不少现代工具所使用的支持正则表达式的函数库。nginx
编译Nginx时须要用到PCRE,同时Nginx的Rewrite和http模块也要用到PCRE的语法!须要安装pcre包pcre-devel包。pcre包负责提供库的编译版本,pcre-devel包提供编译项目时用到的开发头文件和代码!正则表达式
PCRE在linux系统里被其它的软件所依赖,因此通常的linux系统里都会装有,可是否是最新版本,是否知足要求,那就得看需求了。若是知足不了的话,仍是须要编译安装最新版本的pcre软件。centos
系统里是否安装了pcre软件,咱们能够使用rpm 命令进行查询,以下命令
rpm -qa pcretcp
若是没有显示则表示尚未安装,若是显示了,刚表示安装了。以下图函数
上图表示系统已经安装过 pcre-6.6-9.e15 版本,可是没有安装 pcre-devel。工具
若是须要新版本,则须要卸载掉就版本,而后安装新版本。相关方法参看:google
http://jingyan.baidu.com/article/f7ff0bfc6bc0472e26bb13bf.htmllua
安装方法:
yum install pcre pcre-devel
yum 安装的文件能够用下面命令来找安装在那个目录下:
rpm –ql pcre
参考: http://blog.csdn.net/ngvjai/article/details/7997743
安装方法:
yum install openssl openssl-devel
在安装 openssl 时,会把咱们须要的其余 zlib库也作了安装。
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/srcmake
make install
由于安装在缺省路径,因此LuaJIT对应的lib,include均在/usr/local目录里。
参考:
http://huoding.com/2012/08/31/156
我这里使用的是 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 安装在 /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