You need to enable JavaScript to run this app. Laravel 8部署至生产系统所需迁移的文件与目录范围咨询
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8部署至生产系统所需迁移的文件与目录范围咨询

Laravel 8生产部署的文件上传规则

结论很明确:根本不需要上传项目的全部文件与目录,全量上传反而会带来兼容问题、安全风险,只要按要求同步核心必需内容即可。

为什么不建议全量上传

很多新手图省事把本地项目文件夹整个打包传到生产,实际会踩一堆坑:

  • 很容易把本地开发用的.env配置(比如本地数据库账号、开启debug调试的配置)直接同步到生产,轻则出现本地/生产配置混乱,重则把敏感配置通过调试页面泄露给外部访客
  • 本地的vendor/、node_modules/目录是对应本地操作系统(Windows/macOS)编译的依赖文件,直接传到Linux生产环境会出现扩展不兼容、命令无法执行的问题
  • 本地开发产生的日志、临时缓存、IDE配置文件夹、版本控制目录全量上传,既占服务器存储空间,又会给攻击者留下可利用的信息线索

必须同步上传的核心文件与目录

按照最小化同步的原则,以下内容是生产环境必须保留的:

  • 根目录下的项目入口与依赖配置:artisan命令入口、composer.json、composer.lock、Web服务需要的重写规则文件(比如Apache环境的.htaccess)、前端构建配置文件(webpack.mix.js或对应版本的Vite配置)
  • 应用核心代码目录:app/(业务逻辑代码)、config/(所有配置项文件)、routes/(路由定义)、database/(数据库迁移文件、模型工厂定义,本地测试用的sqlite文件可以跳过)
  • 对外访问的静态资源目录:public/(网站入口index.php、编译好的前端静态资源、上传的公开文件目录都在这里,部署时要把Web服务的根目录直接指向这个文件夹)
  • 视图与资源目录:resources/views/下的Blade模板文件(如果生产不需要二次编译前端,未编译的前端源文件可以按需选择不上传)
  • 存储目录结构:storage/目录下的子目录骨架(就是带默认.gitignore的空目录结构,用来存上传文件、生成缓存、写日志,不要把本地存的日志、缓存文件一起传上去)

注意:vendor目录不要直接从本地上传,所有基础文件同步完成后,在生产服务器执行composer install --optimize-autoloader --no-dev命令,重新安装适配生产系统的生产依赖,避免跨系统兼容问题。

绝对不要上传到生产的内容

  • 本地环境专属配置:.env文件(需要在生产服务器手动新建,单独填写生产环境的数据库、缓存、应用密钥等配置)
  • 本地依赖目录:vendor/、node_modules/(由生产环境独立安装,无需从本地上传)
  • 开发调试相关内容:storage/logs/下的本地调试日志、storage/framework/下的本地缓存与编译视图、tests/测试用例目录、IDE配置目录(.idea/、.vscode/)
  • 版本控制目录:.git/(传上去不仅占空间,还可能泄露完整的代码提交记录)

内容的提问来源于stack exchange,提问作者user14335805

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.04 16:45:04