openResty安装

阅读更多

       关于OpenResty(http://openresty.org/cn/) OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器,它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项。
OpenResty 通过汇聚各种设计精良的 Nginx 模块,
从而将 Nginx 有效的变成一个强大的 Web 应用服务器,
这样, Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种C以及Lua 模块,
快速构造出足以胜任 10K+ 并发连接响应的超高性能Web 应用系统

 

一. 安装openresty

mkdir -p /usr/local/src/nginx
cd /usr/local/src/nginx

#安装drizzle模块(访问mysql数据库模块,非必需,建议安装)
wget http://agentzh.org/misc/nginx/drizzle7-2011.07.21.tar.gz
tar zxvf drizzle7-2011.07.21.tar.gz
cd drizzle7-2011.07.21
./configure --without-server
make libdrizzle-1.0
make install-libdrizzle-1.0
cd ..
 
#下载openresty
wget http://openresty.org/download/ngx_openresty-1.4.2.7.tar.gz  //也可以先下载到本地然后FTP传到服务器上
tar zxvf ngx_openresty-1.4.2.7.tar.gz

#下载nginx-http-concat(合并静态文件请求模块,非必需,建议安装)
wget https://github.com/alibaba/nginx-http-concat/archive/master.zip
unzip master
mv nginx-http-concat-master/ ngx_openresty-1.4.2.7/bundle/nginx-http-concat

#安装openresty
cd ngx_openresty-1.4.2.7
./configure --with-luajit --with-http_drizzle_module --with-http_iconv_module --with-ld-opt="-Wl,-rpath,/usr/local/lib"  --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --add-module=./bundle/nginx-http-concat/
gmake
gmake install  
  
   ps: 执行解压缩后产生的一个名为configure的可执行脚本程序。它是用于检查系统是否有编译时所需的库,以及库的版本是否满足编译的需要等安装所需要的系统信息。为随后的编译工作做准备。命令为: #./configure
        如果您想把软件安装到指定目录,应该用#./configure --prefix=/您自己指定的目录,比如我想把一个mlterm安装到/opt/mlterm目录中,应该如下输入#./configure --prefix=/opt/mlterm
        执行configure后可能会有如下报错:

        错误信息:
        ./configure: error: the HTTP rewrite module requires the PCRE library.
        You can either disable the module by using --without-http_rewrite_module
        option, or install the PCRE library into the system, or build the PCRE library
        statically from the source with nginx by using --with-pcre= option.
        ERROR: failed to run command: sh ./configure --prefix=/usr/local/openresty/nginx \...

       
         这时候如果执行make也会报错:No targets specified and no makefile found,说明必须configure成功才可以进行make,因为只有检查通过后,才能生成用于编译的MakeFile文件。
 
 通过错误信息可以看出是由于没有安装PCRE库或找不到PCRE路径导致的,于是我们安装或通过
-with-pcre=(如果已安装过的话)来找到PCRE,然后接下来我们configure时还会报一些类似的找不到依赖的错误,如 openSSL,Zlib。接下来我们将介绍如何安装这3个依赖。

   二. 安装PCRE

  

1.下载PCRE包

首先去官网下载pcre的安装包

如果通过FTP的方式,下载地址为:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

如果通过http的方式,下载地址为:http://sourceforge.net/projects/pcre/files/pcre/

目前最新的版本为8.32,linux对应的安装包名称为:pcre-8.32.tar.gz。

 

2.把安装包上传到服务器,然后解压

  1.  tar -zxvf pcre-8.32.tar.gz
  2.  cd pcre-8.32
  3. ./configure   
  4. make ( 如果报错no UTF-8 support in PCRE library  则表示在前面步骤中执行./configuration配置时没有加上对utf-8的支持,重新执行 ./configure --enable-utf8 然后再make
  5. make install 

   三. 安装openSSL

        目前版本最新的SSL地址为http://www.openssl.org/source/openssl-1.0.0e.tar.gz

1、将下载的压缩包放在根目录,

2、在文件夹下解压缩,命令:tar -xzf openssl-openssl-1.0.0e.tar.gz,得到openssl-openssl-1.0.0e文件夹

3、进入解压的目录:cd openssl-1.0.0e

4、设定Openssl 安装,( --prefix )参数为欲安装之目录,也就是安装后的档案会出现在该目录下:
执行命令: ./config --prefix=/usr/local/openssl

5、执行命令./config -t

6.执行make,make install

   四.安装Zlib

   1) wget http://zlib.net/zlib-1.2.8.tar.gz

   2) cd zlib-1.2.8

   3)  ./configure    --prefix=/data/progam/zlib

   4)  make

   5)  make install

   6)  再进行配置一下系统的文件,加载刚才编译安装的zlib生成的库文件

        vi /etc/ld.so.conf.d/zlib.conf

        加入如下内容后保存退出

       /data/program/zlib/lib

       ==============================

      也就是添加安装目录的文件路径,库文件。ldconfig  运行之后就会加载安装的库文件了。

 

     至此,我们已经安装好了nginx所需的三个依赖包,现在就可以重新configure了

       ./configure --prefix=/usr/local/src --with-luajit --with-openssl=/usr/local/src/openssl-1.0.0e --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.37  (这些依赖都是解压缩后的目录,不是安装目录)

      然后make,make install

      然后进入到openResty的安装目录(不是解压缩后的目录)

 

      安装成功后进入nginx的安装路径,进入sbin,执行./nginx -c /usr/local/tools/nginx/conf/nginx.conf

来启动nginx,ps -ef|grep nginx 可以看到nginx是否启动成功。

      然后在游览器中输入虚拟机的游览器IP地址,如果访问时如果超时的话,则可能是虚拟机开了防火墙,关闭:service iptables stop ,再次访问如果出现nginx的欢迎页面则表明nginx启动成功。

     

     遇到的错误:

     1)  如果发现shell链接不上虚拟机的话,那么在虚拟机上alt+F2,调出控制台,然后执行service sshd status 查看ssh状态,如果是关闭,则执行 service sshd start ,  会看到错误信息:/usr/sbin/sshd:error while loading shared libraries:libz.so.1:failed to map segment from shared object:Permission denied [FAILED]

这就表示系统文件libz.so.1找不到了,原因是之前安装的zlib包也生成了一个libz.so.1(和系统库包同名但内容不一样),系统启动SSH时会默认去/lib和/lib64中寻找需要的系统库包,但是生成的那个libz.so.1把系统库里的lib.so.1指向到了zlib包中的lib.so.1,所以导致错误。

          whereis sshd  先找到sshd在哪个位置

          然后执行ldd /usr/sbin/sshd              列出sshd运行所需的共享库

          可以看到如下打印:

          libz.so.1 => /lib64/libz.so.1 (0x00007f85f4796000)

          这个表示libz.so.1指向的是 /lib64/libz.so.1 目录,发生错误的时候我指向的是zlib/lib/libz.so.1,所以会报错误。

        

        2)虚拟机ping主机ping不通,但主机可以ping通虚拟机,这时候要去查主机的防火墙,找到允许程序通过Windows防火墙通信,找到VMware的四个相关选项,然后打上勾。即可解决。

 

 

你可能感兴趣的:(openResty安装)