广告

在 Windows 11 上搭建 PHP+Nginx 本地开发环境的完整教程

准备工作与环境需求

目标与范围

本章节旨在提供一个可落地的在 Windows 11 上搭建 PHP+Nginx 本地开发环境的完整教程,涵盖从获取依赖、安装到基本配置与测试的全流程。通过该方案,你可以在本地快速创建一个接近生产的开发环境,方便调试 PHP 应用和前后端联调。

在继续之前,请确保你的 Windows 11 系统具备稳定的网络连接、管理员权限,以及足够的磁盘空间用于安装 PHP、Nginx 以及示例站点。避免使用有冲突的其他 Web 服务器,以减少端口冲突和环境干扰。

本教程聚焦本地开发场景,不对生产环境进行深入优化。请在正式上线前进行安全加固与性能调优。下面我们按步骤展开具体操作。

在 Windows 11 上安装 PHP

获取适合 Nginx 的 PHP 版本

首先需要下载适用于 Windows 的 PHP 二进制包,推荐选择非线程安全(NTS)版本,以确保在 Nginx 的 FastCGI 场景下的兼容性与稳定性。选择 x64 构建并下载 NTS 版本,版本号以官方网站为准。下载完成后解压到如 C:\php 的目录。

# 以实际下载的文件为准,这里仅示意路径
# 将下载的 zip 解压到 C:\php
powershell -Command "Expand-Archive -Path 'C:\Downloads\php-8.2.4-nts-Win32-vs16-x64.zip' -DestinationPath 'C:\php'"

解压完成后,请确保 php.ini、扩展目录以及执行权限正常可用。接下来我们会创建一个简易的配置文件以启用常用扩展并设定时区等参数。

配置 PHP 环境与初始化

在 C:\php 目录下创建或修改 php.ini,确保以下关键项已正确设置:扩展目录、时区、错误日志等。你也可以按需启用常用扩展,如 mysqli、pdo_mysql 等。

; PHP's ini
; 目录示例,请以实际路径为准
extension_dir = "ext"; 开发阶段常用设置
display_errors = On
log_errors = On
error_reporting = E_ALL; 时区配置,请改为你所在时区
date.timezone = Asia/Shanghai; 如需开启数据库扩展,请确保对应扩展已存在于 ext 目录
extension=mysqli

为了后续与 Nginx 的 FastCGI 集成,记得保留 php.ini 的可读权限,并在以后需要时进行扩展配置。完成后,我们进入下一个阶段:在 Windows 11 上安装 Nginx。

在 Windows 11 上安装 Nginx

下载、解压与基本结构

Nginx 官方提供了 Windows 版二进制包,适合快速搭建本地开发环境。下载后解压到如 C:\nginx 的目录,不要放在需要管理员权限的系统目录,以避免权限问题。

# 下载并解压示例(请使用实际下载链接)
# 以浏览器下载为主,命令行示例仅供参考
# 在 C:\nginx 下解压

解压后,你将看到 Nginx 的根目录结构,最重要的配置文件是 conf/nginx.conf,下面我们对该文件做基础配置以实现 PHP 的 FastCGI 集成。

Nginx 与 PHP FastCGI 的初步集成思路

在 Windows 11 上配合 Nginx 使用 PHP,常见的做法是通过 PHP 的 CGI 进程(php-cgi.exe)以 FastCGI 的方式对外提供 PHP 能力。通过在 127.0.0.1:9000 上监听 FastCGI 请求,Nginx 将把 .php 请求转发给 PHP 进程执行,执行结果再返回给浏览器。

# 启动 PHP FastCGI 的一个简单示例(在独立命令行窗口执行)
C:\php\php-cgi.exe -b 127.0.0.1:9000 -c C:\php\php.ini

为了实现持续运行,建议将上述命令以服务的形式启动。下面给出一种常见做法:使用 NSSM(Non-Sucking Service Manager)将 php-cgi.exe 注册为 Windows 服务,这样每次开机就会自动启动。

nssm install php-fastcgi "C:\php\php-cgi.exe" "-b 127.0.0.1:9000" 
# 完成后在服务中启动 php-fastcgi 即可

