WordPress 3.0后的快速手动升级方法

新版本WordPress 3.0的功能是强大,可是同时也带来了升级问题。因为新版本运行需要的服务器内存比以前大了,而很多主机空间,特别是免费主机空间分配的内存却没有那么高,于是以前能够在控制面板自动升级WordPress主程序的现在却不一定能够自动升级了。

如果你尝试自动升级遇到内存不足的错误(看起来有类似这样的php错误提示:Allowed memory size exhausted),可以有2个选择:

  1. 到“插件”页面将所有插件禁用,然后再尝试自动升级。因为安装的插件是需要消耗运行内存的,特别是在执行自动升级的时候表现更加突出。
  2. 如果禁用了插件还是内存不足,那就只好执行手动升级了。本文要介绍的就是不得不进行手动升级时,一个不会影响网站访问又能加快升级速度的方法。

这是我采取的升级方案。之所以叫它方案,是因为除了统筹处理手法上有些优化之外,根官网codex上介绍的方法没什么根本区别。

提示:如果你在自动升级的时候遇到的内存不足的问题,而是无法定位根目录,或者不知道HOSTNAME 等等的问题,请参考“自动升级WordPress的问题及解决”,该文已经详细说明了这些问题的解决方法。如果你遇到了其它问题,欢迎留言指出。

WordPress 3.0 RC1出来之前我就已经将网站的WordPress升级到了3.0 Beta版本,紧接着又启用了多站点(MultiSite)模式,就是大家现在看到的样子了。以后在执行自动升级的时候就发现,总是出现类似下面的错误提示:

Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 2964967 bytes) in /home/vol2/xxx.com/xxx/htdocs/wp-includes/class-http.php  on line 1408

首先请参阅WordPress官网的手动升级方法,比如备份数据库禁用插件等等。本文介绍的方法与之略有差异。当然这略有差异的地方才是我要介绍的关键地方。下面将本升级方法中不同的地方与官网的升级方法做比较并进行解释:

第一步:准备替换WordPress文件

  1. 获取最新版本的WordPress(这是官网Nighty版本的链接)。将其下载到本地机器并解压。
  2. 删除旧的wp-includes文件夹和wp-admin文件夹不要删除,不然网站就短时间无法访问了!
  3. 如果你曾经修改过别的源文件,请修改后再执行下面的操作。比如我们可以将解压的文件夹中wp-content文件夹里的 theme 文件夹里的各个主题文件夹剪切(注意不是复制)出来,因为很多人一般不会去修改WordPress主程序,但是却很多都会修改主题文件。剪切出来就不会让它将曾经修改过的东西给覆盖掉了。(2010.07.30新增)为了保证WordPress的安全,还应该将 wp-admin/install.php 文件删除。
  4. 上传源文件。下面两种方法任选其一:
    1. 方法一,通过 ftp 上传源文件:
      1. 将解压的新 WordPress 源文件夹中的 wp-admin 和 wp-includes 文件夹重命名为 wp-admin2 和 wp-includes2,上传到服务器上的 WordPress 安装文件夹。(可以用诸如 FileZilla 的 ftp 软件客户端,我平常就用这个备份服务器上的文件到本地。)
      2. 上一步完成后再将新 WordPress 源文件夹中除 wp-admin、wp-content 和 wp-includes 文件夹之外的大约 17 个文件上传到服务器上的 WordPress 安装文件夹。
      3. 通过 ftp 客户端将服务器上的 wp-admin 和 wp-includes 按顺序分别重命名,然后将上传的新的 wp-includes2 和 wp-admin2 按顺序分别重命名为 wp-includes 和 wp-admin,至此,升级基本完成。
      4. 检查新版源文件中 wp-content 文件夹中是否有需要更新到服务器的文件,分别通过 ftp 上传即可。
      5. 登录到 WordPress 管理后台看看吧,应该已经升级了,可能会提示升级数据库,也可能不会。
    2. 方法二,通过 ftp 上传源文件的压缩包然后在服务器端解压缩:
      1. 然后将解压后 WordPress文件夹里的所有文件选中,并压缩为 .zip 文件。这样的话,我们将该文件夹上传到服务器并解压的时候就会分散开来替换掉原来的文件,而不会是解压到一个单独的文件夹里。
      2. 将该压缩文件通过cpanel的文件管理器(online file manager)的上传功能上传到服务器(以压缩文件上传的话,它会自动解压到目标文件夹并覆盖原来存在的对应文件,没有对应文件的不会受到影响)。
      3. 如果你的主机空间用的不是cpanel控制面板,请参照这个思路自己捉摸着操作。总之,我们要将压缩文件上传以提高效率,然后解压缩覆盖服务器上的旧文件。这个过程很快,所以几乎不会影响网站的正常运行。或者线上传上去,再在服务器端执行解压缩。
      4. 将新的WordPress文件复制到服务器上,覆盖根目录下的原有文件,除了wp-content文件 (参见”注意”)。你可以使用FTP或shell命令来覆盖源文件。注意这里指的是替换所有WordPress文件, 包括根目录下的文件。如果使用Default主题或Classic主题并做了修改,可以不替换该主题的文件

