如何迁移单个 (php||JavaScript||..)文件在生产中没有时间限制

How to migrate a single (php||javascript||...) file in production without time constraints

本文关键字:生产中 没有时间 文件 php 何迁移 迁移 单个 JavaScript      更新时间:2023-09-26

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

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

可能的影响是:

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

想象如下:

  • 拥有文件,如 php require_once 文件,以版本命名(例如:ABusinessClassD-v1.0.php(,支持向后兼容性,只需自下而上逐个cp新文件(数据库、静态文件(img、...(、php 文件、javascript 文件......
  • 按需强制刷新浏览器代码。
想象力!=

就这么简单!=现实。

拜托,有人可以总结全球简单的手动步骤来更新吗 Apache 生产中的简单文件,无需停止为 Web 提供服务 客户端,在手动故意减慢过程中?

在移动

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

您有包含旧代码的服务器 1。服务器 2 使用新代码进行设置。然后,更改您的 DNS 记录或负载均衡器/代理设置,以便改为从服务器 2 提供站点。

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

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