Nginx(十九)nginx配置php

article/2025/3/16 23:56:38

一   了解的基础知识

1) nginx'本身不能'处理PHP,它只是个'web服务器-->只能处理静态请求',当接收到请求后,如果是php请求,则'发给php解释器处理',并把结果返回给'web服务器',最后'再给'客户端备注: nginx'默认并不支持'php等动态语言,nginx是服务器'主要用来'处理HTTP请求,其本身'并不支持'解析运行PHP代码的能力,需要'配置php-fpm'来运行php代码2) nginx一般是把'请求发fastcgi管理进程'处理,fascgi管理进程'选择cgi子进程'处理结果并'返回'被nginx
​
备注: 原生的Nginx并'不支持动态语句'的解析,它通过'改良过的cgi方式'来实现对后端'动态脚本语言'的支持,像'fastcgi、scgi、uwsgi'或'直接代理到后端'的动态解析服务器

FastCGI模块(FastCGI)

二   nginx中配置php运行环境

①  apache的mod_phpnginx的php-fpm区别

+++++++++'apache的mod_php模块'+++++++++1)apache的'mod_php'模块内置于apache中,算是apache派生的子进程2)一旦配置了该模块,不管是静态资源还是动态资源都会使用'mod_php'模块,'开销大'+++++++++'nginx的fastcgi模式'+++++++++说明: fastcgi'不是'nginx派生的'子进程'好处: fastcgi和nginx服务器可以'完全独立'-->'解耦',构成'分布式'

②  对于nginx配置文件中的fastcgi_param相关参数的理解

fastcgi_parms和fastcgi.conf的'区别'和'联系'

​+++++++++++++在php可'打印'出上面的'服务环境变量'​+++++++++++++echo $_SERVER['REMOTE_ADDR']

③  php的cgi.fix_pathinfo解析

将cgi.fix_pathinfo=1这一行去掉注释将1改为0的用意

高版本的php fpm 设置项 cgi.fix_pathinfo=1 漏洞不再出现

fastcgi_split_path_info含义

Nginx(PHP/fastcgi)的PATH_INFO配

fastcgi_param PATH_INFO $path_info;                             可'自定义'变量

参考博客

③  php在nginx中的配置方式

使用'FastCGI方式'-->'PHP'在'Nginx中'运行模式(Nginx+ PHP-FPM)补充: nginx可以和'任何第三方提供解析的处理器'实现连接从而'实现对PHP的解析'
说明: 从前面的'php-fpm.conf'的配置文件中我们知道'只能解析'以'.php、.php5、.php7'结尾的文件++++++++'nginx对以.php结尾url请求的处理'++++++++location ~ \.php$ {# 最好指定root指令try_files $uri =404; '非必要'fastcgi_split_path_info ^(.+.php)(/.+)$;' 非必要' --> '#正则解析路径'## NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini'方式1': With php5-cgi alone:-->'本地'#fastcgi_pass 127.0.0.1:9000;'方式2': With php5-fpm:#fastcgi_pass unix:/var/run/php5-fpm.sock;-->'本地''方式3': 通过'upstream模块' --> '远程'fastcgi_pass http://phpinclude fastcgi_params;    --> '先参数初始化'fastcgi_index index.php; '首页'fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; '再修改默认参数'    
}​+++++++++++++++document的'解读'​+++++++++++++++

④  案例讲解

++++++++++++++'涉及权限问题'++++++++++++++说明: 由于nginx启动的用户身份是'nginx',而'php-fpm'启动的用户身份是'apache'最佳实践: 最好二者都'统一指定'为同一用户,推荐指定为'nginx'说明: php的资源目录'不是必须'放置到'nginx的资源目录'下,任何'可读取的位置'即可

+++++++++'重启服务'+++++++++systemctl restart nginx+++++++++'测试效果'+++++++++

备注: 'nginx日志查看'

⑤  开启php-fpmstatus页面

+++++++++'重启或者重载php-fpm和nginx'+++++++++systemctl reload nginxsystemctl reload php74-php-fpm.service

http://nginx.wzj.com/php-status?full

php-fpm 状态页面详解