注意:wp-content文件夹、plugins文 件夹以及themes文件夹应进行特别处理。应复制这些文件的内容,而非整个文件夹。有时复制整个文件夹会覆盖之前所有自定义内容。

还要注意保留根目录下wp-config.php文件的内容。该文件中包含现有WordPress安装的各项设置,如数据库登录信息等。有时WordPress新版本也会在该文件中添加语句。(如WP 2.5添加了SECRET_KEY变量,参见详细升级说明)。将原有的wp-config.php文件和新WordPress安装程序中的wp-config-sample.php文件进行对比。将原有设置转移到sample文件并重命名为wp-config.php文件,或直接将sample文件中的新语句复制到原wp-config.php文件。(当然是后一种方法更好、更方便。

第二步:升级WordPress

这一步主要是升级WP的数据库结构,控制面板中提供了自动执行按钮。

登录你的WordPress网站后台(/wp-admin)。如果这时需要升级数据库,WordPress会检测数据库信息并给出一个http://example.com/wordpress/wp-admin/upgrade.php这样的链接,让你升级。点击该链接,根据上面的说明按照其提示进行操作。操作完毕后,升级后数据库就可以兼容于最新代码了。如果升级失败,你的网站看起来就可能很怪异。(不用太担心,一般不会出问题。如果你实在不放心,可以在服务器上另建一个文件夹,将原来WordPress的所有文件都复制进去作为备份即可。请参考主机空间文件管理器的使用方法进行。)

好,剩下的就简单了。如果你禁用了插件,重新启用即可。可以参照官网的升级方法的后续步骤进行。

可以看出来,我这里强调的是用上传压缩包的方法上传并覆盖原来的文件。这个比用ftp程序或者Dreamweaver之类的软件要快得多。善用在线文件管理器啊!©

本文发表于水景一页。永久链接:<https://cnzhx.net/blog/wordpress-3-0-manually-upgrade-fast/>。转载请保留此信息及相应链接。

16 条关于 “WordPress 3.0后的快速手动升级方法” 的评论

  1. 方法不错,新建空文件夹复制的方法我也常用。

    • 麻烦是麻烦了点儿,可是对于服务器的限制无能为力的话就只好这样了。这个还是比一般的ftp上传方式要快的多,而且不影响网站的正常使用。

    • 看来我写的不好啊……不知道哪里比较让人迷惑,可以说出来我给改改。

  2. 引用通告: WordPress 3.0.2 « 水景一页

  3. 引用通告: WordPress 3.0.3 « 水景一页

  4. 引用通告: WordPress 3.1 发布 « 水景一页

  5. 引用通告: WordPress 3.4 "Green" 发布 | 水景一页

  6. 引用通告: WordPress 3.4.2 发布,偶然发现很多旧文件都不需要了 | 水景一页

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)