lnmp架构的工作原理介绍及lnmp架构搭建操作流程展示

1、一、lnmp(lamp)的定义
apache一般是把php当做自己的一个模块来启动;而ngnix则是把http请求变量转发给php进程,即php独立进程,与ngnix通信,这种方式叫做FastCGI运行方式。
apache所编译的php不能用于ngnix。

lamp=linux+apache+mysql+php
lnmp=linux+nginx+mysql+php  

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统
二、lnmp的工作原理
工作流程:
1:client(http协议发起请求)-Nginx(location判断为静态页面请求)->html->client
2.:client(http协议发起请求)-Nginx(location判断为动态页面请求)->fastcgi协议快速通用网关接口->php-fpm(php进程管理)->调用wapper工作进程->调用php解析->进入MySQL->-返回过程->php-fpm->fastcgi->nginx->http->client工作完成

在这里插入图片描述
FastCGI
CGI全称是"通用网关接口"(Common Gateway Interface),web服务器与你的或其它机器上的程序进行"交谈"的一种工具,其程序一般运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。
FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后将结果返回给HTTP服务器。这在处理高并发访问时几乎是不可用的。另外传统的CGI接口方式安全性也很差,现在已经很少使用了。
FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能
Nginx+FastCG
Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket(这个socket可以是文件socket,也可以是ip socket)。
    wrapper: 为了调用CGI程序,还需要一个FastCGI的wrapper(wrapper可以理解为用于启动另一个程序的程序),这个wrapper绑定在某个固定socket上,如端口或者文件socket。当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接收到请求,然后Fork(派生)出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据(html页面或者图片)发送给客户端。这就是Nginx+FastCGI的整个运作过程
PHP-FPM
PHP-FPM(PHP FastCGI Process Manager)意:PHP FastCGI 进程管理器,用于管理PHP 进程池的软件,用于接受web服务器的请求。
PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。
在这里插入图片描述
三、首先配置MySQL组件
yum安装和编译安装的区别
yum安装会把所有的模块都安装进去,不管使用不使用都会安装
手动编译安装,安装服务的时候需要什么就编译安装什么模块,这样系统比较干净
MySQL源码编译安装要求虚拟机内存硬盘大小不能小于20G否则的话编译过程会出问题,而且速度缓慢,为了加快速度,可以增加CPU核数和内存大小
实验环境

主机信息	                        主机功能
虚拟机server1(172.25.254.1)	 用来搭建lnmp架构
真机(172.25.24.66)	             用来测试

3.1软件安装
安装之前先安装gcc
mysql没有configure.可以使用cmake执行安装编译
注意每次编译失败都要把目录下的CMzkeCache.txt这个缓存文件删掉
在这里插入图片描述

[root@server1 mysql-5.7.30]#
指定mysql安装位置 
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \
 -DMYSQL_UNIX_ADDR=/usr/local//lnmp/mysql/data/mysql.sock  \套接字文件存放位置,程序入口
 -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \
 -DEXTRA_CHARSETS=all \添加扩展
 -DDEFAULT_CHARSET=utf8\添加默认字符节
 -DDEFAULT_COLLATION=utf8_general_ci \ mysql存储引擎 
 -DWITH_MYISAM_STORAGE_ENGINE=1 \
 -DWITH_INNOBASE_STORAGE_ENGINE=1\ 
 -DWITH_MEMORY_STORAGE_ENGINE=1 
 -DWITH_READLINE=1\ 
 -DENABLED_LOCAL_INFILE=1 \ 加载本地数据
 -DMYSQL_USER=mysql \ 使用mysql用户运行程序
 -DMYSQL_TCP_PORT=3306\ 指定默认端口号
 -DWITH_BOOST=boost/boost_1_59_0/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

 yum install -y gcc-c++

在这里插入图片描述
在这里插入图片描述
清除缓存文件继续预编译安装
在这里插入图片描述

在这里插入图片描述
3.2修改文件权限
在这此前必须创建mysql用户
在这里插入图片描述

