本质是github api限流或认证缺失,不是网络慢;yii2.0.55安装时因拉取子模块触发未授权限流(每小时60次),需生成含public_repo和read:packages权限的personal access token,并执行composer config -g github-oauth.github.com 配置认证。

composer install 为什么卡在 Loading composer repositories
本质是 GitHub API 限流或认证缺失,不是网络慢。Yii2.0.55 模板在 install 阶段会尝试拉取 yiisoft/yii2-auth-client 等子模块,国内 IP 默认触发 GitHub 的未授权请求限流(403 rate limit exceeded),表现为命令长时间停在 Loading composer repositories 不动。
- 必须提前生成 GitHub Personal Access Token:访问
https://github.com/settings/tokens/new,Description 填yii2-install,勾选public_repo和read:packages - 执行
composer config -g github-oauth.github.com <your-token></your-token>注入认证凭据 - 若已配置过但 token 过期或权限不足,删掉
~/.composer/auth.json重试
vendor/autoload.php 找不到或 Class 'Yii' not found
这不是 Composer 没装完,而是项目结构或路径错位。Yii2 要求 web/index.php 必须能正确 require 到 ../vendor/autoload.php,而这个路径依赖于当前工作目录和 Web 服务器根目录的设定。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 确认当前终端位置是项目根目录(含
composer.json和vendor/),否则php yii serve会报Could not open input file: yii - 检查
web/index.php开头是否为require __DIR__ . '/../vendor/autoload.php';—— 若项目被移动过,__DIR__可能指向错误位置 - Apache/Nginx 的
document_root必须设为web/子目录,不能是项目根目录;否则index.php无法上溯找到vendor/
“no matching package found” 报错指向 bower-asset/jquery
这是 fxp/composer-asset-plugin 彻底失效后的典型症状。该插件自 2021 年起废弃,Composer 2.2+ 默认拒绝加载,但 Yii2.0.55 的 composer.json 仍保留旧式 bower-asset/* 依赖声明。
- 不要尝试
composer global require fxp/composer-asset-plugin—— 会返回Package fxp/composer-asset-plugin is abandoned并阻断后续所有操作 - 改用
asset-packagist:运行composer config -g repositories.asset-packagist composer https://asset-packagist.org - 已有项目需手动清理:删除
composer.json中所有"fxp/composer-asset-plugin"相关字段,并确保repositories数组里只有{"type": "composer", "url": "https://asset-packagist.org"}
PHP 8.2+ 下 install 静默失败或报 strlen() deprecated
Yii2.0.55 官方支持 PHP 7.4–8.1,但在 PHP 8.2.0+ 中,框架底层对 strlen(null) 的调用会触发 Deprecated 级别错误并导致 Composer 解析器静默终止 —— 终端无报错、进程退出码为 0,但 vendor/ 为空或不完整。
- 执行
php -v确认版本:若输出为PHP 8.2.5或更高,必须降级至PHP 8.1.29(最后一个无此问题的 8.1 小版本) - 检查必需扩展是否启用:
php -m | grep -E "mbstring|openssl|pdo_mysql|curl",缺任一模块都会让composer install在解析阶段就失败,报Your requirements could not be resolved - 临时绕过(仅调试):在
composer install前加export COMPOSER_DISABLE_TTY=1,可暴露被隐藏的 warning 输出
bower-asset 依赖根本解析不了——真正要做的,是按顺序验 PHP 版本 → 补扩展 → 换 asset 源 → 配 GitHub token,跳过任意一环都可能白忙半天。










