生产环境部署应使用 composer install –no-dev –prefer-dist –no-scripts –no-progress –optimize-autoloader,确保仅安装必需依赖、从发布包快速下载、禁用潜在风险脚本、提升类加载性能,并保持输出简洁,适用于自动化流程。
在生产环境部署时运行 composer install,应使用特定参数来确保安全性、性能和一致性。核心目标是避免安装开发依赖、防止交互式操作,并锁定已验证的依赖版本。
–no-dev
排除开发依赖项(如测试工具、调试包等),这些在生产环境中不需要,可能带来安全风险或增加部署体积。
- 只安装 require 中定义的依赖,跳过 require-dev
- 减少 vendor 目录大小,提升加载性能
–prefer-dist
优先从 dist(发布包)而非 source(源码仓库)安装依赖。
- dist 是预打包的压缩文件,下载更快
- 避免在生产环境执行 Git 克隆或拉取操作
- 更稳定,不受开发分支变动影响
–no-scripts
禁用 composer.json 中定义的脚本(如 post-install-cmd)。
- 防止执行本地构建、缓存清除等不适合生产环境的操作
- 避免潜在的安全风险或意外副作用
–no-progress
不显示下载进度条。
- 适合自动化部署脚本,避免输出混乱
- 提升 CI/CD 环境下的日志可读性
–optimize-autoloader 或 –classmap-authoritative
生成更高效的自动加载映射。
- 加快类加载速度,提升应用性能
- 推荐在生产环境启用,尤其对性能敏感的服务
完整推荐命令:
composer install –no-dev –prefer-dist –no-scripts –no-progress –optimize-autoloader
如果你完全信任部署流程且不需要运行任何自定义脚本,可以保留上述参数。若某些优化脚本(如清缓存)确需运行,可单独在部署流程中显式调用,而不是依赖 composer 自动触发。
基本上就这些。关键是确保依赖一致、安全、高效,同时避免不必要的操作干扰生产环境。不复杂但容易忽略细节。