离线模式必须显式启用composer_disable_network=1,否则composer install必访https://repo.packagist.org/packages.json;需配合--no-plugins --no-scripts --no-autoloader执行,再运行dump-autoload -o。

离线模式必须显式启用 COMPOSER_DISABLE_NETWORK=1
不设这个环境变量,composer install 一定会尝试访问 https://repo.packagist.org/packages.json,哪怕 vendor/ 已存在、composer.lock 完整也没用。错误不是“找不到文件”,而是网络校验强制触发——这个行为无法跳过,只能靠环境变量硬性关闭。
常见错误现象:Could not fetch https://repo.packagist.org/packages.json,或卡在 “Loading composer repositories” 不报错也不退出。
-
COMPOSER_DISABLE_NETWORK=1是前提,所有--no-xxx参数都依赖它生效 - Windows 下用
set COMPOSER_DISABLE_NETWORK=1,Linux/macOS 用export COMPOSER_DISABLE_NETWORK=1 - 执行前确认没残留全局 repo 配置:
composer config --global repo.packagist应返回空或false,否则需先运行composer config --global repo.packagist false
离线 install 必须绕过插件、脚本和 autoload 重建
即使网络已禁用,Composer 默认仍会初始化插件、执行 post-install-cmd 脚本、重建 autoload 文件——这些环节可能隐式联网或依赖远程状态,必须全部跳过。
最稳命令组合(缺一不可):
COMPOSER_DISABLE_NETWORK=1 composer install --no-plugins --no-scripts --no-autoloader
-
--no-plugins:防止phpstan/extension-installer等插件触发远程请求 -
--no-scripts:屏蔽post-install-cmd,避免脚本调用外部 API 或生成配置时失败 -
--no-autoloader:跳过 autoload 重建,某些自定义加载器会在构建时查远程类
执行完这一步后,必须立刻补一记:composer dump-autoload -o,否则运行时大概率报 Class not found。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
本地包安装只能靠 path 仓库,不能靠 require 直接拉
composer require vendor/name 在离线环境下必然失败,因为 require 默认要联网查包名和版本。唯一可行方式是把本地目录注册为 path 类型仓库。
- 本地包根目录下必须有合法
composer.json,含"name"(如"acme/utils")和"version"(如"dev-main") - 项目
composer.json中添加:"repositories": [{"type":"path","url":"./packages/my-utils"}](注意:Windows 绝对路径要带盘符,如C:/projects/my-pkg) - 再执行:
composer require acme/utils:dev-main(版本号必须与本地包的composer.json一致)
常见坑:只加了 repositories 却没跑 require,或者版本约束写成 ^1.0 但本地包没设 version 字段,都会报 Could not find a matching version。
vendor 目录迁移要注意结构和权限
离线部署的本质是把完整 vendor/ 从联网机拷过去,不是重新生成。结构错一点就挂。
- 压缩时确保解压后直接是
vendor/目录,不要嵌套(如tp6-vendor.zip/vendor/...是对的,tp6-vendor.zip/project/vendor/...是错的) - Linux/macOS 推荐用
zip -r,Windows 用 7-Zip 并选“存储”压缩方式,避免 LZMA 算法损坏符号链接 - 上传到内网服务器后,检查
vendor/autoload.php是否可读;若 Web 进程用户为www,需运行:chown -R www:www vendor/和chmod -R 755 vendor/
最容易被忽略的是 PHP 版本和扩展一致性:目标机 PHP 版本、mbstring、openssl、zlib 必须和联网机构建时完全一致,否则 vendor/ 里可能含语法错误或无法加载的扩展模块。










