答案是PHP扩展缺失导致composer install静默卡住或报依赖解析失败,必须验证mbstring、zip、openssl、xml、curl、json等扩展是否启用,且PHP版本需满足项目要求(如Laravel 10+需PHP 8.1+)。

PHP 环境没配齐,composer install 会静默失败
不是报错退出,而是卡在“Loading composer repositories”或直接提示 Your requirements could not be resolved——实际原因常是缺 mbstring、zip、openssl 或 xml 扩展。CentOS/RHEL 上尤其容易漏掉 php-zip 和 php-xml(yum/dnf 默认不装)。
必须先验证:
-
php -v输出 ≥ 7.3(Laravel 10+ 要求 PHP 8.1+) -
php -m | grep -E '^(mbstring|zip|openssl|xml|curl|json)$'—— 每个词都得有输出 - 若用宝塔面板,检查 PHP 设置里是否禁用了
putenv(会导致卡在仓库加载)
Composer 安装不能只跑一行 curl | php
官方脚本必须校验 SHA-384 哈希值,否则可能执行被篡改的安装器(2025 年已有真实劫持案例)。跳过校验 = 接受任意远程代码执行风险。
正确三步:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"- 查官网最新哈希(当前为
e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a4d0cc4b77f883902bb78de46181d610),运行校验命令比对 -
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer,再php -r "unlink('composer-setup.php');"
composer install 前必须确认三件事
它不是全局命令,而是项目级操作——在错误目录下执行只会报 No composer.json present。
- 先
cd进项目根目录(含composer.json和composer.lock) - 确认
composer.lock存在且未损坏(可用json_decode(file_get_contents('composer.lock'), true)粗略验证) - 生产环境务必加参数:
composer install --no-dev --optimize-autoloader --no-interaction;但要注意:--no-dev不会删掉已存在的 vendor/ 下的 dev 包(比如上次手动装的 phpunit)
第一次运行慢?不是网络问题,是缓存为空
新服务器上 ~/.composer/cache 是空的,所有包都要从镜像源重新下载。即使配了阿里云镜像,首次仍需完整拉取几十 MB 依赖。
别急着调大 memory_limit,先试:
- 加
--verbose看卡在哪一步(常是某个包解压失败) - 临时提高内存:
php -d memory_limit=-1 $(which composer) install - 如果卡在 SSL 验证,检查系统时间是否准确(HTTPS 证书校验依赖 NTP 同步)
真正容易被忽略的是:vendor/ 目录权限。Web 服务用户(如 www-data)必须有读权限,但写权限应严格限制——chown -R root:www-data vendor + chmod -R 755 vendor 是更稳妥的起点。

