ln -s /usr/local/lnmp/mysql/bin/* /usr/local/bin/再做个软连接

3.3配置服务文件

[root@server1 mysql-5.7.30]# cd /usr/local/lnmp/mysql/ 进入生成的mysql目录

在这里插入图片描述

[root@server1 include]# cp default_my.cnf /etc/my.cnf 复制文件
cp: overwrite ‘/etc/my.cnf’? y
[root@server1 include]# cd /usr/local/lnmp/mysql/support-files/ 进入此目录
[root@server1 support-files]# cp -a mysql.server /etc/init.d/mysqld  复制文件
[root@server1 support-files]# chmod +x /etc/init.d/mysqld  添加可执行权限
[root@server1 support-files]# chkconfig mysqld on  配置开机启动
[root@server1 support-files]# systemctl status mysqld.service   查看服务状态
● mysqld.service - LSB: start and stop MySQL
   Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:systemd-sysv-generator(8)

在这里插入图片描述
3.4初始化及启动服务mysql
在这里插入图片描述

[root@server1 support-files]# systemctl start mysqld
[root@server1 support-files]# mysql_secure_installation 

在这里插入图片描述
后的的流程都是y然后回车
在这里插入图片描述
查看数据库,到此数据库搭建完成

php搭建过程
php安装

[root@server1 ~]# tar zxf php-7.4.1.tar.gz 
[root@server1 ~]# cd php-7.4.1/
[root@server1 php-7.4.1]# ls
appveyor             build          CODING_STANDARDS.md  CONTRIBUTING.md  EXTENSIONS  NEWS                 php.ini-production  run-tests.php  tests   UPGRADING            Zend
azure                buildconf      configure            docs             LICENSE     pear                 README.md           sapi           travis  UPGRADING.INTERNALS
azure-pipelines.yml  buildconf.bat  configure.ac         ext              main        php.ini-development  README.REDIST.BINS  scripts        TSRM    win32
[root@server1 php-7.4.1]# ./configure 
--prefix=/usr/local/lnmp/php 
--with-config-file-path=/usr/local/lnmp/php/etc 
--with-mysqli=/usr/local/lnmp/mysql/bin/mysql_config 
--enable-soap --enable-mbstring=all 
--enable-sockets 
--with-pdo-mysql=/usr/local/lnmp/mysql 
--enable-gd --without-pear --enable-fpm

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
php服务配置
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上就是lnmp架构这种php服务 的搭建流程
接下来搭建nginx服务

./configure 
--prefix=/usr/local/lnmp/nginx 
--with-http_ssl_module 
--with-http_stub_status_module 
--user=nginx --group=nginx

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
nginx服务配置
在这里插入图片描述
隐藏nginx版本号

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
减小nginx软件包大小,节约系统空间
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

编辑nginx的配置文件添加默认访问页面包含php页面
[root@server1 lnmp]# vim nginx/conf/nginx.conf 

在这里插入图片描述
**打开nginx的动态请求 **
在这里插入图片描述
在这里插入图片描述
访问测试
在这里插入图片描述

[root@server1 html]# curl -I 172.25.254.1
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 14 May 2020 20:30:41 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.4.1

在这里插入图片描述

 cmake 
 -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql  
 -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock 
  -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data  -DEXTRA_CHARSETS=all  
  -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  
  -DWITH_MYISAM_STORAGE_ENGINE=1  
  -DWITH_INNOBASE_STORAGE_ENGINE=1 
   -DWITH_MEMORY_STORAGE_ENGINE=1  
   -DWITH_READLINE=1  
   -DENABLED_LOCAL_INFILE=1  
   -DMYSQL_USER=mysql 
   -DMYSQL_TCP_PORT=3306 
   -DWITH_BOOST=boost/boost_1_59_0/
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建基于LNMP(Linux + Nginx + MySQL + PHP)基础架构的政务平台,你可以按照以下流程进行: 1. 选择合适的Linux发行版:选择一个稳定、安全且适合政务应用的Linux发行版,如Ubuntu、CentOS等。 2. 安装操作系统:根据选择的Linux发行版,按照官方文档或参考在线教程进行操作系统的安装。 3. 系统配置:完成操作系统的安装后,进行一些基本的系统配置,如网络设置、防火墙配置等。 4. 安装Nginx:安装Nginx作为Web服务器。可以通过包管理器(如apt、yum)进行安装,也可以从源码编译安装。 5. 安装MySQL:安装MySQL数据库服务器,用于存储和管理数据。同样可以通过包管理器进行安装。 6. 配置Nginx和MySQL:根据实际需求,对Nginx和MySQL进行配置。配置文件通常位于`/etc/nginx/`和`/etc/mysql/`目录下。 7. 安装PHP:安装PHP解释器和相关扩展。可以使用包管理器进行安装,也可以从源码编译安装。 8. 配置Nginx和PHP:将Nginx与PHP进行集成,配置Nginx以将请求转发给PHP解释器处理。配置文件通常位于`/etc/nginx/`目录下。 9. 部署应用程序:根据政务平台的具体要求,进行应用程序的部署。这可能涉及到安装和配置各种应用程序和框架,如Laravel、WordPress等。 10. 数据库配置:根据政务平台的数据库需求,进行数据库的安装和配置。需要创建数据库、用户,并进行权限设置。 11. 安全设置:确保系统和应用程序的安全性。这包括使用合适的防火墙规则、加密通信、限制访问权限等。 12. 监控和日志:设置系统监控和日志记录机制,以便及时发现和解决问题。 13. 测试和优化:完成搭建后,进行测试和优化,确保平台的稳定性和性能。 14. 上线运维:将平台部署到生产环境后,进行持续的运维工作,包括系统更新、备份、故障排除等。 请注意,上述流程仅提供了一个基本的指导,具体的搭建流程可能因政务平台的具体需求而有所不同。建议在搭建过程中参考相关文档和教程,并根据实际情况进行适当调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值