推荐用 phpbrew(macos/linux)或 wsl2 + php cli + nginx(windows),因其可控性强、贴近线上环境;xampp 虽省事但易致 php.ini 路径混乱、模块加载不透明、版本切换困难。

直接用 XAMPP 或 WAMP 是最省事的方案,但容易掩盖真实 PHP 运行机制,调试报错时反而更难定位。推荐用 phpbrew(macOS/Linux)或 WSL2 + PHP CLI + Nginx(Windows),可控性强、和线上环境更接近。
为什么别急着装 XAMPP
XAMPP 把 Apache、MySQL、PHP 打包在一起,启动就全开,看似方便,实则带来三个问题:
-
php.ini路径混乱,php --ini显示的配置文件可能不是你改的那个 - 模块加载靠
LoadModule和extension=双重控制,启停不透明 - 版本切换困难,比如想同时测
PHP 8.1和PHP 8.3,得反复重装
Windows 下用 WSL2 搭 PHP 开发环境
这是目前兼顾兼容性与真实性的最优解,绕过 Windows 自身服务管理缺陷:
- 在 Microsoft Store 安装
Ubuntu 22.04,运行wsl --update升级 - 执行
sudo apt install php8.2-cli php8.2-mbstring php8.2-xml php8.2-curl nginx - 用
php -S localhost:8000快速起服务,不用配 Nginx 就能跑脚本 - 需要完整 Web 服务时,把
root指向/mnt/c/Users/xxx/www,直接编辑 Windows 文件
Mac 上用 phpbrew 管理多版本 PHP
phpbrew 不依赖系统 PHP,所有版本隔离安装,php --version 和 which php 结果完全可信:
立即学习“PHP免费学习笔记(深入)”;
- 先装
brew install phpbrew,再运行phpbrew init - 执行
phpbrew install 8.2 +default +mbstring +curl +xml编译安装 - 用
phpbrew use php-8.2.12切换当前 shell 的 PHP 版本 -
phpbrew list查看已装版本,phpbrew switch设为全局默认
本地环境一定要验证的三件事
很多“环境搭好了但项目跑不起来”的问题,都卡在这三个检查点上:
- 运行
php -m | grep mbstring,确认关键扩展真被加载,不是只在php.ini里写了行注释 - 用
php -i | grep "Loaded Configuration File"确认你改的php.ini是实际生效的那个 - 如果用 Nginx,检查
fastcgi_pass是否指向正确的 PHP-FPM socket(如unix:/var/run/php/php8.2-fpm.sock),不是硬写127.0.0.1:9000
真正麻烦的从来不是装 PHP,而是搞清「哪个进程读了哪份配置、加载了哪些扩展、用了哪个 socket」。每次改完配置,务必用命令验证,别凭感觉。











