测试,部署和更新PHP站点

时间:2011-02-17 13:05:42

标签: php deployment lamp

很快我将发布我的网站项目,在它看到一天之前,我想准备某种“更新模型”。我正在使用Debian与Apache,PHP 5.3和MySQL(我认为最新),不是作为一个软件包安装而是单独安装。

我想出了执行这个过程的简单想法,所以请看一看并指出弱点:

  • 测试 - 我发现通常的做法是将测试版网站部署到beta.mysite.com子域,然后从那里进行测试。测试将使用与实际站点相同的数据库。在初始发布之后,每个新的测试候选者将是一个单独的分支(在部署时合并,仍然对分支一无所知)。
  • 部署 - 如果在测试阶段一切正常,请复制并覆盖旧版本的网页。

我可以立即发现的问题:

  1. 只要数据库保持不变,测试就没问题。如果它发生了变化该怎么办?
  2. 我希望尽可能透明更新,没有任何维护模式,但我担心复制文件会导致问题。
  3. 其他任何可能成为问题的地方,或者是否有更好的方法来做这件事?

3 个答案:

答案 0 :(得分:5)

答案 1 :(得分:1)

使用相同的数据库是有风险的,因为您可能会意外删除,修改或以其他方式输入数据库中的错误信息,然后最终会在您的生产站点上。

答案 2 :(得分:1)

你是对的,复制文件可能需要一些时间,并可能在复制时破坏网站。更好的选择是使用rsync,这样只会复制更改的文件,这会更快。

更好的是,使用符号链接。将Web服务器指向指向“生产”目录的符号链接。对test / beta目录执行相同的操作。测试完成后,将生产符号链接指向测试目录,该目录现在将成为您的生产目录。

您可以按日期和/或版本命名生产目录。如果出现问题,只需重新编写符号链接即可进行故障恢复。保留尽可能多的先前版本。交换版本几乎是即时的。

请注意,在重新列出符号链接时仍有可能出现问题。解决此问题的唯一方法是在负载平衡设置中安装多个Web服务器。