小编zua*_*auz的帖子

如何自动化网站部署到生产,包括缩小 CSS/JS?

目前,我正在使用以下手动过程将我的 PHP 网站从登台部署到生产:

  • 使用在线 YUI 压缩工具缩小 CSS 和 JavaScript 文件。
  • 将原始 CSS 和 JavaScript 文件移动到另一个目录(以备份它们),然后用缩小的 CSS 和 JavaScript CSS 文件替换它们。
  • 开始将所有文件从我的临时服务器复制到我的 Windows PC。
  • 删除暂存 .htaccess 和索引文件,这样它们就不会被复制到生产服务器(这些文件具有暂存环境的特定内容)。
  • 打开 WinSCP 并转到生产服务器上的 Web 根目录,然后将主索引文件切换为“正在进行的更新”,这样如果任何访问者访问该站点,他们就会收到一条消息,说它暂时关闭。
  • 然后使用 WinSCP 从我的 PC 复制到生产 Web 服务器(这会覆盖服务器上的所有现有文件),大约需要 4 分钟才能看到有很多文件。
  • 使用 SSH 登录生产服务器并运行大约 5 个命令来为各种可写目录设置适当的权限,并确保所有内容仍在 www-root 组下。我认为使用 SSH 的上传过程会更改所有现有权限。
  • 将“正在进行的更新”索引文件切换回正常索引。

整个过程非常复杂,大约需要 5-10 分钟,我每次对网站进行更改时都必须这样做,因此它变成了一件苦差事。

现在有没有办法使用一些脚本工具来自动化这个过程?或者是否有一个很好的部署工具,人们可以使用它来完成所有这些工作?我的临时和生产机器是基于 Ubuntu 12.04 服务器的,所以我可能可以使用 bash 脚本来完成一些工作。

我可以看到到目前为止可以进行的一些改进是:

  • 向我的网站添加一些代码,以便它检测它是在 Staging 还是 Production 中,然后根据环境使用原始或缩小的 CSS/JavaScript 文件。这将节省我手动交换文件。
  • 使用命令行 YUI 压缩器并在需要时从脚本文件运行它。
  • 使用类似 rsync 的东西,这样它只会将更改的文件从我的登台服务器复制到生产服务器,而不是覆盖每个文件

我工作过的一家公司使用Fabric 命令行工具来自动化部署和做这种事情。但是,这是一个不错的选择还是有更好的工具?

linux ssh deployment rsync fabric

5
推荐指数
1
解决办法
1984
查看次数

标签 统计

deployment ×1

fabric ×1

linux ×1

rsync ×1

ssh ×1