2015-11-03 55 views
1

我的方案是:我正在用yii2开发我的第一个非玩具应用程序。我正在通过ssh访问的dev服务器上执行此操作。最终,我必须将应用程序部署到我的客户的服务器,事实证明这是一个没有ssh访问的裸机。Yii2应用程序更新部署到共享主机

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

从那天开始的每个版本部署一直很痛苦。每次我通过作曲家安装一些新的插件/插件/包时,我都无法使它在生产服务器上工作。总有破包,致命错误等。经过一番勇敢的斗争,我最终走向成功,从生产服务器上删除了所有东西,并从头开始上传,这不太方便。

现在的问题是:哪些步骤正确部署我的更新只复制所需的文件,以便使包在第一次尝试工作? Composer.json是否需要? composer.lock? 供应商文件夹是否足够? 资产文件夹是否需要每次都复制,或者我可以认为它们是固定的,我只需要上传新文件夹?

+0

没有SSH访问权限?我建议选择另一个托管。 – arogachev

+0

既不是我的决定,也不是我有权力,恐怕 – dirluca

回答

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运行作曲家。另外,请尝试安装一个php web shell。

+0

完全回答我的问题。特别是有用的事实,“资产”是暂时的,特别是通过'exec'使用作曲家的想法,我一定会试一试 – dirluca

+0

要么,要么只是得到一些体面的主机:) – Beowulfenator

相关问题