Php 将代码更新应用于正在运行的网站的最佳方法?

Php 将代码更新应用于正在运行的网站的最佳方法?,php,Php,如果我有错误修复或更新,如何将代码更改应用到我正在运行的网站? 我能想到的最简单的方法是在不同的目录中设置相同的站点以测试更改,然后将我的网站脱机一段时间以更新文件 有更好的方法吗?您可以在不同的子域(或子文件夹)上运行新版本,并在测试后简单地更改域处理。没有,没有更好的方法(duh!) 好吧,也许有一些更好的实践,比如你应该有一个单独的机器用于测试目的。但除此之外,不要期待启示。您只需在负载较低时(即夜间)将站点脱机,然后更改/替换内容。创建活动站点的副本当然是一个很好的步骤,在将更改应用于活

如果我有错误修复或更新,如何将代码更改应用到我正在运行的网站? 我能想到的最简单的方法是在不同的目录中设置相同的站点以测试更改,然后将我的网站脱机一段时间以更新文件


有更好的方法吗?

您可以在不同的子域(或子文件夹)上运行新版本,并在测试后简单地更改域处理。

没有,没有更好的方法(duh!)


好吧,也许有一些更好的实践,比如你应该有一个单独的机器用于测试目的。但除此之外,不要期待启示。您只需在负载较低时(即夜间)将站点脱机,然后更改/替换内容。

创建活动站点的副本当然是一个很好的步骤,在将更改应用于活动站点之前,先将更改应用于副本

一个通用的生产环境将包括一组进一步的步骤

  • 运行本地开发副本
    在开发机器上运行网站的副本。这要求您的开发机器运行web服务器、数据库服务器,必要时还运行邮件服务器。

    对于PHP/Apache/MySQL环境,请查看。

    您可以在本地开发环境中安全地开发、中断、测试和更改应用程序
  • 源代码管理
    使用Subversion、Mercurial或Git将代码置于源代码控制之下。确保本地开发环境处于源代码控制之下。确保您的实时环境受源代码管理。本地开发、测试更改并提交更改。

  • 舞台和现场环境
    维护多个“实时”拷贝—实际的实时公共站点,并尽可能接近一个副本。确保两者都处于版本控制之下。

    一旦测试了本地测试的更改,请更新您的登台环境(使用您的源代码管理系统)并再次测试。登台站点稳定后,您可以使用源代码管理系统更新实时站点。

    通常不需要将真实的实时站点脱机以应用更新,但请确保在需要时可以安全地执行此操作

  • Jon Cram对此的回答非常好,但我认为在维护开发环境时,还有一些事情非常重要:

    • Evnironments:确保您拥有的两个环境彼此尽可能接近。如果您在生产环境中运行PHP5.1、MySQL 5.0、Apache2.2和RHEL,请确保您使用的沙箱中所有内容的版本都完全相同
    • 数据:复制数据库并使用它。不要针对生产中的数据评估或测试代码。一个
      删除
      而没有
      的地方
      你就有麻烦了。(你有后备人员,对吗?)
    • 配置:将用于连接数据库的所有变量、用于支持的电子邮件地址等保存在自己的文件中。这样,您就可以在不同的环境中交换连接参数,而无需实际更改代码。另外,我发现将其与代码分开提交是很有帮助的
    • 构建脚本:有一个命令行脚本来处理将所有更改应用到站点是很有帮助的。它可以简单到
      svn update
      ,也可以复杂到需要自己的应用程序和库。请参阅以获取一个好的示例

    还有(无耻的插件),这是我不久前写的一篇关于沙盒重要性的帖子:

    你应该在你的计算机上使用你的站点副本。然后在进行更新/代码更改等之后,使用更新更新网站。 Filezilla将只替换您已更新的文件,在此过程中,您的站点将处于联机状态。

    Method 1 在用于开发WebTie的计算机上创建实时站点的副本。遵循以下步骤: 设置本地测试服务器
    使用或可以在开发计算机上轻松设置本地服务器。只需在一个服务器包中安装所有内容,并将您的网站文件复制到htdocs文件夹中。然后,您只需在浏览器中访问即可打开您的网站。我个人建议使用
    源代码管理
    使用Subversion、Mercurial或Git跟踪您对站点的更新。这些软件跟踪您对每个文件所做的更改。它们将使您能够撤销网站开发过程中可能出现的任何错误。
    保留站点的临时实时副本
    在服务器上的任何其他位置保留网站的临时实时副本,该副本与公开可用的实时网站完全相同。更新和测试站点的本地副本后。使用源代码管理软件更新临时现场站点。当暂存站点变得稳定和工作时。再次使用源代码管理软件更新公开的实时站点。这样,您的网站在更新时将始终保持在线

    方法2 这是一个相当昂贵的解决方案(我个人不推荐它,因为第一种方法也可以确保相同的结果)。如果没有可用的停机时间,请在其他辅助服务器上保留另一个站点副本,以便在更新主站点时将用户转移到该服务器。更新后,您可以将用户转移回实际站点。您还可以使用位于另一台服务器上的状态服务器来确保在用户从一个站点切换到另一个站点时记录和维护每个会话

    方法3(对于不了解上述两种方法的人来说,简易方法) 安装并将站点文件复制到xamp\htdocs文件夹。此复制的站点将是您的本地副本。通过在浏览器中键入和访问,更新网站并在本地检查。检查站点后。使用filezilla ftp客户端更新所有文件(在上载时选择更新新文件)。

     1. in the apache config file switch the document root from old to new
     2. check the config file (apachectl -S)
     3. graceful restart the apache (apachectl graceful)