必须用官方脚本安装composer,因apt版长期滞留在2.2.22等旧版本,不支持php 8.3+、^2.5依赖约束及self-update,且路径不可写、未加入path;需校验sha384、启用zip/phar/mbstring/xml/curl扩展,并配置国内镜像源。

别用 apt install composer —— 它装的不是 Composer,是“兼容性障碍制造机”。
为什么 apt install composer 一定不能用
Ubuntu 官方源里的 php-composer 包长期卡在 2.2.22 或更老版本(截至 2026 年 7 月仍普遍),它不支持 PHP 8.3+ 的 autoloader 行为,也解析不了 ^2.5 这类现代依赖约束。最致命的是:/usr/share/php/composer/composer 路径不可写,composer self-update 永远报 Permission denied;它还不自动加入 $PATH,装完 composer --version 很可能直接报 command not found。
常见错误现象包括:
-
Command "create-project" is not defined(旧版根本不认识这个命令) -
Could not open input file: composer.phar(误以为要手动php composer.phar,实际已应部署为命令) -
The zip extension is missing(apt 版不检查扩展,但后续install必崩)
必须校验 SHA384 后再安装官方 PHAR
跳过校验 = 主动交出整个 PHP 生态的信任链。中间人劫持下载后,所有依赖包、autoload 文件、甚至 vendor/bin 下的二进制都可能被篡改。
执行以下命令(可直接复制粘贴):
EXPECTED_CHECKSUM="$(curl -sS https://composer.github.io/installer.sig)"
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then
echo 'Integrity check failed' >&2; rm composer-setup.php; exit 1
fi
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
rm composer-setup.php
验证是否成功:composer --version 应输出类似 Composer version 2.9.6(当前最新稳定版)。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
PATH、权限与 PHP 扩展缺一不可
很多人执行完 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或新开终端 - 确认权限:
ls -l /usr/local/bin/composer应显示-rwxr-xr-x;若不是,补上sudo chmod +x /usr/local/bin/composer - PHP 扩展缺失会导致
composer install直接崩:php-zip(解压包)、php-phar(读取 PHAR)、php-xml(处理包元数据)、php-mbstring(字符串处理)全得装齐:sudo apt install php-cli php-zip php-json php-phar php-xml php-mbstring unzip git
配置国内镜像源防卡死
不配镜像,composer create-project 或 require 时大概率卡在 Downloading https://packagist.org/packages.json,本质是 DNS 污染 + 连接超时,不是网络差。
配置阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
验证是否生效:cat ~/.config/composer/config.json,里面应有 "repo.packagist" 条目指向镜像地址。注意:如果项目里已有 composer.json 并含 repositories 字段,全局镜像会被覆盖——这是设计行为,不是失效。
最常被忽略的一点:装完别急着建项目,先跑一遍 composer diagnose。它不解决具体问题,但会告诉你缺什么扩展、HTTPS 能不能走、vendor/ 权限对不对——这些才是后续所有报错的根子。










