应跳过apt安装,用官方安装器直装Composer 2.x,确保安装php-cli、curl、unzip(git可选),移至/usr/local/bin并添加export PATH="/usr/local/bin:$PATH"到~/.bashrc或~/.zshrc,普通用户运行composer,权限出错时用chown修复。

直接装,别用 apt
Ubuntu 官方源里的 php-composer 包基本是过期版本(2026 年仍卡在 Composer 1.x),而且常因 PHP 扩展缺失直接报错:The openssl extension is missing 或 The json extension is missing。这不是你环境没配好,是包本身就不靠谱。
- 用
sudo apt install php-composer→ 十有八九装完就composer --version报错或降级失败 - 正确做法:跳过 apt,用官方安装器直装,它会主动检查你的 PHP 环境并给出明确提示
- 必须装的依赖只有三个:
php-cli、curl、unzip(git可选但建议一并装上)
装到 /usr/local/bin + 写进 ~/.bashrc 才算真全局
很多人执行完 sudo mv composer.phar /usr/local/bin/composer 就以为完事了,结果新开终端还是 command not found——问题不在安装,而在 shell 没认出这个路径。
-
/usr/local/bin默认不在 Ubuntu 的$PATH里(尤其新装系统或非桌面环境) - 必须把这行加进你的 shell 配置:
export PATH="/usr/local/bin:$PATH" - Ubuntu 默认用 bash → 改
~/.bashrc;如果用了 zsh(比如 GNOME 46+ 或手动切过)→ 改~/.zshrc - 改完一定要运行
source ~/.bashrc或新开终端,否则不生效
别用 sudo 运行 composer 命令
全局安装后,composer 命令本身完全不需要 root 权限。一旦你习惯性敲 sudo composer create-project,后果很直接:整个 vendor/ 目录属主变成 root,后续 php artisan、git add 全部 permission denied。
- 永远用普通用户身份运行
composer(包括self-update) - 确保项目目录可写:
chmod -R u+rwX my-project/ - 如果已经误用 sudo,先修复权限:
sudo chown -R $USER:$USER my-project/
验证和更新:两行命令定生死
装完不是终点,验证和更新才是日常。很多问题其实就卡在版本太老或校验失败,但没人去查。
- 验证是否真可用:
composer --version—— 输出带2.x.x且无报错才算成功 - 更新到最新稳定版:
composer self-update(注意:不用 sudo) - 如果
self-update报Permission denied,说明之前被 sudo 污染过,得先修权限再试
最常被忽略的一点:装完别急着建项目,先跑一遍 composer diagnose。它不解决具体问题,但会告诉你缺什么扩展、HTTPS 能不能走、vendor/ 权限对不对——这些才是后续所有报错的根子。










