必须按 composer.json 精确还原依赖:先删除 vendor 和 composer.lock,再运行 composer install --no-dev --optimize-autoloader;随后复制 .env.example 为 .env、执行 php artisan key:generate,并清空 config:clear 与 cache:clear。

拉取旧版本 Laravel 项目代码后,不能直接运行,必须按项目实际依赖环境还原完整状态。关键不是“重新安装框架”,而是“复现原开发环境”,尤其要避免因 Composer 行为变化导致版本错乱。
确认项目所用的 Laravel 实际版本
打开项目根目录下的 composer.json,重点查看两处:
-
"laravel/framework" 的版本约束(如
"^7.0"、"8.75.0"或"9.52.*") -
"require" 区块中
illuminate/*等包是否被手动锁定(旧项目有时会显式写死子包版本)
注意:仅看 php artisan --version 不可靠——如果缓存未清或 artisan 被替换过,结果可能失真。优先以 composer.json 为准。
用 composer install 精确还原依赖
执行以下命令,不升级、不推测、只照 composer.lock 安装:
- 必须先删掉
vendor/目录和composer.lock(如果 lock 文件缺失或明显不匹配) - 运行
composer install --no-dev --optimize-autoloader(生产环境推荐) - 若项目明确要求 dev 依赖(如测试工具、本地调试包),去掉
--no-dev,但需确保 PHP 扩展齐全
⚠️ 禁止直接运行 composer update ——这会无视 lock 文件,很可能把 8.x 项目里的 illuminate/support 升到 9.x,引发 Class not found 错误。
补全必要初始化操作
依赖装完后,还需三步才能启动:
- 复制
.env.example为.env,并填写数据库、缓存、Redis 等实际配置 - 运行
php artisan key:generate(生成 APP_KEY 并写入 .env) - 清空配置缓存:
php artisan config:clear和php artisan cache:clear(尤其旧项目常残留 bootstrap/cache 下的旧文件)
验证与排错要点
常见失败场景及应对:
-
PHP 版本不兼容:例如 Laravel 6.x 要求 PHP ≥ 7.2,Laravel 8.x 起需 ≥ 7.3;用
php -v核对,必要时切换 PHP 版本(如通过 brew、phpbrew 或系统多版本管理) -
扩展缺失:旧版 Laravel 常依赖
mbstring、openssl、tokenizer、xml、ctype,缺一则报错;用php -m检查,Linux 下可sudo apt install php-mbstring补齐 -
权限问题:storage/ 和 bootstrap/cache/ 目录需可写(Linux/macOS 运行
chmod -R 775 storage bootstrap/cache)











