zoukankan      html  css  js  c++  java
  • 菜鸟运维笔记:小记编译安装Nginx所遇到的坑

    转载请注明出处:http://blog.csdn.net/guodongxiaren/article/details/40950249 谢谢合作

    前言

    无论是CentOS,或是Debian/Ubuntu。甚至是Windows。Nginx都有已编译好的安装包可用。

    通常仅仅须要在终端上潇洒地输入apt-get install ...或是yum install ..就能够了。可是对于我这个源代码编译狂来说。那样一键安装,显然无法满足我心理需求。

    获取Nginx源代码

    下载

    官网已经出现了1.7了。只是我还是选择了眼下稳定的1.6版本号。打开你的终端。我们開始吧:

    wget http://nginx.org/download/nginx-1.6.2.tar.gz
    

    解压

    tar xvf nginx-1.6.2.tar.gz
    

    编译

    进入刚才解压的文件夹下。你会发现,没有其它软件的源代码中所包括的INSTALL文件(该文件通经常使用于指导怎样正确编译源代码),有一个README,来我们cat一下。

    !坑爹啊,里面仅仅有一句话!

    Documentation is available at http://nginx.org
    

    文档在这个站点上。

    。。
    只是不用管他了,看到文件夹下绿色的configure文件在。那么我们直接上手吧。

    configure

    ./configure
    

    然后。你可能会收到一个错误,提示你缺少PCRE。只是。假设你之前已经在这台主机上安装成功了Apache的话。那么如今是不会报错的,由于Apache也是须要PCRE的。

    我的是新搞的华为云的主机,差点儿裸机

    安装PCRE

    PCRE是什么呢?简单说来。就是一个Perl的库。那么我们接下来来编译pcre的源代码。

    哈哈。


    到官网去看,当前(截至2014/11/09)最新版本号是8.36。

    wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz
    

    -DHAVE_CONFIG_H

    接下来。相同是用tar xvf解压。解压出一个pcre的文件夹,我们cd进去。不由分说。直接./configure
    貌似没出错,接着make,貌似也没出问题。继续make install。咦,有错误!

    libtool: compile: unrecognized option `-DHAVE_CONFIG_H'  
    

    是我没装libtool么,yum install一下。

    不正确啊,装了啊。后来百度发现是缺少了g++编译器。对哦。我如今是裸机。这个我就不自己编译了(快跑题了),敲命令安装:

    #CentOS以下
    yum install gcc-c++
    #Ubuntu以下
    apt-get install g++
    

    你应该是root身份,我就不多说了。此时会默认安装一些依赖软件,比方autoconf

    zlib

    然后我们再又一次./configure一下吧。瓦擦嘞,有问题(装完g++,configure都报错了。。)。提示缺少zlib。好吧。继续百度。进官网。

    复制链接,然后继续wget

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

    继续tar xvfo(╯□╰)o解压出一个文件夹。我这里文件夹名是zlib-1.2.8。请注意我全部wget的文件都在同一层文件夹以下,解压路径也是同一层。
    来我ls -F一下:

    nginx-1.6.2/         pcre-8.36/         zlib-1.2.8/
    nginx-1.6.2.tar.gz  pcre-8.36.tar.gz  zlib-1.2.8.tar.gz
    

    接着,我们再进入pcre的文件夹以下,去configure。加上一个选项。

    ./configure --with-zlib=../zlib-1.2.8
    

    注意选项后面应该是,你自己的zlib文件夹的路径。You Know?
    此时。应该不报错了。我们来一路高歌猛进,继续敲两个命令,——————>make——————>make install


    好了,没错误安装pcre完成。深呼一口气,恩,费力不少啊,只是最终安装上了,好吧,教程结束。
    咦?慢着。我们的教程不是教你安装pcre的啊。我们是Nginx安装教程啊。那好吧,继续。

    make

    在pcre安装完成之后,再次进入nginx的文件夹以下。去./configure应该不会报错了。


    轻轻敲下四个字母make。接着观看滚屏。

    make install

    滚屏完成。继续敲make install

    然后继续看滚屏。

    开启Nginx

    前文之中,我们已经安装好了Nginx,如今我们去开启它。由于刚才nginx源代码文件夹下,我们在configure的时候,没有使用选项--prefix该选项用来指定nginx的安装位置)。所以它默认安装到了/usr/local/nginx/文件夹中。

    我们能够cd进去。也能够不进去。

    以下开启它:

    /usr/local/nginx/sbin/nginx
    

    在安装文件夹下的sbin子文件夹中有Nginx的可运行文件。

    只是。非常不幸,我的机器上。又报错了:

     error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
    

    提示缺少libpcre.so.1,可是我们刚才明明装了pcre啊。

    原来是Nginx默认在/lib64/文件夹下(我是64位机器,32位应该是搜索/lib/),搜索该库文件。

    显然,我们自己编译的pcre。它的这个库文件不在这个位置。来我们find / -name 'libpcre.so.1'一下,找找看:

    /usr/local/lib/libpcre.so.1
    

    好吧,在/usr/local/lib/以下。

    我们来建立以符号链接吧。

    ln -s /usr/local/lib/libpcre.so.1  /lib64/libpcre.so.1
    

    然后。这次应该真得能够了。。。开启nginx:/usr/local/nginx/sbin/nginx

    没报错。那我们来检測一下。看谁在监听80端口。

    netstat -lpn|grep :80
    
    tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      28126/nginx  
    

    好了,打完收工。

  • 相关阅读:
    sqlserver 行转列 语文,数学,物理,化学
    除去字符串中不相临的重复的字符 aabcad 得 aabcd
    Mvc项目实例 MvcMusicStore 五
    c# 计算两日期的工作时间间隔(排除非工作日)及计算下一个工作时间点.
    html-----016---HTTP 状态消息
    html-----015---HTML ASCII 参考手册
    html-----014---统一资源定位器
    html-----013----实体字符/HTML URL 编码
    html-----012---颜色的改变
    html-----011--子窗体iframe
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6691211.html
Copyright © 2011-2022 走看看