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

2015-01-02 20:25:36 +08:00
 liujiantao

可具体如何实现啊

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

7595 次点击
所在节点    问与答
16 条回复
zts1993
2015-01-02 20:32:48 +08:00
更新包是做好的吧,版本和版本之间的差距。

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

再不行就跟DZ一样,用外部文件来执行升级,这样该不覆盖的检测一下标签是否能覆盖就是了.
l12ab
2015-01-02 21:57:43 +08:00
我目前自己实现的是,访问version.txt 判断版本,然后下载一个 增量.zip, 再解压覆盖。
yefengs
2015-01-03 00:02:19 +08:00
可以研究下Wordpress的更新机制,貌似很强悍的....
kookxiang
2015-01-03 03:14:27 +08:00
Discuz内部有svn,所谓增量包也是人家提前打包好放服务器的
yellowV2ex
2015-01-03 09:10:45 +08:00
把用户配置,修改,储存,数据库的东西另外放,然后一个单独的文件夹只放你的程序,更新的时候,整个程序文件夹换掉。这种最简单了,不用每个版本都做个增量
liujiantao
2015-01-03 18:54:11 +08:00
@qiuai 噢噢,明白了
liujiantao
2015-01-03 18:54:39 +08:00
@yefengs 可是服务器上的配置我们也不知道啊
liujiantao
2015-01-03 18:55:56 +08:00
@kookxiang 谢谢了,意思就是本地检测更新,然后根据版本号从服务器上下载对应的升级包?
liujiantao
2015-01-03 18:56:09 +08:00
@yellowV2ex 了解了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/158680

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX