composer安装脚本报错90%因php环境不达标或证书/网络配置问题:需php≥7.2.5(推荐≥8.0)并启用curl、json、openssl、phar、zlib扩展;证书错误应更新cacert.pem并配置curl.cainfo;全局命令需手动加入path,且cli与web的php.ini常不一致。

Composer安装脚本执行时报错,90% 是 PHP 环境不达标或证书/网络配置未就位,不是脚本本身有问题。 直接运行 php install.php 却报错,别急着换源或重装,先确认底层是否跑得通。
PHP 版本和扩展是否满足最低要求
Composer 2.5+ 要求 PHP ≥ 7.2.5(推荐 ≥ 8.0),且必须启用 curl、json、openssl、phar、zlib 这五个扩展。缺一个就会在脚本执行中途崩溃,比如:
-
PHP Fatal error: Uncaught Error: Call to undefined function curl_init()→curl扩展未启用 -
Could not open input file: install.php→ 实际是php命令根本没找到,或路径不对
验证方式:
- 运行
php -v确认版本 - 运行
php -m | grep -E "curl|json|openssl|phar|zlib"检查扩展是否在列表中 - Windows 用户注意:CLI 模式用的
php.ini和 Apache/WAMP/XAMPP 的不是同一个,要改对位置
证书错误(cURL error 60)或连接超时
国内直连 GitHub 或 Packagist 极易触发证书校验失败或 DNS/TLS 卡死,表现为:
cURL error 60: SSL certificate problem: unable to get local issuer certificateFailed to open stream: Connection timed out
这不是 Composer 的 bug,而是 PHP 的 curl 没法验证 HTTPS 证书链。解决办法不是关校验,而是补全证书:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 下载最新
cacert.pem(来自 curl.se) - 在 CLI 使用的
php.ini中添加:curl.cainfo = "/full/path/to/cacert.pem" - 重启终端,再试
php install.php
若仍失败,可临时用国内镜像源绕过 GitHub:
php -r "copy('https://install.phpcomposer.com/installer', 'installer.php');"php installer.php
全局命令未生效导致“command not found”
脚本成功执行后生成了 composer.phar,但运行 composer --version 报错,说明它没进系统路径。常见表现:
bash: composer: command not found-
Could not open input file: composer.phar(当误用php composer.phar但路径不对时)
正确做法:
- Linux/macOS:
sudo mv composer.phar /usr/local/bin/composer - Windows:手动把
composer.phar放到%PROGRAMFILES%\Composer\,再把该路径加进系统PATH - 验证:
composer --version应输出版本号;若仍失败,新开终端——环境变量不会自动刷新
Windows 下防病毒软件拦截 .bat 文件生成
在 CMD 或 PowerShell 中运行安装脚本后,后续 composer install 卡在生成 vendor/bin/phpunit.bat 并报 Access is denied,大概率不是权限问题,而是杀软(尤其是 Windows Defender 实时防护)静默阻止了批处理文件落地。
- 临时禁用实时防护,重试
composer install - 改用 Git Bash 运行(绕过 Windows 批处理权限模型)
- 若必须用 PowerShell,加
--no-scripts跳过脚本生成:composer install --no-scripts - 避免以管理员身份运行终端——这会污染全局 bin 权限,后续更难恢复
真正容易被忽略的是:很多报错看起来像权限或网络问题,其实是 PHP CLI 和 Web 服务器用了两套 php.ini,而安装脚本只依赖 CLI 配置。哪怕浏览器里 phpinfo() 显示一切正常,php -m 也可能空空如也。










