准备工作与开发环境概览
目标与范围
本文面向在 Mac 上从零搭建一个本地的 PHP + Nginx 开发环境,聚焦快速搭建、可维护性和后续扩展。目标是一个可直接启动的开发栈,包含 PHP 运行时、Nginx 静态与动态请求处理能力,以及基本的 PHP 信息页面用于验证。
在搭建过程中,将以 Homebrew 作为核心包管理工具,配合 PHP 8.x 与 Nginx,实现本地开发的高可用性和易维护性。后续也可以无痛扩展到数据库或缓存等组件,以支持更完整的项目栈。
需要的工具与版本要求
为实现平滑安装与更新,建议先确认 Mac 的 macOS 版本、硬件架构以及是否安装 Homebrew。关键组件包括:PHP、Nginx、以及 PHP-FPM 的进程管理。版本规划方面,选择与项目兼容的 PHP 版本并确保 Nginx 可以通过 FastCGI 与 PHP-FPM 对接。
本教程默认使用本地开发端口和目录结构,目标目录路径会随架构而异,但核心流程保持一致,便于迁移到实际服务器环境时进行调整。
系统架构与路径差异
不同的 Mac 架构会影响默认安装路径,Apple Silicon 通常使用 /opt/homebrew,Intel 则常见 /usr/local。在后续操作中,需要根据实际架构选择正确的路径配置,以确保 Nginx 与 PHP-FPM 的配置一致性。
为确保最大兼容性,本文在讲解时会给出两类常见路径示例,并在关键配置处标注为 实际环境中的替换点,以便读者按需调整。
在Mac上安装与配置 Homebrew、Nginx 与 PHP
安装 Homebrew 与环境初始化
如果尚未安装 Homebrew,可以通过官方脚本快速安装,安装完成后请将正确的路径加入 PATH,以确保命令可用。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装完成后,根据系统架构选择 PATH,Apple Silicon 常见为 /opt/homebrew/bin,Intel 系统多为 /usr/local/bin。将其添加到 shell 配置中以便全局调用。
echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
完成后,确保 brew 已就绪,执行 brew doctor 与 brew update,以保证仓库与环境的健康状态。
brew doctor
brew update
安装 Nginx 与 PHP
在 Mac 上安装 Nginx 与 PHP,使用 Homebrew 安装可以确保后续更新与管理的一致性。以下命令适用于 Apple Silicon 或 Intel 架构,版本请根据实际需要选择。如果需要特定版本,请指定版本号,如 php@8.2。

brew install nginx
brew install php
安装完成后,检查版本以确认安装成功,并记下 Nginx 与 PHP 的执行路径供后续配置使用。
nginx -v
php -v
启动服务与自启
安装完成后,启动 Nginx 与 PHP-FPM,并设置开机自启,以确保本地开发环境可随时工作。
brew services start nginx
brew services start php
启动成功后,验证服务状态以确保两个组件正常运行,遇到问题时查看日志定位原因。
brew services list
tail -n +1 /usr/local/var/log/nginx/error.log
Nginx与PHP-FPM的整合配置示例
定位与确认配置文件路径
在 brew 安装的环境中,Nginx 的配置文件通常位于 /opt/homebrew/etc/nginx/nginx.conf(Apple Silicon)或 /usr/local/etc/nginx/nginx.conf(Intel),确保修改的配置文件是对应架构的版本。
此外,PHP-FPM 的池配置通常位于 /path_to_php_xxx/php-fpm.d/www.conf,其中路径会随着 PHP 安装版本而变化。请优先备份原始配置,以便回滚。
配置 Nginx 的站点服务器块
以下示例展示了如何在 Nginx 中建立一个简单的站点配置,将 PHP 请求转发到 PHP-FPM 的监听地址。请将根目录与端口替换为实际环境中的具体值。
server {listen 8080;server_name localhost;root "/Users/yourname/Sites";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;}
}
上面的配置将站点端口设为 8080,确保 fastcgi_pass 指向 PHP-FPM 的监听地址,并正确配置脚本路径。
配置 PHP-FPM 池
PHP-FPM 池配置文件中的关键项包括监听地址、用户组以及进程管理模型。常用设置是将监听端口设为 9000、用户与组指向当前开发者账户,以提升权限和稳定性。
[www]
user = youruser
group = yourgroup
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 4
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
测试与验证步骤
创建测试页面与基本信息
在站点根目录创建一个简单的 PHP 测试页,包含 phpinfo 调用以查看运行环境信息,用于验证服务器是否正确处理 PHP 请求。
<?php
phpinfo();
?>
启动本地服务器并进行访问验证
通过浏览器访问 http://localhost:8080,若能看到 PHP 信息页面,表示 Nginx 与 PHP-FPM 已正确连接;若无法访问,请先检查 Nginx 日志 与 PHP-FPM 监听状态。
命令行快速验证
也可以使用 curl 验证页面返回内容,curl 指向带有 PHP 页面的地址,如 curl -s http://localhost:8080/index.php | head。
curl -s http://localhost:8080/index.php | head
适配 Apple Silicon 与性能优化要点
架构差异对路径的影响
Apple Silicon 的 Homebrew 安装路径通常位于 /opt/homebrew,因此 Nginx 与 PHP 的配置文件路径也需相应调整,请在实际环境中使用你观察到的路径,避免硬编码。
快速排错与稳定性建议
遇到连接失败、500 错误或 PHP 无法执行时,优先检查 监听端口是否正确、相关进程是否启动、以及防火墙设置,确保 php-fpm 已启动且端口对口。


