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

Nginx+php配置文件及原理解析

采用nginxPHP作为webserver的架构模式在现如今运用相当广泛。然而第一步需要实现的是如何让nginx正确的调用php。由于nginx调用php并不是如同调用一个静态文件那么直接简单是需要动态执行php脚本。所以涉及到了对nginx.conf文件的配置。这一步对新手而言一般需要网上查资料对于一般的熟手而言也有不少同学并没有搞透彻为何要如此这般配置。本文的主要内容为如何在nginx server中正确配置php调用方法以及配置的基本原理。一、nginxphp运行原理首先简单的讲一讲原理目前主流的nginxphp的运行原理如下1、nginx的worker进程直接管理每一个请求到nginx的网络请求。2、对于php而言由于在整个网络请求的过程中php是一个cgi程序的角色所以采用名为php-fpm的进程管理程序来对这些被请求的php程序进行管理。php-fpm程序也如同nginx一样需要监听端口并且有master和worker进程。worker进程直接管理每一个php进程。3、关于fastcgifastcgi是一种进程管理器管理cgi进程。市面上有多种实现了fastcgi功能的进程管理器php-fpm就是其中的一种。再提一点php-fpm作为一种fast-cgi进程管理服务会监听端口一般默认监听9000端口并且是监听本机也就是只接收来自本机的端口请求所以我们通常输入命令 netstat -nlpt|grep php-fpm 会得到tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1057/php-fpm这里的127.0.0.1:9000 就是监听本机9000端口的意思。4、关于fastcgi的配置文件目前fastcgi的配置文件一般放在nginx.conf同级目录下配置文件形式一般有两种fastcgi.conf 和 fastcgi_params。不同的nginx版本会有不同的配置文件这两个配置文件有一个非常重要的区别fastcgi_parames文件中缺少下列配置fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;我们可以打开fastcgi_parames文件加上上述行也可以在要使用配置的地方动态添加。使得该配置生效。5、当需要处理php请求时nginx的worker进程会将请求移交给php-fpm的worker进程进行处理也就是最开头所说的nginx调用了php其实严格得讲是nginx间接调用php。了解了上面的这五个简单原理在nginx中配置php调用方法就变得易如反掌。二、配置文件直接贴上代码逐行进行讲解此处贴出一个能正常启动php脚本的最简nginx vhost配置12345678910server {listen 8011;server_nametest.cn;location ~ \.php?.*$ {root/share/test;fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}}1、第一个大括号 server{ }不必多说代表一个独立的server2、listen 8011代表该server监听8011端口3、location ~ \.php?.*${ }代表一个能匹配对应uri的location用于匹配一类uri并对所匹配的uri请求做自定义的逻辑、配置。这里的location匹配了所有带.php的uri请求例如http://192.168.244.128:8011/test.php/asdasd http://192.168.244.128:8011/index.php等4、root /share/test请求资源根目录告诉匹配到该location下的uri到/share/teset文件夹下去寻找同名资源。5、fastcgi_pass 127.0.0.1:9000这行开始是本文的重点这行代码的意思是将进入到该location内的uri请求看做是cgi程序并将请求发送到9000端口交由php-fpm处理。6、fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 这行配置意思是动态添加了一行fastcgi配置配置内容为SCRIPT_FILENAME告知管理进程cgi脚本名称。由于我的nginx中只有fastcgi_params文件没有fastcgi.conf文件所以要使php-fpm知道SCRIPT_FILENAME的具体值就必须要动态的添加这行配置。7、include fastcgi_params; 引入fastcgi配置文件以上就是最简洁版的nginx启动php脚本的最简配置当重启nginx之后在/share/test目录下创建一个xx.php文件输入?php echo hello world; ?保存然后在浏览器中访问localhost:8011/xx.php 就可以在网页上显示hello world了。三、总结其实对于调用php这类cgi脚本程序只要理解了我开头提到的5点原理然后结合5-7行配置讲解完全可以较清晰的明白为什么需要这样配置了。对于新手而言往往被fastcgi,php-fpm cgi程序搞得一头雾水胡乱配置已通跑通上线也不去深究其原理。所以希望写在这里的东西能对读者带来一点点的帮助。

相关文章:

Nginx+php配置文件及原理解析

采用nginxPHP作为webserver的架构模式,在现如今运用相当广泛。然而第一步需要实现的是如何让nginx正确的调用php。由于nginx调用php并不是如同调用一个静态文件那么直接简单,是需要动态执行php脚本。所以涉及到了对nginx.conf文件的配置。这一步对新手而…...

如何为Nintendo Switch安装游戏?Awoo Installer的三种高效方案详解

如何为Nintendo Switch安装游戏?Awoo Installer的三种高效方案详解 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer Awoo Installer是一…...

5个英雄联盟玩家必知的效率工具:League Akari完全指南

5个英雄联盟玩家必知的效率工具:League Akari完全指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是一个文章写手&#xff0…...

