一、安装环境

宿主机=> win7,虚拟机 centos => 系统版本:CentOS Linux release 7.5.1804 (Core),ip地址 192.168.1.168

 二、nginx下载

打开官网: http://nginx.org/ ,选择 nginx-1.14.1 stable 版本,

打开链接找到 nginx-1.14.2,右键复制链接地址,

将其下载到目录  /usr/local/src 中,

三、nginx安装

1、解压nginx-1.14.2.tar.gz

2、进入nginx-1.14.2目录查看原始文件

3、执行 ./configure 命令,指定安装路径为 /usr/local/nginx

执行完毕报如下错误:

./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=<path> option.

大意是 HTTP的重写模块需要PCRE库的支持,要么通过--without-http_rewrite_module忽略此模块,要么将PCRE安装进系统,

要么构筑PCRE库的源码并通过 --with-pcre=<path>选项指定其所在路径,这里选择最后一项,下载PCRE源码到 /usr/local/src 。

3.1、打开 http://pcre.org/ ,找到  ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

点击进入找到  pcre2-10.21.tar.bz2 最新版,复制链接地址下载,这个是pcre2新版本,可能会不兼容,此处测试一下

3.2、下载

3.3、解压

3.4、 重新执行 ./configure

结果又报如下错误:

./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.

意思是缺少 zlib 库,如同pcre一样,我们下载解压zlib

3.5、打开 http://www.zlib.net/  ,找到

复制链接地址并下载到  /usr/local/src 目录中

解压

3.6、再次执行 ../configure 命令

./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/src/pcre2-10.21 --with-zlib=/usr/local/src/zlib-1.2.11

3.7 、继续执行 make && make install

结果报错:

