用Subversion安装/升级WordPress

0条评论

如果进入web服务器时需要输入命令行,或者服务器中安装了客户端版本管理系统(Subversion),我们就可以利用Subversion来安装与更新WordPress的版本。软件开发人员使用Subversion的机会较多,但普通用户也可以用它来安装升级WordPress。相对于WordPress标准安装/升级程序(下载并解压压缩文件,然后用FTP将解压文件发送到虚拟主机上)而言,很多用户认为用Subversion安装WordPress更加方便。

背景介绍

下面首先介绍一些背景知识。市面上有很多源代码版本控制系统,Subversion正是其中之一;Subversion的与众不同之处在于,它是WordPress专属的版本管理器。软件开发人员用版本控制系统来追踪软件源代码以及软件的后台修改信息,之后开发人员以此定期公开发布软件的新版本。使用Subversion中有对Subversion、Subversion命令以及Subversion用法的介绍。

我们在使用Subversion中说到,WordPress Subversion库分为不同分支或版块。当用户安装或升级WordPress时,首先要选择所使用的分支:

  • trunk:Trunk表示WordPress最新已开发版本。由于是新产品,trunk可能有很多漏洞,但我们可以用它来测试插件和主题与WordPress新版本的兼容性。使用truck前请先阅读下文中“用Subversion安装WordPress Trunk版”。
  • WordPress特别发布版:这是相对稳定的WordPress正式版,可用于正常工作。使用前请先阅读下文中“用Subversion安装WordPress正式版”。

使用Subversion升级WordPress前还需要决定博客/网站的安装位置。以下所有示例都假设将博客安装在“blog”目录下。如果博客在其它目录下,要将命令中的“blog”目录改为相应的博客所在目录。

警告:本文中的操作说明与WordPress官方升级说明略有差异,文章中不会要求用户升级前禁用插件或是备份数据库,用户应主动备份或禁用插件。切记!

用Subversion安装WordPress Trunk版

本部分内容假设目前有一个博客,该博客运行了最新的WordPress版本,并且博客主人可以接受博客中出现BUG。希望使用WordPress已发布的正式版本的用户可以跳过本段内容进入“用Subversion安装WordPress正式版”。而如果用户已经按照WordPress标准安装方法安装了WordPress博客,请进入文章的“为传统WordPress博客安装Subversion”部分。

安装

安装WordPress新版本前,请在WordPress安装文件夹的上级目录中输入以下几行命令提示符:

$ mkdir blog
$ cd blog
$ svn co http://core.svn.wordpress.org/trunk/ .

这些命令为博客生成一个名为“blog”的文件夹,之后从版本库中查找(Subversion命令“co”)或引用(Subversion命令“export”)WordPress的“trunk”版。字符“$”无需输入——$是命令提示符标记。

URL中的结尾斜线和URL后的句号都非常重要——它们确保从版本库中下载的文件最终被存入当前文件夹;如果省略URL结尾部分的句号,命令行会为博客生成一个新的安装文件夹(文件夹名为“trunk”)。这会为希望使用预定安装文件夹的用户带来不必要的麻烦。

文件下载完毕后,将wp-config-sample.php文件中的内容复制到wp-config.php 和edit wp-config.php文件中,然后进入博客URL完成安装,这与WordPress标准安装过程一致。

升级

WordPress发布新版本时,我们需要将原有安装版本升级为最新版本。这时首先要登录WordPress博客然后利用Subversion的“update”(up)命令:

$ cd blog
$ svn up

这样会改写所有被改动过的WordPress自带文件,而保留所有用户自定义的文件以及用户自有文件、插件与主题。换言之,这是一种安全防护措施(为避免出现意外情况,我们仍然推荐用户事先备份)。

接着运行wp-admin/upgrade.php文件,完毕。

用Subversion安装WordPress正式版

本部分内容假设目前有一个博客,该博客运行的是一个稳定的WordPress正式版本。希望使用WordPress最新版本(不稳定)的用户可以回到“用Subversion安装WordPress trunk版”。而如果用户已经按照标准安装方法安装了WordPress博客,请进入文章的“为传统WordPress博客安装Subversion”部分。

接下来要决定所安装的WordPress版本。本部分的示例中假设所安装的是特别发布版;希望安装其它版本的用户请将文中出现的特别发布版的版本号改为自己所需要的版本号。

安装

安装WordPress前,请在WordPress安装文件夹的上级目录中输入以下几行命令提示符(假设当前所需WordPress版本为2.8.3):

$ mkdir blog
$ cd blog
$ svn co http://core.svn.wordpress.org/tags/2.8.3 .

这些命令为博客生成一个名为“blog”的文件夹,之后从版本库中查找(Subversion命令“co”)或引用(Subversion命令“export”)所需WordPress版本。字符“$”无需输入——$是命令提示符标记。

URL中的结尾斜线和URL后的句号都非常重要——它们确保从版本库中下载的文件最终被存入当前文件夹;如果省略URL结尾部分的句号,命令行会为博客生成一个新的安装文件夹(文件夹的文件名为“tags/2.8.3”)。这会为希望使用预定安装文件夹的用户带来不必要的麻烦。

