使用 rsync 为 Symfony 应用程序部署代码更新

Using rsync to deploy code updates for Symfony application

我有几台开发机器,我在上面编写更改代码,还有一台生产服务器,我在其中部署了 Symfony 应用程序。目前我的部署过程很繁琐,包括以下工作流程:

  1. 确定上次提交中更改的文件:

svn log -v -r HEAD

  1. FTP那些文件以普通用户的身份上传到服务器
  2. 以 root 身份手动将这些文件复制到它们的目标位置,如果因为文件是新文件而需要,将所有者更改为 apache 用户

本地用户无权访问 apache 目录,这就是我必须使用 root 的原因。我总是担心由于 FTP 期间忘记文件或复制到 apache src 目录而导致出现问题。

我在想我应该 FTP 整个 Symfony app/src/ 目录以及 composer.json 到服务器作为普通用户然后想出使用 rsync 同步所有文件的脚本。

新的工作流程是:

  1. FTP app/ src/ composer.json 到本地用户项目目录下的服务器
  2. 运行同步文件的同步脚本
  3. 清除缓存

这是一个好的解决方案还是有更好的 Symfony 项目?

This question类似,给出了rsync的例子,但不讨论这种方法的优缺点。理想情况下,我希望获得最可靠且易于设置的方法,最好不需要安装新软件。

基本上每个自动化解决方案都会比 rsync 或 ftp 更好。正如您提到的,有很多事情要做:复制文件、清除缓存、运行 迁移、生成资产,等等。

在这里您可以找到潜在解决方案的列表。

http://symfony.com/doc/current/cookbook/deployment/tools.html#using-build-scripts-and-other-tools

根据我使用 symfony 的经验,我可以推荐 capifony,理解它需要一些时间,但它是值得的