0

我有简单的文件(php||javascript||...)在生产中运行 (apache+(php||javascript||...))

我正在尝试考虑 在不停止为 Web 客户端提供服务的同时迁移简单文件的正确方法。

可能的影响是:

  • Apache 缓存文件:我不知道 apache 如何处理文件(php、img、...)。它是否缓存它们,并检查更新时间戳以重新加载,还是在每个 http 请求上重新加载?
  • Linux文件以原子方式更改:如果我cp的文件有新内容,apache只能看到我的命令的全部内容最终保存结果?
  • Apache 执行过程:我可以暂停 Apache,保留当前请求,同时复制新文件版本。

想象以下内容:

  • 有文件,如 phprequire_once文件,以版本命名(例如:)ABusinessClassD-v1.0.php,支持向后兼容性,并且只需cp从下向上(数据库,静态文件(img,...),php 文件, javascript 文件,...)
  • 按需强制刷新浏览器代码。

想象!= 就这么简单!= 现实。

请,有人可以总结全局简单的手动步骤来更新 apache 生产中的简单文件,而不停止为 Web 客户端提供服务,在手动故意缓慢的过程中?

4

1 回答 1

1

在移动 PHP 代码库时保证没有问题的唯一可靠方法是在同一台服务器上拥有两台服务器或两个部署。

您有服务器 1,其中包含您的旧代码。使用新代码设置服务器 2。然后,您的 DNS 记录或负载平衡器/代理设置会更改,因此您的站点将由服务器 2 提供服务。

或者使用一台服务器,您将 Apache 配置为从 为您的应用程序提供服务/path/to/old,然后在/path/to/new. 然后更改您的 Apache 配置以/path/to/new用于应用程序并重新启动服务器。

如果您需要在文件名中使用版本号 ( ABusinessClassD-v1.0.php),那么您需要了解 Git 或 Mercurial 等版本控制软件。

于 2013-10-05T22:59:17.580 回答