Composer在Ubuntu上必须手动安装,因apt安装的1.10.x版本不支持^2.5依赖语法及PHP 8.2+,且缺失ZipArchive检测等关键功能,需卸载后通过官方校验脚本安装并配置国内镜像源。

composer 在 Linux(尤其是 Ubuntu)上**必须手动安装**,用 apt install composer 装出来的几乎一定不能用——它卡在 1.10.x,不认 ^2.5 依赖写法,跑不了 Laravel 11、Symfony 7 或任何要求 PHP 8.2+ 的现代项目。
为什么 apt/yum 安装的 composer 会静默失败
Ubuntu 官方源里的 composer 是冻结的老版本,没有签名校验、不支持 platform-check、跳过 PHP 扩展检测。你运行 composer install 卡住没报错?大概率是 ZipArchive 类找不到,但旧版根本不提示——它连 php-zip 模块是否启用都不检查。
-
composer --version输出1.10.22?立刻卸载:sudo apt remove composer - 再查残留:
which composer若返回/usr/bin/composer,说明没清干净,手动删掉 - 新版最低要求:PHP ≥ 7.4,且
php-zip、php-phar、php-xml必须启用(php -m | grep zip确认)
安全安装流程:下载 → 校验 → 移动 → 设权
跳过校验=把执行权交给未知二进制,国内镜像站(如 phpcomposer.com)早已停更,现在只认官方源 + 签名校验。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 先装依赖:
sudo apt update && sudo apt install -y php-cli php-zip php-json php-mbstring php-xml php-phar - 下载并校验(关键!防中间人):
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" EXPECTED_HASH=$(curl -sS https://composer.github.io/installer.sig) ACTUAL_HASH=$(php -r "echo hash_file('sha384', 'composer-setup.php');") [ "$EXPECTED_HASH" = "$ACTUAL_HASH" ] || echo "校验失败" && exit 1 - 安装到全局路径:
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer - 清理临时文件:
rm composer-setup.php
权限和 PATH 失效是最常卡住的环节
composer --version 报 Permission denied 或直接提示命令未找到,90% 是这两个问题之一,且它们不报错,只沉默。
- 检查执行权限:
ls -l /usr/local/bin/composer—— 若无x,补上:sudo chmod +x /usr/local/bin/composer - 确认 PATH 包含
/usr/local/bin:echo $PATH | grep -o '/usr/local/bin'—— 无输出?临时修复:export PATH="/usr/local/bin:$PATH";永久生效需加到~/.bashrc或/etc/environment - 新开终端再试,别信当前 shell 的缓存
装完第一件事:配国内镜像源
不配镜像,composer create-project laravel/laravel 很可能超时失败,错误里不会告诉你卡在哪——它只是卡在从 packagist.org 拉元数据,或从 github.com 下 zip。
- 阿里云镜像(推荐):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 腾讯云镜像:
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ - 验证是否生效:
composer config -g repo.packagist应输出镜像 URL,不是https://packagist.org
which composer 找到了,composer --version 有输出,但一跑 require 就卡住。这时候得回头查 php -m 缺了啥模块、strace -e trace=openat composer install 2>&1 | grep -i zip 看它到底在找什么文件。

















