PHP CLI未被识别需分步排查:先用which php或find找路径,检查PATH是否包含该路径,macOS需修复Homebrew软链接,Linux编译安装要配置php.ini路径及扩展,WSL/Git Bash需确认终端环境并用wsl php调用。

PHP CLI 解释器没被识别?先确认 php 命令是否在 PATH 中
终端输入 php -v 报错 command not found: php,说明系统根本找不到 PHP CLI 可执行文件。这不是“绑定”问题,而是路径没暴露给 shell。
- 先用
which php或find /usr -name php 2>/dev/null | grep bin找真实路径(常见如/usr/bin/php、/opt/homebrew/bin/php、/usr/local/bin/php) - 如果找到但不可用,检查该路径是否在
$PATH里:运行echo $PATH,看输出是否含对应目录 - 若不在,临时加:运行
export PATH="/usr/local/bin:$PATH";永久生效需写入 shell 配置(如~/.zshrc或~/.bash_profile),再source ~/.zshrc
macOS M1/M2 上 Homebrew 安装的 PHP 不响应?注意 php 软链接可能失效
Homebrew 安装 PHP 后,php 命令实际是通过 brew link php@8.2 创建的软链接。升级或重装后软链接常被破坏,导致 php 指向不存在的路径。
- 运行
brew unlink php@8.2 && brew link php@8.2重建链接 - 验证:
ls -l $(which php)应显示指向../Cellar/php@8.2/...的有效软链 - 若仍失败,检查
brew doctor是否提示“Unlinked kegs”或权限问题;必要时sudo chown -R $(whoami) /opt/homebrew
Linux 下手动编译的 PHP 怎么让 php 命令生效?别只改 PATH
源码编译安装(如 ./configure --prefix=/usr/local/php8)后,php 二进制默认在 /usr/local/php8/bin/php,但直接加这个路径到 PATH 不够稳妥——扩展、配置、CLI 模式行为都依赖完整环境。
- 确保
/usr/local/php8/bin已加入PATH(同上) - CLI 模式默认读取
php.ini路径由编译时--with-config-file-path决定,运行php --ini查看实际加载位置,把php.ini放对地方(如/usr/local/php8/lib/php.ini) - 常用扩展(如
curl、mbstring)需在php.ini中显式启用:extension=curl,否则php -m不显示
Windows WSL 或 Git Bash 中 php 命令无效?注意 Windows 和 Linux 环境混用陷阱
在 WSL 里装了 PHP,但 Git Bash 或 VS Code 终端里仍报错,大概率是终端没走 WSL 子系统,而是调用了 Windows 原生环境(哪怕你装了 XAMPP 的 php.exe)。
立即学习“PHP免费学习笔记(深入)”;
- 先确认当前终端类型:运行
uname -a,输出含Microsoft表示是 WSL;若报错或输出空,大概率是 Git Bash(基于 MinGW) - Git Bash 无法直接调用 WSL 的
php,必须用wsl php -v显式调用;或在 Windows PATH 中添加 WSL 的 PHP(不推荐,路径映射易出错) - VS Code 终端默认继承系统 shell,若设为 Git Bash,则同样需
wsl php;可在设置中将terminal.integrated.defaultProfile.linux改为Ubuntu(或其他 WSL 发行版)
php -r "echo 'CLI is working';"
能跑通这行,就说明 CLI 解释器真正绑定了。最常卡住的地方不是安装本身,而是 shell 环境没刷新、软链接断裂、或误以为“装了 PHP”就等于“终端能用 php 命令”。每一步都要用 which php 和 php --ini 实锤验证,而不是靠感觉。











