如何优化升级Web应用程序?

Dr.*_* No 5 php mysql upgrade

我保留了一个托管在Web服务器中的自定义PHP应用程序(为我构建).有时我会添加新功能或修复错误,在本地测试后我将更改上传到Web服务器.它不是一个关键的应用程序(是一个游戏),但大多数时候有一些人连接.

我为升级应用程序所做的步骤:

  1. 通过FTP访问(Filezilla)
  2. 上传.htaccess文件,将所有人(我的IP除外)重定向到mantain.html文件
  3. 检查除我的以外的其他IP访问是否被拒绝.
  4. 备份旧代码
  5. 上传新代码
  6. 去PhPMyAdmin
  7. 备份DB
  8. 执行DB的脚本
  9. 测试一切正常(如果没有 - >还原备份)
  10. 删除.htaccess文件

我通常花费30分钟来完成这些步骤,我想知道是否有任何方法可以优化,自动化或做一些事情来花更少的时间.此外,我知道如果我可以自动化某些步骤,则不太容易出错.

Fli*_*mzy 1

其他几个答案建议了特定于 PHP 的部署工具,但由于我对 PHP 不太熟悉,我将提供一些一般性提示。不过,这些建议对于已经建议的一些其他工具来说可能是多余的。

首先,不要每次都上传新的 .htaccess 文件 - 只需在您的服务器上放置两个即可。也许称它们为.htaccess-permanent.htaccess-maintenence。然后创建一个指向应该处于活动状态的符号链接。然后,一旦您测试过访问被正确拒绝一次,您就不必在每次升级时都执行此手动测试阶段。

我还会编写一个 shell 脚本来为我完成大部分工作。我的新工作流程将如下所示:

  1. 将新代码上传到服务器的new/目录中
  2. 通过shell登录服务器,执行升级脚本
  3. 测试新网站
  4. 运行升级完成

结束。

现在有趣的部分是,升级脚本将执行以下操作:

  1. 它将删除.htaccess符号链接,并重新创建它,指向.htaccess-maintenence
  2. 它将把current/中的当前代码复制到backup/
  3. 它将使用 PHPMyAdmin 使用的完全相同的命令来备份数据库
  4. 它将把new/(您刚刚上传的)的内容移动到current/
  5. 它将执行数据库的脚本

升级完成脚本将简单地:

  1. 删除.htaccess符号链接,然后重新创建它,再次指向.htaccess-permanent

这里唯一可能棘手的部分是获取 PHPMyAdmin 用于备份数据库的确切命令,但这可能是一个简单的 mysqldump 命令,您可能可以从 PHPMyAdmin 或一些日志等获取该信息。抱歉,我不知道更多有关 PHPMyAdmin 的信息,无法在该特定领域提供帮助。