答案是:在有网络的机器上提前下载依赖并构建本地仓库,通过 composer serve 或静态服务配置为离线环境的镜像源,实现无网络下正常运行。

在内网或无网络环境下使用 Composer,核心思路是提前准备依赖包和配置本地镜像源。只要做好离线资源的准备工作,Composer 完全可以在无网络条件下正常运行。
1. 提前下载并构建本地包仓库
Composer 支持通过 composer serve 或自建 HTTP 静态服务方式提供本地包源。你可以提前在有网络的机器上下载所需依赖,并生成一个可被离线环境使用的本地仓库。
操作步骤如下:
- 在联网环境中创建一个项目,使用 composer require 安装所有需要的包
- composer install --no-dev -o 确保依赖完整且优化自动加载
- vendor/ 目录和 composer.lock 文件保存下来
2. 使用私有镜像或本地 Satis 仓库
若团队多个项目共用依赖,推荐搭建本地 Satis 服务。Satis 是 Composer 官方提供的轻量级静态包仓库生成工具。
实现方式:
感谢您选择使用ERMEB域名授权离线网络验证系统(简称:ERMEB域名授权系统)是ERMEB团队开发,ERMEB域名授权系统是国内最稳定,最强大,最先进的域名授权管理平台解决方案之一,ERMEB域名授权系统采用PHP +Mysql的技术,ERMEB域名授权系统框架使用Thinkphp6/mysql数据库基于Markdown开发者文档开发而成,项目安装请参考ThinkPHP官方文档及下面的服务环境说
- composer global require composer/satis
- satis.json 配置文件,列出需要镜像的库
- satis build satis.json web/ 生成静态包列表
- web/ 目录部署到内网 HTTP 服务器(如 Nginx)
- composer.json 中添加该源:
"repositories": [ { "type": "composer", "url": "http://local-satis-server" } ]
3. 离线直接复制 vendor 目录
最简单的方式适用于固定环境、不频繁更新依赖的场景。
做法:
- composer install
- vendor/ 和 composer.lock
- composer dump-autoload 重建自动加载映射即可
4. 配置禁用网络请求
防止 Composer 尝试联网,可在内网环境中设置以下参数:
- 禁止远程访问:composer config --global disable-network true(谨慎使用)
- 或在项目中指定仅使用本地路径源:
-
"repositories": [
{ "type": "path", "url": "./packages/my-lib" },
{ "packagist.org": false }
]
基本上就这些。关键在于提前规划依赖,利用锁文件和本地源机制,让 Composer 在无网时也能“假装”在线。只要 composer.lock 和 vendor 齐全,离线安装并不复杂,但容易忽略 autoload 的重新生成。









