Yii2 app更新部署到共享主机

时间:2015-11-03 22:12:11

标签: yii2 composer-php packages continuous-deployment

我的情景是:我用yii2开发我的第一个非玩具应用程序。我在可以通过ssh访问的开发服务器上进行此操作。最终,我必须将应用程序部署到我的客户服务器,结果是一个没有ssh访问权限的裸托管服务器。

第一次部署没问题,我下载所有内容并上传其他服务器上的所有内容,更改配置文件等等。

从那天开始的每个版本部署都很痛苦。每次我通过composer安装一些新的插件/小部件/包我都无法在生产服务器上运行。总有破损的包裹,致命的错误等等。在一场勇敢的战斗之后,我最终获得了生存,删除了生产服务器上的所有内容并从头开始上传,这不是很方便。

问题是:正确部署我的更新的步骤是什么,只复制所需的文件,以便在第一次尝试时使包工作? composer.json需要吗? composer.lock? 供应商文件夹是否足够?每次都需要复制资产文件夹,或者我可以假设它们已修复,我只需要上传新文件夹吗?

1 个答案:

答案 0 :(得分:2)

您的托管情况非常不幸。希望您能说服您的客户切换到一些具有shell访问权限的托管包。

在部署时,您可以(并且可能应该)从/backend/web/assets/backend/web/runtime/frontend/web/assets/frontend/web/runtime删除所有文件,而不是同步。这些文件无论如何都是暂时的。

作曲家的composer.jsoncomposer.lock不相关,因为你没有在你的托管上运行作曲家。

您应该同步vendor目录。请记住,那里的某些文件会发生变化(autoload.php等等),因此您不能只上传服务器上不存在的文件,您需要同步。

在部署到共享主机的yii2 guide中还有一个页面。

P.S。:您还可以尝试将composer.phar上传到您的目录,并使用exec从php运行composer。另外,尝试安装php web shell。