超简单一学就会的完整编译安装nginx的过程
以前我们总是说最简单的安装nginx的方法就是极速安装,所谓的极速安装其实就是使用LNMP这类一键安装包或者宝塔这样的服务器面板来一键安装,省事小白都能做完全傻瓜操作。唯一需要的就是耐心等待也就是个等点时间而已,剩下的根本不用你动手。这类方法看似简单但是有的博主却非常不建议使用一键安装包或者宝塔面板,理由就是安全性得不到保证。也是他们的源码几乎千篇一律,肯定会被某些高手们摸透,大家如果不修改一些默认设置,肯定就会被盯上,因此他们认为不如自己编译安装来的放心。这种理由也不是不对的,所以今天我们就来讲一讲nginx这个很多人都在使用的服务器程序如果通过编译安装怎么装。有的会说了编译安装太难了,其实一点都不难,只需跟着我们接下来的步骤一步步完成就搞定了。至于时间吗?如果你很熟悉Linux系统的话,比一键安装包的nginx安装时间还要快,当然如果不熟悉Linux的话15-20分钟也能装好。
接下来就是编译安装的所有步骤:
首先我们要做的就是准备一个纯净的Linux系统,这个容易买个VPS然后重新装个系统就完事了。主要还是要先给我们的系统安装一些nginx运行时所必备的一些环境。(本文以CentOS 7系统为例)
在安装nginx之前需要我们先安装好 gcc / pcre / zlib / openssl 这四个程序
#安装gcc
yum install -y gcc
yum install -y gcc-c++
#安装pcre
yum install -y pcre pcre-devel
#安装zlib
yum install -y zlib zlib-devel
#安装openssl
yum install -y openssl openssl-devel
需要你确认是只需输入y即可安装,这四个全都安装完毕之后,接下来就正式开始下载安装nginx
官方下载地址:http://nginx.org/en/download.html
我们这里以1.14.2版本为例子,输入wget命令下载nginx源码包
wget http://nginx.org/download/nginx-1.14.2.tar.gz
然后解压缩tar.gz文件
tar -zxvf nginx-1.14.2.tar.gz
接下来进入nginx这个目录里面
cd /nginx-1.14.2
然后我们开始输入以下命令写入nginx的配置文件(一次性输入,别断下)
./configure \
–prefix=/usr/local/nginx \
–pid-path=/var/run/nginx/nginx.pid \
–lock-path=/var/lock/nginx.lock \
–error-log-path=/var/log/nginx/error.log \
–http-log-path=/var/log/nginx/access.log \
–with-http_gzip_static_module \
–http-client-body-temp-path=/var/temp/nginx/client \
–http-proxy-temp-path=/var/temp/nginx/proxy \
–http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
–http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
–http-scgi-temp-path=/var/temp/nginx/scgi
执行完这些命令之后,接下来我们直接开始编译安装
首先输入 make
执行完毕后再输入 make install
等待一会nginx将自动安装完毕,我们可以输入 cd ../nginx 然后再输入 ll (或者直接输入 ll 命令查看目录)
接下来进行最后一步,运行并启动nginx
就是进入到sbin目录下,执行./nginx命令
cd /usr/local/nginx/sbin/
./nginx
ps aux | grep nginx 这个命令可以查看进程,查看nginx是否已经启动运行
接下来打开浏览器,输入你VPS的IP地址(公网内网都可以),查看nginx是否启动运行并开始监听80端口,如果有成功画面则代表安装成功。
如果80端口有被其他程序占用,请停止运行该程序,否则也会造成无法看到成功画面
也有可能是防火墙启用导致80端口未放行,最简单的办法是要么开放80端口,要么干脆直接关掉防火墙
最后尤其需要注意这么两个问题:
有的可能在执行 ./nginx 的时候,浏览器上就是看不到成功默认页面,出现这么个报错提示
nginx: [emerg] mkdir() “/var/temp/nginx/client” failed (2:No such file or directory)
啥意思,目录不存在。怎么办?创建上这个目录就完事了(就是个新建文件夹的事)
但是请不要先创建 client 目录,还要先看看其他目录存不存在,父目录都没有怎么会有子目录?
请先用 find 命令看看这些目录存不存在,后面的可能都不存在,但是 var 目录一定存在
find /var/temp
find /var/temp/nginx
find /var/temp/nginx/client
如果输出内容中含有 No such file or directory 就是目录不存在
接下来就开始新建目录
mkdir /var/temp
mkdir /var/temp/nginx
mkdir /var/temp/nginx/client
一个一个的创建,不能跳过去
然后创建目录结束后还有一步需要执行,再输入一下 ./nginx(就能看到成功画面)
还有的会出现这么个提示
nginx: [emerg] open() “/var/run/nginx/logs/nginx.pid” failed (2: No such file or directory)
解决方法就是再重装一次(再次执行make和make install)
到这里nginx的编译安装就全部完成了,很简单吧。15-20分钟就能自己动手安装nginx,有需要编译安装的可以使用本方法进行安装。