上述配置完成后,我们继续在 Nginx 端完成具体的 FastCGI 设置和服务端口绑定。

配置 PHP-FastCGI 与 Nginx 集成

Nginx 配置示例与要点

打开 C:\nginx\conf\nginx.conf,找到 http{ } 块内的 server 配置,确保在 server 中添加对 PHP 的 FastCGI 转发。以下示例演示了一个最小可用的配置场景:将 .php 请求转发到 127.0.0.1:9000,并设置文档根目录与索引文件顺序。

server {listen 80;server_name localhost;root C:/nginx/html;index index.php index.html;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ \.php$ {include fastcgi_params;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;}error_log  logs/error.log;access_log logs/access.log;
}

关键点在于 fastcgi_pass 指向 PHP FastCGI 的监听地址,以及确保 SCRIPT_FILENAME 参数正确指向待执行的 PHP 脚本文件路径。为了调试方便,建议在本地放一个简单的 index.php 文件进行测试。

本地站点配置与测试

添加本地域名解析与示例站点

为了在浏览器中通过自定义域名访问本地站点,需要把域名映射到本机地址。请在 C:\Windows\System32\drivers\etc\hosts 中添加以下内容:127.0.0.1 yourlocal.dev。这是本地开发中常用的方式之一,用于模拟真实域名的解析。

# 以管理员身份打开命令行后,编辑 hosts 文件
127.0.0.1   yourlocal.dev

然后在 C:\nginx\html 目录创建一个站点目录,如 C:\nginx\html\myapp,并放置一个简单的入口文件。下面示例演示一个基本的 index.php 和一个测试页面。

在浏览器中访问 http://yourlocal.dev 应能看到页面输出。若页面显示 phpinfo(),说明 PHP 与 Nginx 的集成已正确工作。

本地开发站点的基本调试与常见问题排错

日志与诊断要点

若页面无法显示或出现空白,首先检查两个地方的日志:Nginx 的 error.log 与 access.log,以及 PHP 的错误日志。确保 php-cgi 进程正在监听 127.0.0.1:9000。若未监听,请确认 NSSM 服务状态或手动启动命令是否正确执行。

# 查看正在监听的端口(示例,Windows 下的等效命令)
netstat -ano | findstr 9000# 如需手动排错,查看 Nginx 日志
type C:\nginx\logs\error.log

常见问题包括:500/502 错误、404 未找到、PHP 语法错误等,通常与目标脚本路径、fastcgi 参数或权限相关。通过逐步核对 SCRIPT_FILENAME、root、location 配置和 php.ini 设置,可以快速定位问题。

完整的运行流程回顾与快速验证要点

快速搭建的要点

要点一:选择 PHP-NTS 版本并与 Nginx 的 FastCGI 机制配合,确保 php-cgi.exe 能在 127.0.0.1:9000 上稳定监听。

要点二:在 Nginx 配置中准确转发 .php 请求,确保 SCRIPT_FILENAME 指向实际脚本路径。

要点三:将本地域名解析到 127.0.0.1,以实现类似生产环境的虚拟主机开发体验。

示例代码汇总:核心片段一览

PHP 配置片段

; C:\php\php.ini
extension_dir = "ext"
date.timezone = Asia/Shanghai
extension=mysqli

Nginx 站点配置片段

server {listen 80;server_name localhost;root C:/nginx/html;index index.php index.html;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ \.php$ {include fastcgi_params;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;}
}

快速启动 PHP FastCGI 的示例

C:\php\php-cgi.exe -b 127.0.0.1:9000 -c C:\php\php.ini

站点测试页面

说明:以上内容紧密围绕在 Windows 11 上搭建 PHP+Nginx 本地开发环境的完整教程展开,涵盖从获取软件、安装配置、到本地站点的创建与测试,以及常见排错要点的全流程。若你需要扩展如数据库连接、Composer 依赖管理或前端工作流集成,可以在后续章节中逐步添加相关子主题。

在 Windows 11 上搭建 PHP+Nginx 本地开发环境的完整教程

广告

后端开发标签