三   PHP页面不解析直接下载

+++++++++++++++'客户端.php结尾文件逻辑'+++++++++++++++1)nginx配置php的话-->以'php'结尾的请求,nginx'直接转发给'fastcgi进行处理,nginx只需要接收'fastcgi'处理后的内容即可2)'没有配'置的话-->nginx首先会在'/etc/nginx/mime.types'查询'是否有'该类型-->(默认没有),然后利用nginx自身的' default_type   application/octet-stream;'告诉'客户端'是一个二进制流,客户端受到之后'会直接下载''没有配置'的现象:nginx无法解析'PHP、perl、python'程序,一开启网页就'直接下载'程序++++++++'排查思路'++++++++(1)先检查PHP环境(2)再检查php-fpm

四   反向代理负载均衡的关系

①  关系

+++++++++++'反向代理'和'负载均衡'是什么关系+++++++++++1)反向代理和负载均衡这两个词'经常出现在一起'但他们实际上是'不同的概念'2)'负载均衡'它更多的是'强调'的是一种'算法或策略',将请求'分布到不同的机器上',因此实际上也'起到了反向代理'的作用

②  fastcgi与反向代理

+++++++++++'负载均衡'也可以用在 'fastcgi_pass' 上+++++++++++fastcgi_pass http://php-upstream如果使用负载均衡,可能存在一个 'session 失效'的问题你的每次请求可能分配到不同的服务器解决方法: 是把 Memcached 或 Redis '作为 session 存储'的方式,而且还可以'提高性能'-->分布式

 ③  proxy_pass 和 fastcgi_pass 的区别 

clipboard.png


http://chatgpt.dhexx.cn/article/rvUiPvPs.shtml

相关文章

NGINX配置PHP网站

NGINX配置PHP网站 NGINX配置PHP网站源码安装NGINX安装PHP修改PHP参数重启PHP修改nginx配置文件重启NGINX测试解决报错问题 NGINX配置PHP网站 源码安装NGINX 脚本一键安装: 安装路径:/opt/nginx 源码路径:/root/ #!/bin/bash useradd -s /sb…

【Nginx和PHP教程(一)】安装、配置及初步使用

1. nginx基本介绍 2. nginx安装和环境配置 3. php基本介绍 4. php的安装和环境配置 5. JavaScript、php、html等的区别 6. ubuntu系统中php的安装和环境配置 1. nginx基本介绍 Nginx(发音为“engine X”)是一款高性能的、轻量级的Web服务器软件&am…

JADE开发求助

求助:JADE创建Agent时遇到这种情况是怎么回事?

Jade入门学习

title: Jade入门学习 date: 2018-05-17 20:09:31 tags: [jade, pug] jade是超高性能的node JavaScript模板引擎,有着非常强大的API和大量杰出的特性。它主要针对node的服务端。由于商标的原因,改为Pug,哈巴狗。Pug有它本身的缺点——可移植性…

Jade linux 位置,jade 6.5 安装教程

简介: MDI Jade是一款XRD分析软件,可以分析X射线衍射,分析出衍射图谱,获得材料的成分、材料内部原子或分子的结构或形态等信息的研究手段。 MDI Jade可以对X射线衍射进行分析,通过分析得到的结果,软件可以判…

jade支持html,Jade !HTML框架

1.电脑要有nodejs npm install jade -g 3.pwd 4.subl .打开编译器 格式为jade的文件 5.jade jadetut.jade 编译 安装 $ npm install jade --global -usage $ jade [options] [dir|file ...] Options: -h, --help output usage information pads pagers set-top boxes 语法 incl…

MDI Jade6.5安装教程-附安装包

安装软件前,请退出360、腾讯电脑管家等安全和杀毒软件。 1.双击setup.exe 2.选择是 3.下一步 4.同意许可协议,下一步 5.下一步(默认不要改),如果需要更改,希望只更改盘符&am…

java模板引擎 jade_jade模板引擎

jade是使用JavaScript实现,可供nodejs使用的高性能模板引擎(性能高不高,有些争议。姑且称之为高性能吧!)。模板引擎有很多,主要使用比较广泛的是jade和ejs,modejs项目默认使用jade作为模板引擎,我也就不多说…

