【问题标题】:Deployment - is it safe to GIT push on a live production [closed]部署 - GIT 推送实时生产是否安全 [关闭]
【发布时间】:2018-10-09 14:36:27
【问题描述】:

我目前期待使用裸 git 存储库以便在生产服务器上部署,我有一个“接收后”挂钩,它使用 git checkout 来更新生产文件夹。该应用程序是一个 PHP 网站。

事实上,我想知道在有人使用 web 应用程序时使用 git 在生产服务器上推送是否绝对安全,git 是否通过锁定每个更新文件以类似事务的方式更新文件?他按文件工作?用户是否有可能加载页面并拥有旧提交的 CSS 但新提交的 PHP? (如果他很倒霉)

TL;DR : 在人们使用网站时推送是否有任何风险?

对不起我的英语! 感谢您的帮助!

【问题讨论】:

  • 这在一般情况下根本无法回答,但可以肯定地说 Git 不是一个部署工具,你不应该把它当作一个工具来使用。

标签: php git git-push git-bare


【解决方案1】:

Git 只是复制文件。

您可能需要手动重新启动您的网络服务器才能继续 更改的 php 程序。如果您使用混合 技术 一些软件会立即选择更改的文件,而另一些 可能会等待重新启动。

在您的情况下,您需要检查 php.ini 文件 opcache.revalidate_freq= 和 oapache.enable 设置控制 apache 是否以及多久查找一次更改的源文件。

对于生产服务器,关闭它们可能更安全 重新启动服务器以获取更改的文件。

【讨论】:

    【解决方案2】:

    这完全取决于文件的使用情况以及文件是否已打开以及是否打开了文件会在某个时候重新读取它们。

    在某些系统上,您可以就地更新文件,但在重新启动应用程序和/或服务之前,它们会被忽略。

    在其他系统上,更改会立即生效。

    在其他系统上,文件是打开的,您无法覆盖它们。

    简而言之,这与 git 关系不大,而与文件的使用有很大关系。

    此外,您需要了解版本之间会发生什么。如果字段在版本之间发生变化,您需要确保可以处理获取表单帖子的页面将收到与预期不同的数据的情况。

    git 是否通过锁定每个更新文件以类似事务的方式更新文件

    AFAIK,git 是在逐个文件的基础上工作的,如果某个文件或另一个文件失败,则不会回滚。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 2020-11-28
      • 2016-04-23
      • 1970-01-01
      • 2010-09-30
      • 2020-09-10
      • 2012-08-03
      相关资源
      最近更新 更多