构建PHP应用程序以便于升级和扩展?

时间:2015-08-13 17:45:37

标签: php deployment upgrade scalability

我试图找到一种方法来构建我的应用程序以进行扩展,这是一个很大的问题。以下是我目前的设置:

我们有一个用PHP和MySql编写的应用程序。该应用程序的编写方式使其理论上可以使用相同的代码库为数千个不同的网站提供服务(但每个网站都有不同的数据库)。

  1. 在我们当前的设置中,我们每个网站都有 1个nginx配置文件,所有这些文件都指向相同的位置,例如/ var / www / current-version。我们有办法让我们知道应该呈现哪个网站。

  2. 每次升级时,我们都会将代码更新到/ var / www / new-version

  3. 将所有代码从/ var / www / current-version /复制到/ var / www / old /

  4. 将所有当前项目从当前/更旧/通过搜索并替换所有nginx配置文件并执行服务重新加载

  5. 将代码从new /复制到当前/

  6. 循环浏览网站

    • 编辑相应的nginx配置文件以指向当前/文件夹
    • 跨所有实例同步新更新的配置文件
    • 运行更新脚本(我们必须这样做,因为升级过程可能涉及迁移数据库和其他一些事情)
  7. 此升级过程涉及很多步骤,并且遇到某些问题,例如同步发生得不够快时。

    我想知道是否有更好的方法可以做到这一点?

    PS: 我不确定这是否是提出这类问题的最佳场所,stackexchange有太多的子站点,我感到很困惑。无论如何,如果我在错误的地方发帖,请随时告诉我

1 个答案:

答案 0 :(得分:0)

为什么不只是使用符号链接?例如,所有nginx配置都设置为/ var / www / website,这是/ var / realdir / website_1_1_0的符号链接。您将新代码部署到/ var / realdir / website_1_2_0,之后只需将符号链接更改为指向此新目录。