src/core/ngx_regex.h:15:18: fatal error: pcre.h: No such file or directory
#include <pcre.h>
^
compilation terminated.
make[1]: *** [objs/src/core/nginx.o] Error 1
make[1]: Leaving directory `/usr/local/src/nginx-1.14.2'
make: *** [build] Error 2

查询资料,应该还是 pcre 版本问题,可能 pcre 2版本高的问题吧,尝试下载 pcre-8.42.tar.bz2 版本

下载

解压

3.8、再次尝试执行 ./configure 命令

./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/src/pcre-8.42 --with-zlib=/usr/local/src/zlib-1.2.11

3.9、未报错,再次执行 make && make install

执行结果成功安装 nginx

四、nginx 启动

运行 sbin 下的 nginx 如下

说明运行成功,如果有诸如  nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)   之类的提示,说明是80端口被占用了,使用fuser -n tcp 80查看80端口被谁占用,

使用 kill -9 pid号 关闭后重新启动 nginx 即可

五、nginx 测试

在客户端浏览器输入centos主机ip地址,测试 nginx 服务器是否可访问

nginx无法访问,看一下网络是否连通

网络没问题,很大可能就是防火墙问题了,systemctl status firewalld 查看防火墙状态

可知防火墙处于开启状态,此时可以关闭防火墙,也可将80端口配置为允许,此处配置80端口为允许,

firewall-cmd --zone=public --add-port=80/tcp --permanent

重新载入   firewall-cmd --reload ,并查看80端口开启状态 firewall-cmd --list-ports

到此,成功配置防火墙例外80端口,再次测试 nginx ,如下

说明 nginx 服务器已经搭建成功。

六、设置开机启动

6.1、在系统服务目录里创建nginx.service文件

[root@bogon php7]# vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target [Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true [Install]
WantedBy=multi-user.target

[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

6.2、设置开机启动

systemctl enable nginx.service

七、nginx 安装总结

1、nginx编译安装需要 pcre 和 zlib 库的支持,且  pcre2-10 最新版容易出错,最好使用 pcre-8版本。

2、注意nginx 启动时80端口是否被占用。

3、如果nginx启动成功,但不能访问时,首先查看网络是否处于连通状态,当网络连通时查看防火墙状态及80端口是否被拒绝

CentOS 7 下编译安装lnmp之nginx篇详解的更多相关文章

  1. CentOS 7 下编译安装lnmp之PHP篇详解

    一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.PHP下载 官网 http ...

  2. CentOS 7 下编译安装lnmp之MySQL篇详解

    一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.MySQL下载 MySQL ...

  3. centos下编译安装lnmp

    centos下编译安装lnmp 本文以centos为背景在其中编译安装nginx搭建lnmp环境. 编译安装nginx时,需要事先安装 开发包组"Development Tools" ...

  4. CentOS 7 用户怎样安装 LNMP(Nginx+PHP+MySQL)

    关于 Nginx (发音 “engine x”)这是一款免费.开源.高效的 HTTP 服务器,Nginx是以稳定著称,丰富的功能,结构简单,低资源消耗.本教程演示如何在CentOS 6.5服务器(适用 ...

  5. Centos 6.8编译安装LNMP环境

    Centos 6.8编译安装LNMP环境 参考资料: http://www.jb51.net/article/107429.htm https://phperzh.com/articles/1360 ...

  6. CentOS7编译安装php7.1配置教程详解

    这篇文章主要介绍CentOS7编译安装php7.1的过程和配置详解,亲测 ,需要的朋友可以参考. 1.首先安装依赖包: yum install libxml2 libxml2-devel openss ...

  7. CentOS 6.4 linux下编译安装 LNMP环境

    1.nginx编译安装 2.PHP编译安装 3.mysql编译安装 4.NGINX配置模板 5.CentOS 6.4 php-fpm 添加service 添加平滑启动/重启

  8. centos6.7下编译安装lnmp

    很多步骤不说明了,请参照本人的centos6.7下编译安装lamp,这次的架构是nginx+php-fpm一台服务器,mysql一台服务器 (1)首先编译安装nginx: 操作命令: yum -y g ...

  9. 在CentOS 7下编译安装Nginx+PHP+MySQL环境

    本文转载自:http://www.softeng.cn/?p=156,本文已获得作者授权,未经作者同意,不可转载. 1.前言 本文适合于已经对Linux操作系统具有基本操作经验,并且能够在Linux或 ...

随机推荐

  1. activiti源码分析学习

    activiti源码分析学习导语 目前项目中用activiti来做工作流的相关工作,最近遇到一些情况下,公司二次开发的流程图渲染出现了问题,会造成流程图出不来的情况.初步分析数据库中记录以及简单的代码 ...

  2. No.17 selenium学习之路之判断与等待

    一.三种等待方式 1.sleep 加载time库.time.sleep() 休眠单位以秒为单位 2.implicitly_wait() 等待页面完全加载完成(左上角转圈结束) 参数为等待时间,等待页面 ...

  3. HttpRunner接口自动化测试框架

    简介 2018年python开发者大会上,了解到HttpRuuner开源自动化测试框架,采用YAML/JSON格式管理用例,能录制和转换生成用例功能,充分做到用例与测试代码分离,相比excel维护测试 ...

  4. JS Ajax异步请求发送列表数据后面多了[]

    还在苦逼的写代码,这里就不详细了,直接抛出问题: 如图所示: 前端ajax请求向后端发送数据的时候,给key添加了[]出现很多找不到原因, 后面在说 解决方法: 暂时先这样记录一下,下次方便查找,好了 ...

  5. 涨姿势系列之——内核环境下花式获得CSRSS进程id

    这个是翻别人的代码时看到的,所以叫涨姿势系列.作者写了一个获取CSRSS进程PID的函数,结果我看了好久才看懂是这么一个作用.先放上代码 HANDLE GetCsrPid() { HANDLE Pro ...

  6. CCF CSP 201709-3 JSON查询

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201709-3 JSON查询 问题描述 JSON (JavaScript Object Not ...

  7. Spark(十三)SparkSQL的自定义函数UDF与开窗函数

    一 自定义函数UDF 在Spark中,也支持Hive中的自定义函数.自定义函数大致可以分为三种: UDF(User-Defined-Function),即最基本的自定义函数,类似to_char,to_ ...

  8. Looksery Cup 2015 F - Yura and Developers 单调栈+启发式合并

    F - Yura and Developers 第一次知道单调栈搞出来的区间也能启发式合并... 你把它想想成一个树的形式, 可以发现确实可以启发式合并. #include<bits/stdc+ ...

  9. Winsock—I/O模型之选择模型(一)

    Winsock中提供了一些I/O模型帮助应用程序以异步方式在一个或多个套接字上管理I/O. 这样的I/O模型有六种:阻塞(blocking)模型,选择(select)模型,WSAAsyncSelect ...

  10. 7-15 Square Destroyer 破坏正方形 uva1603

    先是处理所有的正方形 从边长为1开始 将其边存好 满边存好 然后不断扫描正方形  并且进行拆除  直到拆完或者 步数小于等于9(启发方程  因为n小于等于5  九次足以将所有的拆完) 代码实施有很多细 ...