生产环境部署失败主因是忽略隐性依赖:需检查.env配置与Git隔离、APP_KEY重生成、缓存命令前置验证、排除开发文件、静态资源完整性、storage/bootstrap/cache权限及日志磁盘空间。
直接打包 Laravel 项目代码本身不难,但生产环境部署失败,90% 出在「没做对检查」——不是缺命令,而是漏了环境、权限、缓存、配置这些隐性依赖。
确认 .env 已正确配置且未提交到 Git
Laravel 启动时优先读取 .env,但很多团队会误把开发配置留在生产机上,或忘记重命名示例文件。
- 检查线上服务器是否存在
.env,内容是否含APP_ENV=production和APP_DEBUG=false - 确认
.env不在 Git 历史中:git ls-files | grep .env应无输出;若曾误提交,需用git filter-repo清理 -
APP_KEY必须通过php artisan key:generate生成,不能复用开发环境的值(否则加密/Session 失效)
运行 php artisan config:cache 和 php artisan route:cache 前先验证
这两条命令能提速,但一旦出错会导致整个应用 500 —— 尤其当配置里用了闭包、动态变量或未加载的服务提供者时。
- 先执行
php artisan config:clear和php artisan cache:clear清旧缓存 - 再试运行
php artisan config:test(Laravel 10.28+)或手动检查config/*.php中是否含env()调用(缓存后不生效,应改用config('app.name')等间接方式) -
route:cache不支持闭包路由,检查routes/web.php和routes/api.php是否全为数组式定义
打包时排除开发专用文件和目录
用 zip 或 tar 直接压缩整个项目根目录,极大概率带入危险项。