Laravel怎么打包项目代码_Laravel项目生产环境部署检查清单【总结】

1次阅读

生产环境部署失败主因是忽略隐性依赖:需检查.env配置与git隔离、APP_KEY重生成、缓存命令前置验证、排除开发文件、静态资源完整性、storage/bootstrap/cache权限及日志磁盘空间。

Laravel怎么打包项目代码_Laravel项目生产环境部署检查清单【总结】

直接打包 laravel 项目代码本身不难,但生产环境部署失败,90% 出在「没做对检查」——不是缺命令,而是漏了环境、权限、缓存、配置这些隐性依赖。

确认 .env 已正确配置且未提交到 Git

Laravel 启动时优先读取 .env,但很多团队会误把开发配置留在生产机上,或忘记重命名示例文件。

  • 检查线上服务器是否存在 .env,内容是否含 APP_ENV=productionAPP_DEBUG=false
  • 确认 .env 不在 Git 历史中:git ls-files | grep .env 应无输出;若曾误提交,需用 git Filter-repo 清理
  • APP_KEY 必须通过 php artisan key:generate 生成,不能复用开发环境的值(否则加密/session 失效)

运行 php artisan config:cachephp artisan route:cache 前先验证

这两条命令能提速,但一旦出错会导致整个应用 500 —— 尤其当配置里用了闭包、动态变量或未加载的服务提供者时。

  • 先执行 php artisan config:clearphp artisan cache:clear 清旧缓存
  • 再试运行 php artisan config:test(Laravel 10.28+)或手动检查 config/*.php 中是否含 env() 调用(缓存后不生效,应改用 config('app.name') 等间接方式)
  • route:cache 不支持闭包路由,检查 routes/web.phproutes/api.php 是否全为数组式定义

打包时排除开发专用文件和目录

ziptar 直接压缩整个项目根目录,极大概率带入危险项。

  • 必须排除:node_modules/vendor/(应走 composer install --no-dev --optimize-autoloader)、.git/.env.exampletests/phpunit.xml
  • 推荐用 composer install --no-dev --optimize-autoloader 安装依赖,而非复制本地 vendor(版本/扩展差异易引发报错)
  • 静态资源如 public/mix-manifest.json 必须存在,否则 @vitemix() 辅助函数会返回空 URL

Web 服务器权限与 storage / bootstrap/cache 可写性

nginx/apache 进程用户(如 www-datanginx)必须能写入这两个目录,否则日志写不进、视图编译失败、队列监听崩溃。

  • 运行:chown -R www-data:www-data storage bootstrap/cache(根据实际 Web 用户调整)
  • 设置权限:chmod -R 755 storage bootstrap/cache(不建议 777)
  • 验证:用 Web 用户执行 sudo -u www-data touch storage/test.txt,无报错即 OK
  • 若用 docker,注意挂载卷的 UID/GID 是否匹配容器内用户

最常被跳过的其实是 storage/logs/ 的磁盘空间和轮转配置——某次部署后日志暴涨占满磁盘,结果连错误都看不到。别只盯着代码打包,环境里的“静默依赖”才最要命。

text=ZqhQzanResources