PHP脚本“更新过程”管理教程

时间:2010-08-17 12:34:01

标签: php project-management automation upgrade

我们正在创建一个php脚本项目;我们将向客户销售。
客户可以在其Web服务器上托管脚本。

我们希望为此脚本开发更新或升级过程 意味着如果客户使用脚本的1.2版本并且我们已经发布了脚本的新版本1.3,则用户将能够在后端控制面板中看到“新版本可用”的文本。

用户可以去更新或升级页面并点击按钮自动更新脚本 我可以理解,这个过程将涉及以下事项: 1.检查我们主页网站上当前版本脚本的过程 2.文件更新过程:从客户端服务器上的服务器下载并更新所需文件 3.进行必要的数据库更改:从我的主服务器下载升级sql文件并对数据库运行它。

我尝试谷歌找一个好的启动教程给我一个启动并验证我是否遗漏了一些东西,但我找不到任何东西。
你能指点我一些关于开发或管理脚本更新过程的启动教程或指南吗? 我知道所有主要的开源脚本,如Wordpress,Joomla,osCommerce,Magento都有这个功能。因此,互联网上必须有可用的资源。

感谢您抽出时间..玩得开心! :)

2 个答案:

答案 0 :(得分:1)

要做到这一点,需要将自定义与核心代码完全分开。您可能希望确保用户有一组独立的页面可以挂钩您的代码。也许您应该在执行更新之前在页面上远程运行MD5检查。

最简单的解决方案是让您的脚本(在客户端)运行SOAp / REST命令,将其版本和序列发送到您的主服务器。反过来,您的服务器可以发回新版本的消息。

如果用户单击该链接,则客户端脚本需要发送另一个包含信息(例如FTP信息)的SOAP / REST命令,以允许您的服务器连接并覆盖核心文件。

请记住,这需要用户在文件上设置正确的chmod和chgrp / chown权限,以便您可以实际连接和覆盖文件。

许多脚本都具有此功能,但存在很大的安全风险。如果努力实现正确是值得的话,请认真思考......有时只需发送tar / zip就更容易了。

通过远程更新,您遇到了巨大的责任和安全问题......

答案 1 :(得分:1)

这真的需要教程吗?只需带上你的编辑器并开始编码,如果我是你,这就是我将要这样做的方式:

  • 为了操作它们,所有文件都需要进行密码777(如果是unix)。
  • 创建一个文件,比如updater.php
  • 该文件将连接到您的网站(例如通过curl)并检查更新是否可用。
  • 服务器端,考虑制作一个清单文件,其中包含要替换的文件的路径+带有数据库更改的SQL文件+替换文件并将所有内容打包到tar(或zip)中。
  • 让你的updater.php脚本下载该存档并将其存储在本地目录中,说'temp'。
  • updater.php必须解压缩(例如使用php的zip扩展名)到./temp/files
  • updater.php必须使用./temp/files/manifest才能查找和替换文件
  • 在替换之前执行一些文件完整性检查并确保文件未被更改(比较校验和)。
  • 在进行任何更改之前检查数据库。
  • 如果一切正常,则提交更改。
  • 删除临时数据。
  • 就是这样。

如果失败,您可以添加备份支持以恢复工作副本。