Yii2应用程序更新部署到共享主机
我的方案是:我正在用yii2开发我的第一个非玩具应用程序。我正在通过ssh访问的dev服务器上执行此操作。最终,我必须将应用程序部署到我的客户的服务器,事实证明这是一个没有ssh访问的裸机。Yii2应用程序更新部署到共享主机
第一次部署是好的,我下载了所有内容并上传了其他服务器上的所有内容,更改了配置文件等等。
从那天开始的每个版本部署一直很痛苦。每次我通过作曲家安装一些新的插件/插件/包时,我都无法使它在生产服务器上工作。总有破包,致命错误等。经过一番勇敢的斗争,我最终走向成功,从生产服务器上删除了所有东西,并从头开始上传,这不太方便。
现在的问题是:哪些步骤正确部署我的更新只复制所需的文件,以便使包在第一次尝试工作? Composer.json是否需要? composer.lock? 供应商文件夹是否足够? 资产文件夹是否需要每次都复制,或者我可以认为它们是固定的,我只需要上传新文件夹?
您的托管情况非常不幸。希望你可以说服你的客户切换到一些可以访问shell的托管软件包。
而是同步的,你可以(并且可能应该)从/backend/web/assets
,/backend/web/runtime
,/frontend/web/assets
和/frontend/web/runtime
部署时删除所有文件。无论如何这些文件都是临时的。
作曲家的composer.json
和composer.lock
不相关,因为您没有在您的主机上运行作曲家。
您应该同步vendor
目录。请记住,有些文件会发生变化(autoload.php
等),因此您不能仅上载服务器上不存在的文件,您需要进行同步。
在yii2 guide中还有一个关于部署到共享主机的页面。
P.S .:您也可以尝试上传composer.phar
到您的目录并使用exec
从php运行作曲家。另外,请尝试安装一个php web shell。
完全回答我的问题。特别是有用的事实,“资产”是暂时的,特别是通过'exec'使用作曲家的想法,我一定会试一试 – dirluca
要么,要么只是得到一些体面的主机:) – Beowulfenator
没有SSH访问权限?我建议选择另一个托管。 – arogachev
既不是我的决定,也不是我有权力,恐怕 – dirluca