Composer 应全局安装并加入 PATH,而非设环境变量;Ubuntu 用 ~/.bashrc(zsh 用 ~/.zshrc),避免 apt 安装旧版;禁用 sudo 运行以免权限污染。

Composer 在 Ubuntu 上不需要也不建议配置“全域变量”,正确做法是全局安装并确保系统能直接调用 composer 命令——本质是把可执行文件路径加入 $PATH,不是设置环境变量。
为什么不能用 export PATH=... 临时加 /usr/local/bin?
临时修改 $PATH(比如在当前终端里运行 export PATH="/usr/local/bin:$PATH")只对当前 shell 有效,关掉终端就失效。很多用户卡在这一步,以为“配置失败”,其实是没写入 shell 配置文件。
- Ubuntu 默认 shell 是
bash,应写入~/.bashrc(非~/.profile或/etc/environment,后者不适用于交互式登录) - 如果用了
zsh(如 Ubuntu 22.04+ 某些桌面环境),要改~/.zshrc - 改完必须执行
source ~/.bashrc或新开终端才生效
全局安装 Composer 的标准流程(推荐 curl + sudo)
官方推荐方式是下载 composer.phar 并移动到系统级可执行路径,避免权限混乱和更新困难:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer sudo chmod +x /usr/local/bin/composer
这三步做完后,验证是否成功只需运行:
composer --version
如果报错 command not found,说明 /usr/local/bin 不在 $PATH 中——此时才需要检查并修正 shell 配置文件。
常见错误:用 apt install php-composer 安装旧版或损坏版本
Ubuntu 官方源里的 php-composer 包长期滞后(例如 2023 年仍为 Composer 1.x),且可能因 PHP 扩展依赖缺失导致 composer diagnose 报错:
The openssl extension is missing, which means that secure HTTPS transfers are impossible.The json extension is missing.
解决方法不是硬装扩展,而是绕过 apt,用上面的 curl 方式安装——它会自动检测本地 PHP 环境并给出明确提示,比包管理器更可靠。
权限问题:为什么不能用 sudo composer create-project?
全局安装后的 composer 命令本身无需 root 权限运行;但若在项目目录下用 sudo composer create-project,会导致生成的 vendor/ 文件属主变成 root,后续 git、php artisan 等操作频繁报 permission denied。
- 永远用普通用户身份运行
composer命令 - 确保项目目录可写:
chmod -R u+rwX my-project/ - 如果之前误用了 sudo,先修复权限:
sudo chown -R $USER:$USER my-project/
真正容易被忽略的是:Composer 全局行为(如插件、缓存)默认存在 ~/.composer/,这个目录权限一旦被 sudo 污染,后续所有命令都会静默失败——得手动 chown 回来。










