我是composer的新手,想知道你们是如何使用composer将项目部署到生产服务器上的?
在部署时,composer是否也将需要的依赖包推送到服务器?
composer是否可以使用最小化过程构建应用程序?
我认为目前的最佳实践是不在目标生产服务器上运行Composer。部署web应用程序的常规过程通常需要几个独立的步骤,而Composer只适合其中的一些步骤,不管人们让它做什么。
你提到了最小化,我一般会添加拉入JavaScript依赖项的过程。这不是Composer的领域。过去已经提供了包含Jquery的Composer包,但这需要额外的工作来将Jquery放在正确的目录中,增加了运行安装后脚本或添加需要配置的安装程序的需要。我想正确的方法是使用Bower。
所以部署至少是一个三步的过程。
- 使用composer来安装PHP依赖项。
- 使用rsync, SFTP, SCP或FTP(S)将所有文件移动到服务器。
任何优化步骤都将在将文件移动到部署脚本中的服务器之前完成。
如果在收集依赖项期间出现任何故障,无论是Github的意外停机,还是您的部署服务器耗尽磁盘空间,您都不会以部署了一半的新网站版本告终。如果有任何东西丢失或出错,可以在同步之前停止部署脚本。
是的,composer install
在测试服务器上获得所有依赖项,检查它,如果一切正常,然后将所有文件同步到生产服务器,这可以使您避免在生产服务器上运行composer install
的意外问题。
另一种方法是在composer install
之后对来自测试服务器的所有文件进行签名,然后使用composer install
获得生产服务器中的所有依赖项,对文件进行签名,现在必须检查测试服务器和生产服务器中分别生成的两个签名,如果匹配,则祝贺,部署成功。