先确认 Homebrew 版本 ≥ 4.0,再编辑 ~/.zshrc 添加对应 PATH(Apple Silicon 用 /opt/homebrew/bin,Intel 用 /usr/local/bin),source 后验证 which php 和 php -v;接着复制 php.ini.default 并启用 mbstring、pdo、opcache 等扩展,确保 php -m 列出所需模块;本地开发优先用 PHP 内置服务器,升级后若 composer 报 PDO 错误,需确认 CLI 模式加载的是正确 php.ini 及 extension_dir 路径。

brew install php@8.3 后 php -v 还是旧版本?
不是没装上,是 shell 没认到新二进制。Homebrew 不会自动改 PATH,尤其 Apple Silicon 和 Intel 路径不同:/opt/homebrew/bin/php(M1/M2/M3)或 /usr/local/bin/php(Intel),而系统残留的 /usr/bin/php 已废弃。
- 先确认 Homebrew 版本 ≥ 4.0:
brew --version - 编辑
~/.zshrc,在文件最开头加一行:export PATH="/opt/homebrew/bin:$PATH"(Apple Silicon)或export PATH="/usr/local/bin:$PATH"(Intel) - 执行
source ~/.zshrc—— 开新终端无效,必须手动 reload - 验证:
which php输出必须是 Homebrew 路径,且php -v显示8.3.x
php --ini 显示 (none) 怎么办?
Homebrew 只提供 php.ini.default 模板,不自动生成生效的 php.ini。没这文件,所有扩展(mbstring、pdo、opcache)都加载失败,composer install 或框架启动直接报错。
- 运行
php --ini查看 “Scan for additional .ini files in” 路径,通常是/opt/homebrew/etc/php/8.3/ - 复制模板:
cp /opt/homebrew/etc/php/8.3/php.ini.default /opt/homebrew/etc/php/8.3/php.ini - 编辑该
php.ini,取消注释这几行:extension=mbstring、extension=pdo_sqlite、extension=opcache;MySQL 项目再加extension=pdo_mysql - 验证:
php -m | grep -E 'mbstring|pdo|opcache'应全部出现在输出里
本地开发要不要配 Apache/Nginx?
绝大多数情况不用。PHP 8.3 内置服务器足够跑 Laravel/Symfony/纯脚本,零配置、无端口冲突、不改 Web 服务器权限。
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
- 进项目根目录,直接运行:
php -S localhost:8000 - 它会自动查找
router.php(用于路由转发),没有就直出静态文件 - 如果非要 Apache:确保
httpd.conf里LoadModule php_module和AddHandler php-script .php都已启用,否则.php文件被下载而非执行 - Nginx + PHP-FPM 是生产首选,但本地调试时,
brew services start php@8.3和brew services start nginx必须同时运行,且fastcgi_pass地址要和php-fpm.sock实际路径严格一致
升级后 composer install 报 Class 'PDO' not found?
不是 Composer 问题,是 PHP CLI 模式没加载扩展。PHP CLI 和 Web 模式(如 FPM)用的是两套配置,php.ini 改了,但 CLI 可能还在读别的位置。
- 运行
php --ini和php -i | grep "Loaded Configuration File",确认 CLI 加载的是你刚编辑的那个php.ini - 常见陷阱:macOS 上 Homebrew 安装的
php@8.3,CLI 默认读/opt/homebrew/etc/php/8.3/php.ini,但某些终端会 fallback 到系统路径 - 强制指定配置:
php -c /opt/homebrew/etc/php/8.3/php.ini -m看扩展是否列出来 - 如果
pdo仍缺失,检查extension_dir是否指向正确路径(/opt/homebrew/lib/php/8.3/extensions/no-debug-zts-20230831/类似)
关键点不在“装得多快”,而在“路径对不对、配置文件是不是真在用、CLI 和 Web 模式有没有各自配全”。漏掉 source ~/.zshrc 或忘复制 php.ini,哪怕 php -v 成功,后续所有依赖扩展的操作都会静默失败。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










