laravel项目上线前需严格执行统一部署规范:先复制.env.example并生成app_key;禁止手动设置app_key;生产环境必须设app_debug=false;用composer install --no-dev优化依赖;迁移需加--force;禁用生产环境db:seed;逐项清理并缓存配置、路由、视图;前端资源编译输出至public/build/;设置storage和bootstrap/cache权限;supervisor队列超时设为90秒。

团队协作中,Laravel项目上线前若缺乏统一部署规范,会导致不同成员本地环境与生产环境行为不一致、密钥泄露、缓存未清、路由失效等问题,直接引发线上500错误或数据错乱。
统一环境配置流程
第一步:所有成员克隆仓库后,必须先执行cp .env.example .env,再运行php artisan key:generate生成唯一APP_KEY。这一步不可跳过,否则会触发Laravel的加密解密异常,导致Session丢失、Cookie校验失败。
第二步:编辑.env文件时,严禁手动填写APP_KEY值——它必须由key:generate命令生成,否则AES-256加密密钥长度不匹配,会报DecryptException错误。
第三步:将APP_ENV设为local或production后,必须同步调整APP_DEBUG。开发环境可设为true,但生产环境【APP_DEBUG=false是硬性要求】,否则会暴露完整堆栈和.env敏感信息。
依赖与迁移标准化操作
方法一:安装依赖统一用composer install --no-dev --optimize-autoloader。该命令禁用开发依赖(如phpunit),并启用类映射优化,避免生产环境加载测试类引发命名冲突。
方法二:数据库迁移必须在APP_ENV=production下执行php artisan migrate --force。不加--force参数时,Laravel会因APP_DEBUG=false拒绝执行迁移,防止误操作。
方法三:填充测试数据仅限本地使用php artisan db:seed,生产部署脚本中禁止包含该命令——种子数据可能覆盖线上用户表,造成不可逆数据丢失。
缓存与静态资源预热
1. 执行php artisan config:clear → php artisan config:cache → php artisan route:clear → php artisan route:cache → php artisan view:clear → php artisan view:cache。
2. 每一步都必须成功返回“Configuration cache cleared!”等确认提示,中间任意一步失败即终止后续操作。例如route:cache失败常因控制器类不存在或命名空间错误,需立即修复而非跳过。
3. 前端资源编译必须使用npm run build(Vite)或npm run production(Webpack),输出目录严格限定为public/build/,不得修改mix-manifest.json路径或硬编码asset URL。
权限与进程守护配置
部署完成后,运行sudo chown -R www-data:www-data storage/ bootstrap/cache/,确保Web服务器用户对日志与缓存目录有写权限。不执行此步会导致Failed to write cache file错误,且Laravel不会主动报出具体原因,只显示空白页。
使用Supervisor管理队列监听器时,配置文件中command字段必须为php /var/www/myapp/artisan queue:work --sleep=3 --max-jobs=1000 --timeout=90,其中--timeout=90防止长任务阻塞进程,--max-jobs=1000避免内存泄漏累积。











