离线环境用composer必须两机分工:联网机执行composer install --no-dev --prefer-dist等命令并打包完整项目,离线机设composer_disable_network=1后运行install再执行dump-autoload -o,否则必报could not fetch或class not found。

离线环境用 Composer 不是“配个参数就能跑”,而是必须切断所有网络依赖路径,提前把包、锁、结构全固化在本地——任何一步漏掉,composer install 就会卡在 Could not fetch https://repo.packagist.org/packages.json 或静默失败。
为什么 composer create-project 在离线机上一定失败
这个命令设计上就强制联网:它先访问 Packagist 元数据接口解析模板项目(如 laravel/laravel),再克隆 Git 仓库,最后才执行 install。哪怕你把 composer.lock 和 composer.phar 全拷过去,第一步的 HTTP 请求也绕不开。
-
COMPOSER_DISABLE_NETWORK=1对它完全无效 -
--offline参数根本不存在 - 它不读本地缓存,也不认已有的
vendor/目录 - 报错典型形式:
Package laravel/framework not found或Failed to decode response
离线安装依赖的唯一可靠路径
核心是“两台机分工”:联网机负责下载和构建,离线机只做复制和加载。不能跳步,也不能指望 --no-network 单独生效。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 在联网机上,确保项目有
composer.lock,运行composer install --no-dev --prefer-dist --no-scripts --no-plugins --optimize-autoloader - 打包整个项目目录(含
vendor/、composer.lock、composer.json),不是只拷vendor/ - 离线机上先清缓存:
composer config --global cache-dir /dev/null,再执行COMPOSER_DISABLE_NETWORK=1 composer install --no-plugins --no-scripts --no-autoloader - 最后必须补一记:
composer dump-autoload -o,否则类自动加载器没注册,Class not found错误必现
离线机上 composer 命令本身必须可用
很多人卡在这一步却以为是网络问题——其实 composer 命令根本没进系统 PATH,或者 PHP 命令行环境不完整。
- 先确认
php -v能执行,且openssl、curl、zlib扩展已启用(宝塔用户尤其注意禁用函数列表) -
where composer(Windows)或which composer(Linux/macOS)必须返回有效路径,否则说明 PATH 没配对 - 如果用
php composer.phar方式调用,记得给文件加执行权限(Linux/macOS)或用composer.bat包装(Windows) - 全局工具(如
laravel)找不到?检查%APPDATA%\Composer\vendor\bin(Windows)或~/.composer/vendor/bin(Linux/macOS)是否进了 PATH
最容易被忽略的是 autoload 重建和 PHP CLI 环境一致性:离线机的 PHP 版本、扩展、位数必须和联网机构建时一致,否则 vendor/ 里可能含语法错误文件,composer install 会直接退出而不是报错。










