当前位置: 首页 > news >正文

Nginx之lnmp架构

目录

  • 一.什么是LNMP
  • 二.LNMP环境搭建
    • 1.Nginx的搭建
    • 2.安装php
    • 3.安装数据库
    • 4.测试Nginx与PHP的连接
    • 5.测试PHP连接数据库

一.什么是LNMP

LNMP是一套技术的组合,L=linux,N=nginx,M=mysql,P=php

首先Nginx服务是不能处理动态资源请求,那么当用户发起动态请求时, Nginx又是如何进行处理的?

  • nginx仅支持解析html文件;图片传输;视频传输;不支持 php、python、java等脚本文件,因此php,python都是nginx通过fastcgi,uwcgi协议来转发的,java这是通过tomcat

  • 当用户发起http请求,请求会被Nginx处理。

  • 如果是静态资源请求Nginx则直接返回,

  • 如果是动态请求Nginx则通过fastcgi协议转交给后端的PHP程序处理

  • 如果这个动态请求要读取数据库,那么php就会继续向后请求mysql数据库读取需要的数据

    Nginx与Fast-cgi详细工作流程

二.LNMP环境搭建

1.Nginx的搭建

# 安装Nginx
[root@tdm ~]# yum -y install nginx # 开机自启
[root@tdm ~]# systemctl start nginx
[root@tdm ~]# systemctl enable nginx

2.安装php

# 检查是否安装过,有的话卸载
[root@tdm ~]# rpm -qa|grep php# 配置php yum源
[root@tdm /etc/yum.repos.d]# vim /etc/yum.repos.d/php.repo
[php-webtatic]
name = PHP Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0# 生成缓存
yum repolist#安装php
yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb#修改php配置,统一使用nginx用户,与nginx用户一致# 启动php-fpm
systemctl start php-fpm
systemctl enable php-fpm# 检查进程和端口
ps -ef | grep '[p]hp-fpm'netstat -lntup |grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      7818/php-fpm: maste

在这里插入图片描述

3.安装数据库

# 安装mariadb
yum install -y mariadb-server# 启动并加入开机自启
systemctl start mariadb
systemctl enable mariadb# 检查MySQL端口和进程
[root@tdm ~]# netstat -lntup | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      8143/mysqld
ps -ef | grep '[m]ysqld'# 设置Mariadb密码123456
[root@web01 ~]# mysqladmin -uroot password '123456'

在这里插入图片描述

4.测试Nginx与PHP的连接

# php.conf文件配置
server {listen 80;server_name 182.92.243.89;root /code/php;location / {index index.php index.html;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include /etc/nginx/fastcgi_params;  }
}# 创建站点目录
[root@tdm code]# mkdir php
[root@tdm php]# vim info.php
<?php
phpinfo();
?>

在这里插入图片描述

5.测试PHP连接数据库

# 在/code/php目录下创建mysql.php文件,填入对应的数据库IP、用户名、密码
vim  /code/php/mysql.php
<?php$servername = "localhost";   # //修改相应配置。如果不是本机,则需修改相应数据库用户权限,否则无法访问$username = "root";$password = "123";// 创建连接$conn = mysqli_connect($servername, $username, $password);// 检测连接if (!$conn) {die("Connection failed: " . mysqli_connect_error());}echo "php可以连接MySQL";
?>

在这里插入图片描述
参考:https://zhuanlan.zhihu.com/p/644362162

http://www.lryc.cn/news/123477.html

相关文章:

  • C# 使用FFmpeg.Autogen对byte[]进行编解码
  • websocket是多线程的嘛
  • CentOS7.9 禁用22端口,使用其他端口替代
  • 2023国赛 高教社杯数学建模ABCDE题思路汇总分析
  • 【网络层+数据链路层】深入理解IP协议和MAC帧协议的基本原理
  • 银行家算法【学习算法】
  • 萤石直播以及回放的接入和销毁
  • C语言易错知识点总结2
  • Go学习-Day1
  • 冠达管理:机构密集调研医药生物股 反腐政策影响受关注
  • 安装Tomac服务器——安装步骤以及易出现问题的解决方法
  • JVM 性能优化思路
  • Labview解决“重置VI:xxx.vi”报错问题
  • 2023河南萌新联赛第(五)场:郑州轻工业大学C-数位dp
  • 找不到mfc140u.dll怎么办?mfc140u.dll丢失怎样修复?简单三招搞定
  • 了解 Langchain️是个啥?:第 1 部分
  • Axure RP移动端高保真CRM办公客户管理系统原型模板及元件库
  • 【JAVA】我们常常谈到的方法是指什么?
  • 今天来给大家聊一聊什么是Hierarchical-CTC模型
  • cout还是printf?C++教程 - How to C++系列专栏第4篇
  • Linux NTP原理及配置使用
  • SAP系统是什么呢?它有哪些优势?
  • js数组学习(ES6+)
  • DoIP诊断入门
  • Amazon CloudFront 部署小指南(五)- 使用 Amazon 边缘技术优化游戏内资源更新发布...
  • undefined reference to `dlopen‘ ‘SSL_library_init‘ `X509_certificate_type‘
  • DHCPv6之GitHub项目Android侧验证
  • 简单易懂的 Postman Runner 参数自增教程
  • BeanFactory与Applicationcontext(1)
  • C++初阶之模板深化讲解