V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
liujiantao
V2EX  ›  问与答

想做个 PHP 的在线升级系统,类似 disucz 升级那样

  •  
  •   liujiantao · 2015-01-02 20:25:36 +08:00 · 7753 次点击
    这是一个创建于 3604 天前的主题,其中的信息可能已经有所发展或是发生改变。

    可具体如何实现啊

    就是差量更新系统,检测服务器端和本地的文件差异,然后更新系统,怎么做?

    16 条回复    2015-01-03 18:56:09 +08:00
    zts1993
        1
    zts1993  
       2015-01-02 20:32:48 +08:00
    更新包是做好的吧,版本和版本之间的差距。

    如果你用git做版本控制,可以用git patch导出文件差异,patch文件里面会记录更新的文件,你只要把新文件复制出来就是需要更新的文件了
    liujiantao
        2
    liujiantao  
    OP
       2015-01-02 20:38:28 +08:00
    @zts1993 有没有类似实例呢?这样看我好像越来越晕了
    zts1993
        3
    zts1993  
       2015-01-02 20:40:34 +08:00 via Android
    @liujiantao 我做过,但是不一定适合你,代码你就随便看看吧,,很烂,https://github.com/zts1993/git-diff-tools
    qiuai
        4
    qiuai  
       2015-01-02 20:41:09 +08:00
    检查version.txt....最简单的
    liujiantao
        5
    liujiantao  
    OP
       2015-01-02 20:47:45 +08:00
    @qiuai 简单虽简单,但更新的时候有些文件不需要更新,直接检测txt然后下载下来,重新配置不就相当于再重新安装一次?这样会增加麻烦,也有风险的
    herozzm
        7
    herozzm  
       2015-01-02 21:21:21 +08:00
    我也希望能有实际操作经验的回答该问题,马上就要付诸现实额
    qiuai
        8
    qiuai  
       2015-01-02 21:26:13 +08:00
    @liujiantao DZ下载的也不是完整安装包.肯定是单独制作的升级包.

    再不行就跟DZ一样,用外部文件来执行升级,这样该不覆盖的检测一下标签是否能覆盖就是了.
    l12ab
        9
    l12ab  
       2015-01-02 21:57:43 +08:00
    我目前自己实现的是,访问version.txt 判断版本,然后下载一个 增量.zip, 再解压覆盖。
    yefengs
        10
    yefengs  
       2015-01-03 00:02:19 +08:00
    可以研究下Wordpress的更新机制,貌似很强悍的....
    kookxiang
        11
    kookxiang  
       2015-01-03 03:14:27 +08:00 via Android
    Discuz内部有svn,所谓增量包也是人家提前打包好放服务器的
    yellowV2ex
        12
    yellowV2ex  
       2015-01-03 09:10:45 +08:00
    把用户配置,修改,储存,数据库的东西另外放,然后一个单独的文件夹只放你的程序,更新的时候,整个程序文件夹换掉。这种最简单了,不用每个版本都做个增量
    liujiantao
        13
    liujiantao  
    OP
       2015-01-03 18:54:11 +08:00 via Android
    @qiuai 噢噢,明白了
    liujiantao
        14
    liujiantao  
    OP
       2015-01-03 18:54:39 +08:00 via Android
    @yefengs 可是服务器上的配置我们也不知道啊
    liujiantao
        15
    liujiantao  
    OP
       2015-01-03 18:55:56 +08:00 via Android
    @kookxiang 谢谢了,意思就是本地检测更新,然后根据版本号从服务器上下载对应的升级包?
    liujiantao
        16
    liujiantao  
    OP
       2015-01-03 18:56:09 +08:00 via Android
    @yellowV2ex 了解了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1596 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:07 · PVG 01:07 · LAX 09:07 · JFK 12:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.