生效,必须执行composer config -g repo.packagist https://mirrors.aliyun.com/composer/(缺-g、键名错误、URL少斜杠均静默失效),并运行composer clear-cache清除旧缓存,否则仍卡在Downloading或Resolving dependencies。

composer config -g repo.packagist 镜像配置是否生效
国内直接走 packagist.org 经常超时或卡在 downloading,composer install 卡住十秒以上基本就是网络问题。镜像必须全局配置才对 Webman 项目起作用——因为 Webman 的依赖安装(尤其是 composer create-project 或后续 composer require)全走 CLI 模式,不读项目级 composer.json 里的 repo 配置。
验证方式很简单:composer config -g repo.packagist 应输出类似 https://mirrors.aliyun.com/composer/;若为空,说明没设成功。
- 正确命令是:
composer config -g repo.packagist https://mirrors.aliyun.com/composer/ - 别漏掉
-g(global),否则只影响当前目录,Webman 新建项目时根本用不上 - 执行后可跑
composer clear-cache清旧缓存,避免镜像切换后仍拉旧包 - 如果公司内网有私有源,优先配私有源,再 fallback 到阿里云镜像,用
composer config -g repos.packages '{"packagist.org": false, "aliyun": {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}}
Webman 项目里 composer install 卡死的真正原因
不是镜像没配,而是 Webman 依赖链深、包体积大,composer install 默认内存限制(CLI 模式常为 128M)根本扛不住。你看到 “Resolving dependencies” 停住不动,大概率是 OOM 被系统 kill,但 Composer 不报错,只静默卡住。
临时解法就是绕过内存限制:php -d memory_limit=-1 composer install。注意:这个 -1 是传给 PHP 解释器的,不是 Composer 参数。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 长期方案:改
php.ini里memory_limit = 512M,并确认 CLI 模式生效——运行php --ini看加载路径,再查该文件里是否真写了那行 - Webman 官方 zip 包解压后直接
composer install,不推荐用create-project,因为workerman/webman仓库本身没 dist 包,容易拉到不稳定分支 - 生产部署加
--no-dev,跳过phpunit、php-cs-fixer这类开发依赖,既提速又减小 vendor 体积
require webman 插件时为什么总报 Class not found
常见现象:装了 webman/admin 或 tinywan/rpc,config/plugin/ 下也生成了目录,但启动时报 Class 'WebmanApp' not found 或插件类找不到。根本原因不是镜像或 Composer 本身,而是 Webman 启动逻辑绕过了自动加载——它靠 start.php 顶部硬编码的 require_once 加载核心。
所以即使镜像配对、composer install 成功,只要没触发插件的配置复制机制,或者插件没声明 "type": "composer-plugin",config/plugin/xxx 就不会被 Webman 扫描到。
- 装插件必须用
composer require -W webman/admin,-W是关键:跳过 Webman 默认禁用的exec等函数检查,否则某些插件安装脚本直接中断 - 装完立刻检查
config/plugin/admin是否存在,而不是只看vendor/webman/admin - 插件包的
composer.json必须含"extra": {"class": "Webman\Plugin\Admin\Plugin"}且该类实现ComposerPluginPluginInterface,否则config/plugin/不会自动生成
Docker 环境下镜像配置容易被忽略的点
Docker 构建时,composer config -g 写的是容器内的全局配置,但构建阶段(RUN)和运行阶段(CMD)的用户、PHP 配置可能不同。最典型的是:Dockerfile 里跑了 composer config -g,但最终镜像里 PHP CLI 模式没加载对应 php.ini,导致 memory_limit 还是 128M,composer install 在 RUN 阶段就失败。
解决办法不是堆更多命令,而是把镜像配置和 PHP 配置一起固化进基础镜像。
- Dockerfile 中先写
RUN php -d memory_limit=-1 composer config -g repo.packagist https://mirrors.aliyun.com/composer/ - 再确保
php.ini文件已 COPY 进镜像,并在php -v输出中确认 CLI 模式加载的是它 - Webman 官方 Docker 镜像(如
workerman/webman:php81)默认已配好阿里云镜像,直接docker-compose up即可,不用额外配
Class not found 就准时出现。


















