Composer 命令失效主因是 PATH 未包含 /usr/local/bin 或 composer 文件缺执行权限,需 chmod +x 并确保 PATH 生效;全局镜像配置须用 composer config -g 正确写入;install 卡住多因 zip/phar/xml/mbstring 扩展未启用。

“command not found: composer” 不是 Composer 没装好,而是 shell 根本没找到它——90% 的问题卡在 PATH 或权限上,和下载脚本无关。
composer --version 报 Permission denied
这是文件有路径、但没执行权的典型表现。Linux 不会自动给 composer.phar 加 x 权限,哪怕你用 sudo mv 移过去也一样。
- 先确认文件是否存在且可读:
ls -l /usr/local/bin/composer—— 如果权限列没有x(比如显示-rw-r--r--),就缺执行权 - 补权限:
sudo chmod +x /usr/local/bin/composer - 别跳过这步直接试
php /usr/local/bin/composer --version:它能跑 ≠composer命令能跑
which composer 无输出,但文件明明在 /usr/local/bin/
说明 /usr/local/bin 不在当前用户的 $PATH 中。最小化系统、Alpine 镜像、某些 Docker 官方镜像默认删掉了这个路径。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 检查:
echo $PATH | grep -o '/usr/local/bin'—— 没输出就是没加载 - 临时生效:
export PATH="/usr/local/bin:$PATH" - 永久生效(推荐改用户级配置):
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc(Zsh 用户写~/.zshrc) - 别直接改
/etc/profile,除非你清楚它影响所有用户且可能被系统更新覆盖
composer config -g repo.packagist 失效或报错
全局镜像配置写错位置或参数顺序,会导致配置进项目目录而非全局,后续 install/update 仍走国外源并超时。
- 正确命令必须带
-g且紧挨config:composer config -g repo.packagist https://mirrors.aliyun.com/composer/ - 错误写法:
composer config --global repo.packagist ...或composer config repo.packagist ... -g—— 这两种都会写进当前项目composer.json - 验证是否写对了:
composer config -g --list | grep repo,应看到repo.packagist行指向国内地址 - 如果已错写,先删掉项目级配置:
composer config --unset repo.packagist,再重跑全局命令
PHP 扩展缺失导致 install 卡住无报错
Composer 2.x 启动时不强制校验扩展,但到 install 阶段才真正调用 ZipArchive、Phar 等,此时失败往往只打印 “zip extension is missing”,甚至静默退出。
- 必须启用的扩展:
php-zip、php-phar、php-xml、php-mbstring(php-json和php-cli通常已有) - Ubuntu/Debian:
sudo apt install -y php-zip php-phar php-xml php-mbstring - RHEL/CentOS 8+:
sudo dnf install -y php-zip php-phar php-xml php-mbstring - 验证是否加载:
php -m | grep -E 'zip|phar|xml|mbstring',每项都得有输出
最常被忽略的是:PATH 生效不等于 shell 会自动重载它。新开终端、source 配置、或用 exec $SHELL 切换当前 shell,三者选其一,否则改了也白改。

