别光看界面了!Gazebo 11 新手必知的 5 个隐藏操作技巧(附鼠标手势详解)

Gazebo 11 隐藏操作手册:5个让仿真效率翻倍的实用技巧 第一次打开Gazebo时,那个布满按钮的界面确实让人望而生畏——左侧是层层叠叠的面板,顶部工具栏密密麻麻排列着二十多个图标,更别提那些隐藏在菜单深处的功能。但真正的高手从…...

AI-Shoujo HF Patch终极指南:一键解锁完整游戏体验的完整教程

AI-Shoujo HF Patch终极指南:一键解锁完整游戏体验的完整教程 【免费下载链接】AI-HF_Patch Automatically translate, uncensor and update AI-Shoujo! 项目地址: https://gitcode.com/gh_mirrors/ai/AI-HF_Patch AI-Shoujo HF Patch是一款专为AI-Shoujo游戏…...

Python自动化办公:用华为云OBS SDK实现文件自动备份与同步(附完整代码)

Python自动化办公:用华为云OBS SDK实现文件自动备份与同步 每天下班前手动备份项目文档,在不同设备间反复传输最新版本,这些重复性工作消耗了开发者大量时间。华为云对象存储服务(OBS)配合Python SDK,能将这…...

5分钟拯救100GB硬盘空间:智能游戏缓存清理全攻略

5分钟拯救100GB硬盘空间:智能游戏缓存清理全攻略 【免费下载链接】SteamCleaner :us: A PC utility for restoring disk space from various game clients like Origin, Steam, Uplay, Battle.net, GoG and Nexon :us: 项目地址: https://gitcode.com/gh_mirrors/…...

保姆级教程:用C# WPF + NModbus4 + thinger.DataConvertLib搞定PLC数据读写(附避坑指南)

工业级C# WPF Modbus通信实战:从PLC数据采集到界面绑定全解析 在工业自动化领域,Modbus协议因其简单可靠的特点,成为PLC与上位机通信的事实标准。对于.NET开发者而言,如何快速构建稳定高效的Modbus通信应用是进入工业软件开发的关…...

别急着重装!Pacman 报‘invalid or corrupted package’错误的深层原因与一键修复脚本

深入解析Pacman报invalid or corrupted package错误:从原理到自动化修复 当你长时间未更新Arch Linux系统后执行pacman -Syu,突然看到鲜红的错误提示"invalid or corrupted package"时,那种感觉就像准备开车出门却发现钥匙生锈了—…...

零基础极速上手:手把手教你用AI生成一个完整网站

零基础极速上手:手把手教你用AI生成一个完整网站“我完全不懂代码,连域名是什么都搞不清楚,真的能自己做个网站吗?”答案是:能。而且最快今天就能上线。本文将为你拆解一套通用的、可复制的零代码建站操作步骤。你可以…...

Sunshine游戏串流服务器:打造你的家庭游戏云平台

Sunshine游戏串流服务器:打造你的家庭游戏云平台 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine是一款开源自托管的游戏串流服务器,专为Moonlight…...

语音助手评估框架的技术挑战与改进方案

1. 语音助手评估框架现状剖析VoiceAssistant-Eval这类评估框架的出现,本质上是为了解决智能语音领域长期存在的"黑箱评测"问题。当前主流语音助手在实验室环境下的准确率动辄宣称达到95%以上,但用户实际体验却常常大相径庭。这种落差暴露出传统…...

从“黑箱”到透明:聊聊Data Availability Statement如何重塑我们的科研习惯与协作方式

