搭建博客(二) - 编译安装Nginx

System Version: CentOS 6.8

阿里云的ECS服务器刚买来是很干净的,没有PHP运行的环境,但是可以购买的时候直接买成套的服务器,有的需要花钱,有的不需要花钱,这是后来才知道的。
  我现在的只有一个操作系统,也可以选择安装那些自动化的脚本。但自己买来的东西,不去花点时间折腾折腾,感觉有点浪费这个机会,索性就自己安装一个LNMP的运行环境好了。

软件下载

  1. Nginx官方网站
  2. PCRE 8.0

零、编译环境准备

yum -y install gcc gcc-c++ automake autoconf libtool

  • gcc gcc-c++ C编译器
  • automake autoconf 在Linux环境下编译安装软件时,用于自动生成Makefile文件,后续可以用./configuremakemake install编译安装
  • libtool 解决库的依赖问题

一、 Nginx

  1. 访问Nginx官方网站并选择稳定版Nginx,点击进入下载地址。


    搭建博客(二) - 编译安装Nginx_第1张图片
    选择稳定版Nginx
  2. 找到稳定版本的安装包,右键复制链接地址


    搭建博客(二) - 编译安装Nginx_第2张图片
    复制链接地址
  3. 终端远程连接服务器,并下载到指定目录(我这里下载到/usr/local/src/),写此文时,Nginx官方最新的稳定版本的包为nginx-1.12.0.tar.gz
    执行命令:

    // 下载安装包
    wget http://nginx.org/download/nginx-1.12.0.tar.gz
    
    // 解压
    tar -zxvf nginx-1.12.0.tar.gz
    
  4. 进入刚解压出来的目录,执行:./configure --prefix=/usr/local/web/检测编译环境,报错如下:


    大概意思就是HTTP重写模块需要PCRE这个库(显示我当前没有),还给出了解决办法:

    • 关闭这个模块:--without-http_rewrite_module
    • 安装PCRE库
    • 把Nginx和PCRE库一起静态编译:--with-pcre=

    显然,逃避不是解决问题的好办法,我需要去安装这个库,然后和Nginx一起编译。

  5. 安装PCRE库

        # 下载
        wget https://ftp.pcre.org/pub/pcre/pcre-8.00.tar.bz2
            
        # 解压
        tar jxvf pcre-8.00.tar.bz2
 **报错**
![](http://upload-images.jianshu.io/upload_images/1818988-74f81aa40404c744.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
还是那一套,下载安装解决,但是总去编译安装未免太麻烦了,直接yum吧~

**又报错**
![](http://upload-images.jianshu.io/upload_images/1818988-990c18bf9e271ae1.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

大概意思是说,zlib这个玩意儿早已经安装了最新版本了,不能安了。

以前遇到过这样的问题,zlib这玩意儿是用于压缩和解压的模块,有些应用依赖于这个库,所以要安装。

而安装PHP的运行环境需要编译zlib扩展,就要用到zlib库的头文件等zlib.h,而zlib.h是在zlib-devel包中的,所以解决办法是:**安装zlib-devel包**`yum -y install zlib-devel`

安装`zlib-devel`之后,再次运行`./configure --prefix=/usr/local/web/nginx/ --with-pcre=/usr/local/src/pcre-8.00/`终于看到如下界面,说明编译环境没有问题了,终于可以编译安装了。
![](http://upload-images.jianshu.io/upload_images/1818988-acf8c19914952ab5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

`make && make install` 安装。

进入到`/usr/loca/web/`目录下,果然看到nginx的目录。

`nginx/sbin/nginx` 启动nginx。

`ps aux | grep nginx` 看到已经可以看到nginx的两个进程。

> 通过内网访问查看nginx已经工作

![](http://upload-images.jianshu.io/upload_images/1818988-912e234a1b6ef6e5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> **外网无法通过IP直接访问**
> * ping了一下可以ping通,但telnet 80端口不通。
> * 防火墙压根没开启。
> * `netstat -anp` 看到nginx已经在监听80端口

最后查到原因:**阿里云ECS的安全组列表里没有开放80端口**
解决办法:**添加一个安全组规则,开放80端口**

至此,外网终于可以通过IP访问。

**Welcome to nginx!**(2017-05-18 00:45)

![](http://upload-images.jianshu.io/upload_images/1818988-bf3a54246e1ef797.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

你可能感兴趣的:(搭建博客(二) - 编译安装Nginx)