使用 rsync 为 Symfony 应用程序部署代码更新
Using rsync to deploy code updates for Symfony application
我有几台开发机器,我在上面编写更改代码,还有一台生产服务器,我在其中部署了 Symfony 应用程序。目前我的部署过程很繁琐,包括以下工作流程:
- 确定上次提交中更改的文件:
svn log -v -r HEAD
- FTP那些文件以普通用户的身份上传到服务器
- 以 root 身份手动将这些文件复制到它们的目标位置,如果因为文件是新文件而需要,将所有者更改为 apache 用户
本地用户无权访问 apache 目录,这就是我必须使用 root 的原因。我总是担心由于 FTP 期间忘记文件或复制到 apache src 目录而导致出现问题。
我在想我应该 FTP 整个 Symfony app/
和 src/
目录以及 composer.json
到服务器作为普通用户然后想出使用 rsync 同步所有文件的脚本。
新的工作流程是:
- FTP app/ src/ composer.json 到本地用户项目目录下的服务器
- 运行同步文件的同步脚本
- 清除缓存
这是一个好的解决方案还是有更好的 Symfony 项目?
This question类似,给出了rsync的例子,但不讨论这种方法的优缺点。理想情况下,我希望获得最可靠且易于设置的方法,最好不需要安装新软件。
基本上每个自动化解决方案都会比 rsync 或 ftp 更好。正如您提到的,有很多事情要做:复制文件、清除缓存、运行 迁移、生成资产,等等。
在这里您可以找到潜在解决方案的列表。
http://symfony.com/doc/current/cookbook/deployment/tools.html#using-build-scripts-and-other-tools
根据我使用 symfony 的经验,我可以推荐 capifony,理解它需要一些时间,但它是值得的
我有几台开发机器,我在上面编写更改代码,还有一台生产服务器,我在其中部署了 Symfony 应用程序。目前我的部署过程很繁琐,包括以下工作流程:
- 确定上次提交中更改的文件:
svn log -v -r HEAD
- FTP那些文件以普通用户的身份上传到服务器
- 以 root 身份手动将这些文件复制到它们的目标位置,如果因为文件是新文件而需要,将所有者更改为 apache 用户
本地用户无权访问 apache 目录,这就是我必须使用 root 的原因。我总是担心由于 FTP 期间忘记文件或复制到 apache src 目录而导致出现问题。
我在想我应该 FTP 整个 Symfony app/
和 src/
目录以及 composer.json
到服务器作为普通用户然后想出使用 rsync 同步所有文件的脚本。
新的工作流程是:
- FTP app/ src/ composer.json 到本地用户项目目录下的服务器
- 运行同步文件的同步脚本
- 清除缓存
这是一个好的解决方案还是有更好的 Symfony 项目?
This question类似,给出了rsync的例子,但不讨论这种方法的优缺点。理想情况下,我希望获得最可靠且易于设置的方法,最好不需要安装新软件。
基本上每个自动化解决方案都会比 rsync 或 ftp 更好。正如您提到的,有很多事情要做:复制文件、清除缓存、运行 迁移、生成资产,等等。
在这里您可以找到潜在解决方案的列表。
http://symfony.com/doc/current/cookbook/deployment/tools.html#using-build-scripts-and-other-tools
根据我使用 symfony 的经验,我可以推荐 capifony,理解它需要一些时间,但它是值得的