从“黑箱”到透明:Data Availability Statement如何重塑科研协作生态 实验室的咖啡机旁,两位博士后正在争论一篇《自然》杂志的撤稿通知——数据无法复现导致结论被质疑。这样的场景在全球科研机构中愈发常见。数据可用性声明(Data Availabil…...

别再只用Transformer了!用Python复现SCINet时间序列预测模型(附代码)

突破Transformer局限:用Python实战SCINet时间序列预测 当时间序列预测遇上深度学习,大多数人会条件反射地想到Transformer或LSTM。但最近在电力负荷预测比赛中,一种名为SCINet的新型架构以低于Transformer 30%的计算成本,实现了更…...

如何在Python中快速接入Taotoken平台并调用多模型API

如何在Python中快速接入Taotoken平台并调用多模型API 1. 准备工作 在开始编写代码前,需要完成两项基础准备工作。首先登录Taotoken控制台,在「API密钥」页面创建一个新的API Key,建议复制后妥善保存。其次访问「模型广场」页面,…...

Botty暗黑2重制版自动化脚本:5步配置实现24小时高效MF

Botty暗黑2重制版自动化脚本:5步配置实现24小时高效MF 【免费下载链接】botty D2R Pixel Bot 项目地址: https://gitcode.com/gh_mirrors/bo/botty 还在为重复刷怪感到枯燥乏味吗?Botty作为专业的暗黑2重制版像素级自动化脚本,能够彻底…...

从协议到像素:深入HDMI 2.1 VRR底层,看它如何“驯服”游戏卡顿与撕裂

从协议到像素:深入HDMI 2.1 VRR底层,看它如何“驯服”游戏卡顿与撕裂 当你在玩一款高画质游戏时,突然遭遇画面撕裂或卡顿,那种体验就像正在享受美食时咬到沙子。HDMI 2.1标准中的可变刷新率(VRR)技术,正是为解决这一痛…...

实时视频流分析技术:架构演进与工程实践

1. 实时视频理解的技术演进与挑战视频流分析技术正在经历从"先存储后处理"到"边传输边理解"的范式转变。传统视频分析流程通常需要完整录制视频后,再通过离线算法进行处理,这种模式在安防监控、直播质检等实时性要求高的场景中存在明…...

3步实战:Windows 11安卓子系统WSA高效安装与零基础配置指南

3步实战:Windows 11安卓子系统WSA高效安装与零基础配置指南 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA 你是否想在Windows电脑上无缝运行手机…...

NVIDIA Profile Inspector深度解析:3个核心技术原理与高级性能调优

NVIDIA Profile Inspector深度解析:3个核心技术原理与高级性能调优 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款基于NVIDIA驱动配置文件系统的开源工具&a…...

w3x2lni技术深度解析:魔兽地图格式转换的完整解决方案

w3x2lni技术深度解析:魔兽地图格式转换的完整解决方案 【免费下载链接】w3x2lni 魔兽地图格式转换工具 项目地址: https://gitcode.com/gh_mirrors/w3/w3x2lni 在魔兽争霸3地图开发领域,魔兽地图格式转换一直是开发者面临的核心技术挑战。传统的.…...

软考高项通关秘籍:用故事和口诀搞定进度管理ITTO(附记忆卡片)

软考高项通关秘籍:用故事和口诀搞定进度管理ITTO(附记忆卡片) 备考软考高项的朋友们,是否曾被进度管理中繁多的ITTO(输入、工具与技术、输出)条目折磨得焦头烂额?六个子过程、数十个专业术语&am…...

GHelper终极指南:如何用5MB工具完全掌控华硕笔记本性能

GHelper终极指南:如何用5MB工具完全掌控华硕笔记本性能 【免费下载链接】g-helper Fast, native tool for tuning performance, fans, GPU, battery, and RGB on any Asus laptop or handheld - ROG Zephyrus, Flow, Strix, TUF, Vivobook, Zenbook, ProArt, Ally, …...

终极DOL-Lyra整合包完整指南:从零开始构建个性化游戏体验

终极DOL-Lyra整合包完整指南:从零开始构建个性化游戏体验 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS Degrees of Lewdity(简称DOL)是一款广受欢迎的文本冒险游…...

Cloudflare Workers部署Gemini OpenAI网关:统一接口调用AI模型

1. 项目概述:在Cloudflare Workers上搭建你的专属Gemini OpenAI网关 如果你和我一样,既眼馋Google Gemini 2.5系列模型强大的推理能力和超长上下文,又习惯了OpenAI API那种简洁统一的调用方式,那么你肯定也想过:要是能…...

在 Python 项目中集成多模型 API 的配置与调用指南

在 Python 项目中集成多模型 API 的配置与调用指南 1. 准备工作 在开始集成 Taotoken 的多模型 API 之前,需要确保 Python 环境已安装 3.7 或更高版本。建议使用虚拟环境管理项目依赖,避免与其他项目产生冲突。 首先安装官方 OpenAI 风格 SDK&#xf…...

深度解析Topit:揭秘macOS窗口置顶技术的效率革命

深度解析Topit:揭秘macOS窗口置顶技术的效率革命 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 在当今多任务工作环境中,窗口管理已成为…...

Bevy引擎交互拾取系统:bevy_mod_picking插件核心原理与实战

1. 项目概述:一个为Bevy游戏引擎量身定制的交互拾取系统如果你正在用Bevy引擎开发游戏或交互式应用,并且被“如何让鼠标点击选中那个3D模型”或者“怎么实现UI元素的高亮反馈”这类问题困扰过,那么bevy_mod_picking这个社区插件,很…...

AI大模型相关是个岗位,转行大模型岗位多的是!

本文详细介绍了10个高薪AI职位,包括系统架构师、自然语言处理专家、AI产品经理等,薪资范围高达80万-200万/年。文章列举了各职位的薪资范围、任职要求、目标院校以及典型就业公司,并分析了各职位的发展空间。此外,还探讨了学习大模…...

2026个人博客建站指南:这4种方案总有一款适合你

大家好,我是刚子。 上篇文章聊了为什么2026年个人博客反而“文艺复兴”了,后台有不少兄弟问:那现在到底怎么建一个自己的博客?用什么工具?花钱不?会不会很麻烦? 今天就专门写一篇,…...