【发布时间】:2019-05-31 01:27:42
【问题描述】:
我在开发系统的作曲家模式下使用 TYPO3。 我将通过将所有生成的文件复制到生产系统来进行部署。
我想知道我是否需要在我的生产系统上安装作曲家,或者当所有“供应商”/“自动加载”的东西都被复制到生产系统时就足够了。
换句话说:TYPO3 composer-mode 是否需要安装 composer?
非常感谢您的回复。
【问题讨论】:
标签: deployment composer-php typo3
我在开发系统的作曲家模式下使用 TYPO3。 我将通过将所有生成的文件复制到生产系统来进行部署。
我想知道我是否需要在我的生产系统上安装作曲家,或者当所有“供应商”/“自动加载”的东西都被复制到生产系统时就足够了。
换句话说:TYPO3 composer-mode 是否需要安装 composer?
非常感谢您的回复。
【问题讨论】:
标签: deployment composer-php typo3
恰恰相反,您应该不在生产系统上安装作曲家根本!
这样可以降低安装/升级受损和/或损坏的软件包的风险,因为您可以先在本地或暂存环境中测试更改,然后再将它们部署到生产机器,如其他答案中所述。
【讨论】:
composer install 而不是 composer update
composer install。但事实上,生产系统上的任何额外代码都会增加安全问题的风险。即使 CLI 二进制文件无法从 Web 访问或调用,也总是存在未知安全漏洞利用它执行恶意任务的危险。
正如您正确发现的那样,一旦安装了所有软件包并转储了自动加载信息,您就不需要 Composer。
如果您在本地或 CI 服务器上执行所有这些操作,然后上传所有文件,例如使用rsync,那么您的实例正在运行编译。在运行时对包或自动加载信息没有任何更改,这可能需要 Composer。
【讨论】:
不,远程服务器上不需要作曲家。 确实,只要您拥有所有必需的文件,例如带有所有自动加载信息的供应商文件夹,它就可以工作。
例如,如果您使用(默认设置)TYPO3 Surf (https://github.com/TYPO3/Surf),则在本地完成构建,然后将所有文件上传到远程服务器。这样就不需要(例如)远程服务器上的 git 或 composer。
【讨论】: