教育网用户应优先使用sjtug或ustc镜像,避免阿里云等公网镜像;需确保dns解析、tls握手稳定,日志中必须出现sjtug或ustc域名,禁用fallback;优化composer缓存路径至ssd,并在ci中启用--no-dev --prefer-dist等参数加速构建。

教育网用户必须用 SJTUG 或 USTC 镜像
教育网内走公网镜像(比如阿里云)反而更慢,因为跨网段路由绕行、出口带宽争抢严重。上海交大 SJTUG 和中科大 USTC 两个镜像由高校运维,直连 CERNET,DNS 解析快、TLS 握手稳、首字节延迟通常
正确配置命令是:composer config -g repo.packagist composer https://packagist.mirrors.sjtug.sjtu.edu.cn/(SJTUG)或 composer config -g repo.packagist composer https://packagist.mirrors.ustc.edu.cn/(USTC)。注意三点:键名必须是 repo.packagist,composer 这个 type 值不能省,URL 结尾必须有 /。
- 执行后立刻验证:
composer config -g repo.packagist输出应为完整 JSON 对象,含"type": "composer"和对应 URL - 如果输出为空、
null或仍是https://packagist.org,说明没写对,重配 - 项目根目录若存在
repositories字段,会覆盖全局设置——教育网环境下建议删掉或统一改成 SJTUG/USTC 地址
为什么 composer install 还卡在 Resolving dependencies
这个阶段完全不走网络,和镜像无关。教育网用户常忽略本地 PHP 环境的干扰项:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
Xdebug默认开着:会让依赖解析慢 5–10 倍,临时禁用:php -d xdebug.mode=off $(which composer) install - 内存不够:
memory_limit=128M在 Laravel + 多包项目里根本不够,加环境变量:COMPOSER_MEMORY_LIMIT=-1 composer install -
platform配置错位:比如"php": "8.1"却在 PHP 8.4 下运行,触发大量版本回退查找 -
composer.lock里残留已下线包:教育网某些旧包索引同步略滞后,删掉vendor/和composer.lock,再composer install --no-cache
验证是否真走高校镜像,别信配置输出
光看 composer config -g repo.packagist 输出还不够。必须亲眼看到请求发到了镜像域名:
- 运行:
composer show laravel/framework -vvv 2>&1 | grep "Downloading" - 日志中必须出现
packagist.mirrors.sjtug.sjtu.edu.cn或packagist.mirrors.ustc.edu.cn - 如果出现
packagist.org或mirrors.aliyun.com,说明 fallback 了,配置被覆盖或未生效 - 教育网 DNS 缓存顽固,可加
COMPOSER_NO_INTERACTION=1强制跳过交互式解析
CI/CD 流水线里别漏掉缓存路径优化
教育网服务器常部署在物理机或虚拟机上,~/.composer/cache 若落在机械硬盘或 NFS 挂载卷,I/O 会拖垮整个构建流程:
- 查当前缓存路径:
composer config --global cache-dir - 推荐改到 SSD 分区:
composer config -g cache-dir /data/composer-cache - CI 中务必组合使用:
composer install --no-dev --prefer-dist --no-autoloader --no-scripts - 教育网 CI 容器启动慢,
--no-autoloader能跳过 vendor 扫描,后续单独composer dump-autoload --optimize
Resolving dependencies 卡住时,90% 的人还在查网络,其实问题早就在本地 PHP 配置里。










