System Version: CentOS 6.8
阿里云的ECS服务器刚买来是很干净的,没有PHP运行的环境,但是可以购买的时候直接买成套的服务器,有的需要花钱,有的不需要花钱,这是后来才知道的。
我现在的只有一个操作系统,也可以选择安装那些自动化的脚本。但自己买来的东西,不去花点时间折腾折腾,感觉有点浪费这个机会,索性就自己安装一个LNMP的运行环境好了。
软件下载
零、编译环境准备
yum -y install gcc gcc-c++ automake autoconf libtool
- gcc gcc-c++ C编译器
-
automake autoconf 在Linux环境下编译安装软件时,用于自动生成Makefile文件,后续可以用
./configure
、make
、make install
编译安装 - libtool 解决库的依赖问题
一、 Nginx
-
访问Nginx官方网站并选择稳定版Nginx,点击进入下载地址。
-
找到稳定版本的安装包,右键复制链接地址
-
终端远程连接服务器,并下载到指定目录(我这里下载到
/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
-
进入刚解压出来的目录,执行:
./configure --prefix=/usr/local/web/
检测编译环境,报错如下:
大概意思就是HTTP重写模块需要PCRE这个库(显示我当前没有),还给出了解决办法:- 关闭这个模块:
--without-http_rewrite_module
- 安装PCRE库
- 把Nginx和PCRE库一起静态编译:
--with-pcre=<path>
显然,逃避不是解决问题的好办法,我需要去安装这个库,然后和Nginx一起编译。
- 关闭这个模块:
安装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)