怎样升级更新开源网上商城 Zen-Cart 到 1.3.8a

在我安装 zen-cart 开源网上商城 1.3.7.1 的时候,我是进行 fresh installation 的,也就是第一次安装,所以那时根本不需要考虑升级问题。今天看到了该开源软件的最新版本 1.3.8.1a,决定将原安装的商城进行升级更新。

升级前,当然建议大家先查看一下官方网站的升级文档,更简单的当然就是直接打开下载软件包里 /docs 的 Readme 网页文档了。象所有其他优秀的 PHP 开源软件一样 (比方说我的最爱 WordPress 博客软件),Zen-Cart 升级需要的就是上传更新好的PHP源码文件后,运行 upgrade php 文件来进行数据库升级就可以了。不过,修改后的zen-cart 升起级来要比 WordPress 稍为复杂一点,因为它的模板、语言等的改动要涉及好几个不同的子目录,所以在升级中不想让原来做的改动被覆盖就需要进行一定的文本代码整合了。当然,只要你熟悉自己原来做的改动的文件在哪个位置,也就没有Zen-Cart 官方文档说的三步升级那么麻烦了。


下面就是自己今天升级 Zen-Cart 的一些体会吧。

第一、所需要工具的准备。如同安装新的 Zen-Cart 一样,你还是需要下面这些基本工具,一个好一点的 FTP 客户端软件、一个好用的 HTML/PHP 代码文本编辑器、phpMyAdmin 或相似的 MySQL 数据库管理界面(这个一般都包括在你有权限登录的虚拟主机管理后台里)。最后,就是你能够有一个能比较文本文件区别的软件,象WinMerge, Beyond Compare or ExamDiff (Linux) 、( BBedit for the Mac.) 等。当然,如果你有 Adobe 的 DreamWeaver 就更好了。另外,嫌多个文件下载的耗时太长的人,可以准备个 SSH 工具来登录自己的服务器做一些 zip 文件解、压缩的功能。

第二、做好备份。这包括原来的 PHP 代码的备份,也包括 MySQL 数据的备份。一句话,有“备”无患吗。PHP 代码的备份就可以通过将服务器上的文件全部下载下来,一则用作备份,二来也可以让自己了解上次的安装调试改动了哪些文件。MySQL 的备份主要通过 phpMyAdmin 去导出数据库的数据到一些 sql 文件里。下载的过程吗,当然可以用 FTP 直接,要省时的话,1)可以先 SSH 登陆到服务器用 tar 命令将整个商城的文件夹压缩成一个文件,然后再下载到本地。2)或者在有 DreamWeaver 及有本地拷贝文件的基础上用“同步”的方式只下载那些在服务器上已改过的文件。

第三、了解现行版本的信息和记录已修改过的文件、代码清单。首先,登陆到现行的商城后台,然后到 Tools工具 –》Server/Version Info 服务器/版本信息 查看现在软件的信息。主要要记录下SQL Server Patch 数据库补丁的版本号以供后面升级数据库用。现在,可以运用 WinMerge 等工具来对照安装后的现行版本和安装前的源码文件有哪些更改。一般来说,会是语言上的更改,和界面主题的改动;当然,如果你在商城软件里用过其他人开发的Module的话,那改动的就多了。这时,不要嫌麻烦,一个一个的将改动的文件写下来,以便升级后能继续保持这些更改。按照我自己的经验,一般的改动部分会出现在以下目录:

管理后台方面

\admin\includes\languages\schinese (安装的中文语言包)

\admin\includes\languages\english.php

\admin\includes\languages\schinese.php (若你安装了中文语言包的话)

\admin\includes\languages\configure.php

其他修改的管理后台文件:见http://lichao.net/weblog/internet/ebiz/28.html

商城前台方面
\images (已上传的商品图片)

\includes\languages\english\classic\header.php

\includes\languages\english\header.php

\includes\languages\english\index.php

\includes\languages\schinese

\includes\languages\english.php

\includes\languages\schinese.php

\includes\templates\YOUR TEMPLATE 所有文件

\includes\templates\template_default\button\schinese (中文的图标,其实这些都可以放到选用模板目录以便集中升级管理)

\includes\configure.php

第四、下载最新版本并进行一定的修改。好了,现在可以从 Zen-Cart 网站下载他们的最新版本(现在是 1.3.8a)。下载完后,解压到你的本地机上,可以放在另一个单独的子目录里,与上述说的那两个子目录分开。

运用上面我们得到的那些修改了的文件清单,一个一个的检查。如果仅仅是语言字符上的修改,我就简单地拷贝加粘贴将更新就是了;如果是程序代码上的修改,就要稍微注意一下决定怎么更新文件。这时,WinMerge 这样的工具就很有用处了,因为它不但能够指出两个文件的不同在哪,而且还可以在比较的同时提供左右复制的功能。

另外,因为 Zen-Cart 有个 Override 的功能(即你自己的模板文件可以优先代替源码里同文件名的代码),这时你在更新模板有关的文件时,你比较就应该将最新版本的文件与你自己模板的文件(/includes/templates/MYTEMPLATE/* ),而不是默认模板里的文件( /includes/template/template_default/* )。如果你安装了语言包文件,对于 language 的目录是同样的道理。

第五、上传修改后的新版本文件,并运行升级代码。确认所有该修改的文件完毕后,在本地机将这整个文件夹压缩成一个zip文件,在FTP到你的服务器上。在服务器可以通过SSH运行unzip来解压整个新传的文件夹。为了保险起见,我们一般是解压成到另一个新的子目录,而不是简单地覆盖原版本子目录。当然,这样你需要到你的域名管理后台将你的域名指向新的文件夹。

上传完毕后,开始运行安装文件 http://YOURDOMAIN.NAME/zen-cart/zc_install/。安装界面出现时,要选择 Database Upgrade 数据库升级 而不是 Install 安装。因为后者会更新生成新的数据库而将你原来的所有数据给覆盖了。

一切顺利后,再测试你的升级版本,确保一切都是你意料的结果,若不是可以再进行一定的微调。

最后,祝你的商城 zen-cart 开软升级一切好运!

Leave a Reply

Your email address will not be published. Required fields are marked *