jade java_JADE提升篇

以下如果未特殊声明,都在JADE管理器中运行,然后再Eclipse控制台中查看! JADE行为类 在前面的例子中,Agent所作的工作都定义在了setup方法中,实际上它具有的行为和执行的动作都应该定义在Behavious类中,我们…

Windows系统缺失jade6.dll文件导致程序无法运行解决办法

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下…

JADE平台搭建

首先从下列官方网站下载必要的软件或文件。 JADE官方网站:http://jade.tilab.com/; JAVA环境搭建之JDK官网:http://www.oracle.com/technetwork/java/javase/downloads/index.html eclipse软件下载:https://www.eclipse.org/do…

html jade文件,Jade模板

Express框架里内嵌了Jade模板引擎。正好项目里也要用到,本篇整理了下Jade的相关用法。 安装与执行 标签和属性 多行文本 变量 语句 Mixin 模板 注释 过滤器 安装与执行 安装很简单: npm install jade –global 安装后本地随便新建一个sample.jade文件&am…

MDI Jade6的安装(含ocx控件的安装、PDF索引建立、修改注册表)

前言 关于介绍及安装jade的资料及教程,上小木虫、六维、百度等一搜一大堆,这里不再详细介绍及逐一列举。 这里只谈干货,里面很多问题需要仔细摸索解决,这里就一一说明了。 记住:不管是安装文件还是所需要的文件&…

Jade6安装及PDF卡片导入

2020年是中国脱贫攻坚的收官之年,也是全面建成小康社会的关键一年。在这样一个具有标志性意义的年代,我觉得应该没有人像我一样还用着过渡版的Windows 8了。别问为什么不装Windows 10,因为电脑带不动,毕竟伴随我进行了十年的艰苦征…

Ubuntu系统重装Ubuntu系统

系统环境:Ubuntu18.04 目的:重装Ubuntu系统 步骤: 1. sudo usb-creator-gtk 2. 选择iso系统文件 Ubuntu 18.04.4.XXX.iso 3. 选择u盘,并选择Make Startup Disk 4. 制作完成后重启电脑,长按F12(联想笔记本&#xf…

【2021】重装ubuntu16.04系统

2021年3月3日19点47分 本人因为种种原因导致ubuntu16.04系统崩溃,现需要重装系统,故记录下这次重装ubuntu之旅。 原因:ubuntu16.04 - 检测到系统程序出现问题 一直在登录用户的界面,登录进去后再闪退出来,一直循环登…

重装Ubuntu系统及系列软件安装

重装Ubuntu系统及系列软件安装 【1】安装ubuntu20.04.03系统下载Ubuntu20.04.03系统更换系统apt的源 【2】CUDA和cudnn安装下载CUDA安装包并安装 【3】pycharm的安装【4】conda的安装【5】兼容Tf1和30显卡 【1】安装ubuntu20.04.03系统 下载Ubuntu20.04.03系统 【下载地址】h…

双系统重装Ubuntu

完全删除Ubuntu 1、右键此电脑-管理-磁盘管理,删除Ubuntu所在卷(Ubuntu EFI分区无法删除) 2、删除Ubuntu EFI分区 ①Win R 输入cmd打开终端,输入 diskpart 进入磁盘工具 ②输入 list disk 查看磁盘,输入 select d…

Windows重装Ubuntu系统

一,去官网下载Ubuntu镜像 二、下载镜像安装工具(win32diskManger) 下载之后完成安装 三、制作Ubuntu安装盘 打开win32diskManger 选择镜像文件,选择u盘,确认后写入,请备份好资料,写入后数据会格…

Ubuntu16.04重装系统

Ubuntu16.04重装系统 安装显卡驱动第一步 禁用nouveau第二步 下载驱动第三步 进入命令行模式,关闭lightdm第四步 安装显卡驱动第五步 查看Nivida 设置更新与源地址步骤 安装gnome桌面安装搜狗输入法安装谷歌浏览器安装Anaconda3安装Pycharm安装keras下载Cuda安装cuD…