运行环境与核心配置
了解代码是如何在服务器上跑起来的,以及如何通过 php.ini 控制行为。本页将理清 Nginx 与 PHP 的协作关系,并介绍开发中最常用的核心配置项。
一、Web 请求流转全貌
我们编写的 PHP 代码本身只是一堆文本文件,它需要被"翻译"和"执行"。在生产环境中,这个过程通常由 Web 服务器(如 Nginx)和 PHP 应用服务器(PHP-FPM)协作完成。
1. Nginx 的职责
Nginx 是一个高性能的 HTTP 服务器。当请求到达时,它首先判断文件类型。如果是图片、CSS、JS 等静态文件,Nginx 会直接读取并返回给浏览器;如果是以 .php 结尾的动态请求,它会按照配置将其"代理"转发给 PHP-FPM。
2. PHP-FPM 的职责
PHP-FPM(FastCGI Process Manager)是一个专门用于管理 PHP 进程的程序。它常驻在内存中,接收到 Nginx 转发来的请求后,分配一个 Worker 进程去执行对应的 PHP 脚本。执行完毕后,将生成的 HTML 结果回传给 Nginx,再由 Nginx 返回给浏览器。
为什么不直接让 Nginx 执行 PHP? 因为 Nginx 的设计哲学是"只做最擅长的事"(高并发网络通信),它不内置任何语言的解释器。这种职责分离的架构,使得各自都能发挥最高效能。
二、php.ini 核心配置
PHP 的运行行为受配置文件 php.ini 控制。在开发阶段,我们需要了解几个最常用的配置项,以便在遇到报错或性能瓶颈时知道去哪里调整。
1. 错误报告与显示
开发环境必须开启错误显示,否则代码出错时页面只会一片空白,无从下手排查。
2. 性能与资源限制
控制 PHP 脚本能使用的最大内存和执行时间,防止写死循环的代码把服务器内存吃光。
3. 文件上传相关
如果开发涉及图片上传功能,需要确保这两个值大于用户上传文件的大小,否则上传会失败。
修改 php.ini 后必须重启 PHP-FPM 服务才能生效。可以通过运行 phpinfo() 函数,并在页面中搜索 "Loaded Configuration File" 来确认当前加载的是哪个配置文件。
三、开发工具准备
虽然可以用记事本写 PHP,但为了效率和代码规范,强烈建议使用专业的代码编辑器。
- VSCode (Visual Studio Code):微软出品的免费开源编辑器,通过安装 "PHP Intelephense" 扩展,可以获得极佳的代码补全和语法提示,适合绝大多数初学者。
- PhpStorm:JetBrains 出品的重量级商业 IDE,内置完整的 PHP 工具链,适合专业开发者和大型项目。
准备好编辑器后,你就可以开始编写第一行 PHP 代码了。下一页,我们将动手写出你的第一个 PHP 程序,并拆解它的基础语法结构。