应避免直接上传 vendor 目录,而是在本地或 CI 中执行 composer install --no-dev --optimize-autoloader 生成确定依赖,仅上传源码、composer.json 和已提交的 composer.lock;部署时在主机验证 PHP 环境后运行安装命令或上传预构建包。

直接上传 vendor 目录到共享主机不仅体积大、易出错,还可能因主机环境(PHP版本、扩展、权限)不一致导致运行失败。更稳妥的做法是:在本地或CI环境中完成依赖安装,仅上传源码和锁定文件,再通过轻量方式在主机上补全或验证依赖。
确保 composer.lock 文件已提交
这是整个策略的前提。它锁定了所有包的确切版本和哈希值,让后续安装可重现。没有它,每次部署都可能拉取不同版本,引发兼容性问题。
- 检查项目根目录下是否存在
composer.lock - 若不存在,运行
composer install或composer update生成它 - 确认该文件已加入 Git(未被
.gitignore忽略)
使用 composer install --no-dev --optimize-autoloader
这是部署时的标准命令。它只安装 require 中的生产依赖(跳过 require-dev),同时生成优化后的自动加载映射,提升性能且减少文件数量。
- 在共享主机上执行前,需先确认 PHP CLI 可用且版本 ≥ 项目所需最低版本
- 多数共享主机支持 SSH,可通过终端执行;不支持 SSH 的,可用 PHP 脚本封装该命令(需谨慎权限与超时)
- 建议在部署前清空旧
vendor目录,避免残留文件干扰
上传最小必要文件集
除了源码和 composer.lock,只需带上 composer.json 和用于触发安装的简易脚本(可选)。无需上传 vendor、node_modules、测试文件等。
标签: php js git json node composer 解压
还木有评论哦,快来抢沙发吧~