离线安装laravel的核心难点是绕过composer远程依赖,需提前备好php环境(版本匹配、扩展启用、时区配置)、可运行的composer(≥2.5)、以及含composer.lock和完整vendor目录的预构建项目包。

离线安装 Laravel 的核心难点不在“下载框架本身”,而在于绕过 Composer 对远程源的依赖,并确保所有组件能在无网络状态下完成解析、解压与初始化。真正需要提前设置的,是那些不依赖实时网络但决定安装能否走通的关键本地配置。
必须提前准备的本地组件
-
PHP 运行环境已就位
离线环境无法临时安装或启用扩展。需提前确认:- PHP 版本匹配目标 Laravel(例如 Laravel 11 要求 PHP ≥ 8.2,Laravel 13 要求 PHP ≥ 8.3)
- 所有必需扩展已编译并启用:
openssl、pdo、mbstring、tokenizer、xml、ctype、json、bcmath、fileinfo、zip、curl -
php.ini中date.timezone已设为有效时区(如Asia/Shanghai),且系统 locale 支持 UTF-8
-
Composer 已安装且可离线运行
- Composer 二进制文件(
composer.phar或全局可执行composer)必须已存在本地,并验证可用:composer --version - 若使用旧版 Composer(composer.lock 易失败
- 不需要配置镜像源(离线时无效),但需确保
composer install命令本身能执行(即不报“command not found”或“PHP extension missing”)
- Composer 二进制文件(
-
完整 vendor 包缓存或预下载包集
- 最可靠方式:在有网机器上,用相同 PHP 和 Composer 版本执行:
composer create-project laravel/laravel myapp --no-install cd myapp composer install --no-scripts --no-autoloader
然后打包整个
vendor/目录 +composer.lock+composer.json一起拷贝到离线机 - 替代方式:提前下载 packagist.org 的离线镜像快照 或使用私有 Satis 仓库,但需额外部署 HTTP 服务(已脱离“纯离线”范畴)
- 最可靠方式:在有网机器上,用相同 PHP 和 Composer 版本执行:
无需提前设置(离线时自动跳过或不可用)
-
.env文件内容(数据库、APP_KEY 等)可在安装后手动配置,php artisan key:generate也不依赖网络 - Web 服务器(Apache/Nginx)配置、目录权限(
storage/bootstrap/cache写入)、SSL 证书等属于部署阶段操作,不影响composer install流程 - Git 客户端不是硬性依赖——
create-project默认用 ZIP 方式拉取,除非你显式指定--prefer-source
关键提醒:避免常见断点
- 不要尝试在离线机上运行
composer create-project——它会强制访问 packagist.org,必然失败 - 不要依赖
--prefer-dist或--no-plugins等参数“蒙混过关”,离线时这些参数无法替代缺失的包文件 -
composer install前务必确认当前目录下已有有效的composer.lock(由有网环境生成),否则会卡在依赖解析环节
离线安装本质是“复制构建结果”,不是“复现构建过程”。重点从来不是命令怎么敲,而是哪些文件和状态必须提前备好。











