LNMP源码编译安装及一键部署LNMP架构

一、LNMP

1、LNMP介绍

LNMP架构是目前成熟的企业网站的应用模式之一,指的是协同工作的一整台系统和相关软件,能够提供动态web站点服务及其应用开发环境  LNMP是一个缩写词,具体包括Linux操作系统,Nginx服务器,Mysql数据库服务器,PHP(或perl,python)网页编程语言

1.1 LNMP工作原理

客户端请求访问一个地址,这个请求会到达nginx服务器,

nginx服务器首先判断是否为静态请求,如果是静态请求则直接返回结果到达客户端,

如果是动态请求,它会将请求传给php-fpm这个服务来处理,但是php-fpm不做处理,因为php-fpm是用来管理进程的程序,他会调用PHP解析器进程,php解析进程会来处理这个php文件,如果其中需要调用数据,那么再通过mysql.sock连接到数据库进行读取数据,再进程处理,处理完成之后再交给php-fpm服务进程,php-fpm服务进程再交给nginx服务器,最后到达客户端。

1.2、LAMP工作原理

客户端请求访问一个地址,这个请求会到达apache服务器,

apache服务会判断是动态请求还是静态请求,如果是静态请求,apache服务将会直接返回到客户端。
如果是动态请求,apache服务会调用自己的一个模块libphp7.so模块进行解析处理,如果需要mysql数据库的支持,还会通过mysql.sock来连接数据库进行读去数据,处理完成之后,将返回到apache服务器,最后返回到客户端。
 

2、LAMP和LNMP的区别


LAMP表示为:linux、apache、mysql、php

LNMP表示为:linux、nginx、mysql、php

主要区别在于web服务器与php后台之间的转发存在区别,

当nginx作为web服务器时,nginx通过cgi接口协议转发到php-fpm服务程序上,nginx服务和php-fpm服务时相对独立的,然后由php-fpm程序调用对应的php解析进行来完成处理。
当apache作为web服务器时,apache是调用libphp7.so模块来进行处理,这个模块是会随着apache的启动而启动。内嵌在apache中的一个模块。

3、编译安装的优点

①具有较大的自由度,功能可定制

②可及时获得最新的软件版本

③普遍适用于大多数Linux版本,便于一直使用

4、各组件的主要作用


(平台)Linux: 指的是一个基于 CentOS/Debian 编写的 Nginx、Linux、MySQL、PHP,可以在独立主
机上轻松的安装 LNMP 生产环境。本案例主要介绍 LNMP 框架安装方法以及部署 Discuz!社
区论坛应用

(前台)Nginx : 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,
体现更高的效率。Nginx 作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,
也可以支持作为 HTTP 代理服务器对外进行服务。Nginx 采用 C 语言进行编写,不论是系统
资源开销还是 CPU 使用效率都比 Perlbal 要好的多。Nginx 作为邮件代理服务器:Nginx 同
时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服
务器),Last/fm 描述了成功并且美妙的使用经验。Nginx 安装非常的简单,配置文件非常
简洁(还能够支持 perl 语法)。Nginx 支持平滑加载新的配置,还能够在不间断服务的情
况下进行软件版本的升级。

(后台)Mysql : MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前被 Oracle 公
司收购。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是较好
的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL 是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数
据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用
于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开
发都选择 MySQL 作为网站数据库。

(中间连接): PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器,
由于 Nginx 服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 处理。

FastCGI:FastCGI是一个可伸缩地、高速地在HTTP服务器和动态脚本语言间通信的接口(FastCGI接口在Linux下是socket(可以是文件socket,也可以是ip socket)),主要优点是把动态语言和HTTP服务器分离开来。多数流行的HTTP服务器都支持FastCGI,包括Apache、Nginx和lightpd。
FastCGI:作用:把动态语言和HTTP分离开来,动静分离
 

二、LNMP架构的部署

部署思路#
●安装 Nginx 服务
●安装 MySQL 服务
●安装配置 PHP 解析环境
●部署 Discuz!社区论坛 Web 应用

准备环境:centos7系统

关闭系统核心防护 setence 0

关闭防火墙 systemctl stop firewalld

1、安装nginx服务

1、安装环境依赖包

 Nginx 的配置及运行需要 pcre、zlib 等软件包的支持,因此应预先安装这些软件的开发
包(devel),以便提供相应的库和头文件,确保 Nginx 的安装顺利完成

首先安装环境依赖包, yum -y install gcc gcc-c++ pcre-devel zlib-devel make

2、编译安装Nginx

然后将下载的nginx压缩包拖入 /opt 目录

使用 tar -zxvf 命令解压 nginx-1.15.9.tar.gz

解压后 cd nginx-1.15.9/

运行文件自带的检查文件  ./configure

LNMP源码编译安装及一键部署LNMP架构_第1张图片

然后用make && make install 安装

LNMP源码编译安装及一键部署LNMP架构_第2张图片

 安装完成后会在 /usr/local目录下生成nginx文件目录,运行nginx文件启动nginx

LNMP源码编译安装及一键部署LNMP架构_第3张图片

启动成功后,打开浏览器,输入本机ip地址则可打开nginx页面

LNMP源码编译安装及一键部署LNMP架构_第4张图片

3、添加 Nginx 系统服务

为了使 Nginx 服务的启动、停止、重载等操作更加方便,可以编写基于 CentOS 7.6 的 Nginx 服务控制文件使用 systemctl 工具来进行管理,CentOS7.6 系统的管理习惯 [root@localhost ~]# vim /lib/systemd/system/nginx.service

vim /lib/systemd/system/nginx.service
[Unit]                                                              ####描述
Description=nginx                                        ####描述服务类别
After=network.target
[Service]
Type=forking                                                       ###后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid              ###PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx                ###启动服务
ExecReload=/bin/kill -s HUP $MAINPID           ###根据PID重载配置
ExecStop=/bin/kill -s QUIT $MAINPID               ###根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target

#给权限并开启服务

chmod 754 /lib/systemd/system/nginx.service
systemctl enable nginx.service
开启nginx服务可能需要重启虚拟机

4、检查通过systemctl命令能否正常 启动、停止、重启、重载 Nginx 服务

LNMP源码编译安装及一键部署LNMP架构_第5张图片

LNMP源码编译安装及一键部署LNMP架构_第6张图片

LNMP源码编译安装及一键部署LNMP架构_第7张图片

5、添加nginx命令到环境变量中

让系统识别nginx的操作命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

LNMP源码编译安装及一键部署LNMP架构_第8张图片


 

你可能感兴趣的:(服务器,运维)