文件下载完毕后,编辑wp-config.php文件,然后进入博客URL完成安装,这与WordPress标准安装过程一致。

升级

WordPress发布新版本时,我们需要将原有安装版本升级为最新版本。这时首先要登录WordPress博客,然后利用Subversion的“switch”命令(sw)转换到最新发布的版本(假设最新发布版号为WordPress 2.8.3):

$ cd blog
$ svn sw http://core.svn.wordpress.org/tags/2.8.3/ .

这样会改写所有被改动过的WordPress自带文件,而保留所有用户自定义的文件以及用户自有文件、插件与主题。换言之,这是一种安全防护措施(为避免出现意外情况,我们仍然推荐用户事先备份)。

接着运行wp-admin/upgrade.php文件,完毕。

查找已发布版本

用户可以访问Subversion库的“tags”版块http://core.svn.wordpress.org/tags/,从中查找WordPress的所有已发布版本。

从svn.automattic.com库迁移到core.svn.wordpress.org库

从旧版本库svn.automattic.com中退出,希望转换到新版本库core.svn.wordpress.org的分支中时,可能会遇到以下错误:

svn: 'http://svn.automattic.com/wordpress/tags/2.7.1'
is not the same repository as
'http://core.svn.wordpress.org'

用relocate命令告诉Subversion在新位置上使用相同分支:

$ svn switch --relocate fromURL toURL [path], e.g.

$ svn switch --relocate http://svn.automattic.com/wordpress/tags/2.7.1http://core.svn.wordpress.org/tags/2.7.1/

然后根据上文中的描述更新WordPress版本。

为“传统”WordPress博客安装Subversion

为没有安装Subversion的WordPress博客安装Subversion时,请遵循以下操作步骤:

1. 新建一个临时博客文件夹

2. 用上文中提到的Subversion命令查找WordPress版本(trunk版或是稳定版)

3. 将原博客文件夹中所有自定义文件转移到临时文件夹中

4. 以原博客文件夹的名称重命名临时文件夹

5. (在管理界面或 - /wp-admin/中)运行WordPress更新脚本,测试博客

当然,建议操作前备份原有文件夹、数据库,禁用所有插件。

假设原博客文件夹的文件名为“blog”,临时文件夹的文件名为“blog-new”,所需WordPress版本为2.8.3正式版,下面分别介绍不同步骤应使用的命令行。再次注意:字符“$”无需输入——$是命令提示符标记。

首先查看当前使用的WordPress版本(在管理界面的控制板中可以找到WordPress版本信息)。在下面的例子中,我们假设当前使用的是WordPress 2.7.1。

然后将WordPress 2.7.1转入新文件夹(本例中为blog-new):

$ svn co http://core.svn.wordpress.org/tags/2.7.1 blog-new  

将原有wp-config以及.htaccess文件复制到新网站中:

$ cd ../blog  
$ cp -p wp-config.php .htaccess ../blog-new  

将原博客中的插件、主题以及上传的图片/视频复制到新博客中(插件、主题、图片/视频都存储在wp-content目录下):

$ cp -rpfu wp-content/* ../blog-new/wp-content  

这不会影响wp-content中的WordPress自带插件,但最好用Subversion进行确认:

$ svn status ../blog-new/wp-content  

结果的代码行只可能以“?”开头(针对用户自有文件,非WordPress Subversion库中的文件)或是以“X”开头(针对具有自己的Subversion库的插件,如Akismet)。以“M”开头的文件会被本地修改,之后用户需要逐个修复这些文件:

$ svn revert ../blog-new/wp-content/some/file  

接下来将原有文件夹中的所有自定义文件和文件夹复制到新博客文件夹中(适用于部分用户)。例如,如果原有文件夹中有一个images子文件夹和一个wp-digest文件:

$ cp -rp images wp-digest ../blog-new  

这时可以检查是否一切准备就绪:

$ diff -rq blog/ blog-new/ | grep -v svn  

利用上述代码中的“cp -rp”命令,所有列在“Only in.”中的文件都会被复制到Subversion系统中。

接着重命名新博客文件夹中的文件夹,使新博客文件夹能够整合到博客中。为避免麻烦,可以用一行命令行来完成以上动作:

$ cd ..  
$ mv blog blog-old; mv blog-new blog  

回到博客中,检查是否一切正常。如果某部分不能正常运行,用户需要检查是否已经复制了原有博客文件夹中的所有自定义文件(再次执行diff命令)。如果仍然有问题出现,还原原有博客文件夹,必要时可以从备份文件中还原数据库。

到现在为止,安装了Subversion的博客已经能在原有WordPress版本上正常运行了。接下来只需要将WordPress升级到最新版本。

新版本的发布总是不可避免的:

$ svn sw http://core.svn.wordpress.org/tags/2.8.3 blog  

此时,所有文件都已经更新完毕,最后只需要访问wp-admin/upgrade.php链接,让WordPress进行必要的数据库升级。然后就可以测试博客中的链接和各种功能了。