使用SVN升级WordPress
 

2009-07-17作者:SilverFox 来源:silverfox.name

 

SVN,全称Subversion,是一款版本控制工具,常用于多人协作项目开发中,其主页在http://subversion.tigris.org/ ,同类型的工具还有CVS

以下将介绍如何使用SVN升级您的虚拟主机中的WordPress至最新版(注:以下内容仅针对虚拟主机使用的是Linux操作系统,至于Win型主机请自行Google。)

必要条件

  • 虚拟主机支持SSH登录。

    此项一般在您购买虚拟主机时会在功能介绍中提及,国外的虚拟主机商如DreamHost、BlueHost、HostMonster等都提供了此项服务,只是一部分主机需传真身份证明才可正式开通。遗憾的是国内的大部分虚拟主机都未提供SSH,就我现在所知,似乎仅盘古的合租服务器支持SSH登录。如您知道类似的空间商,望告知。

  • SSH客户端。

    Linux和MAC操作系统中已自带有SSH客户端程序,Linux的SSH相关资料,MAC的SSH相关资料,Windows可以使用PuTTY,这款非常好用的SSH客户端。

  • 虚拟主机安装有SVN程序。

    国外的大部分虚拟主机都已安装,若没有您可使用Support Tickets或Email向主机商要求安装SVN,他们一般都会乐意安装。国内的,呃,沟通很重要。检测您的虚拟主机是否已安装SVN,可以通过SSH登录,使用命令# whereis svn查看运行结果,若已安装则会显示安装路径。(#是Linux命令提示符,不必输入。)

  • 独立性良好的WordPress。

    这里的独立性是指未对WordPress的核心文件进行修改。意思就是说您所有针对WordPress的操作应该集中在wp-config.php和wp-content/目录下(包括插件和主题),而没有修改WordPress自身的文件来实现功能。
    例,如果我修改了WordPress自带的Default主题,那么在升级前最好将其修改为其他名称,这样才不会被SVN覆盖。您可以通过插件(一般是添加filter)实现修改WordPress显示效果,具体操作可以参看WordPress的官方API,示例可以参照Yskin的一部分插件。

  • 最少45分钟或1小时。

    升级过程可能会遇到各种稀奇古怪的错误,请耐心地Google并解决之。第一次升级比较慢,因为要建立SVN Repository(呃,TortoiseSVN里是怎么翻译这个词的?),以后的升级就相对简单了。

第一次升级

在升级之前,您可以使用.htaccess文件来重定向您的blog到一个静态页面,具体内容可参看此处。当然,像我们这种小blog就没必要了。

  1. 使用SSH登录到您的虚拟主机的根目录下,一般名为public_html/或者www/,如果不是,请使用cd命令切换。
  2. 进入您blog目录的上级目录,也就是说使用ls命令可以找到您的blog目录(此例中假设blog目录的名字为wordpress)。

    如此图,该图仅演示,请参照个人设置修改。

    wordpress_dir.png

  3. 使用命令# mv wordpress/ wordpress.bak/将您的旧blog目录重命名为wordpress.bak,若升级失败,则可直接进行恢复。
  4. 使用命令# mkdir wordpress && cd wordpress新建wordpress目录并进入此目录。
  5. 使用命令# svn co http://svn.automattic.com/wordpress/trunk/ ./从WordPress的SVN中检出最新版到当前目录下。WordPress的官方SVN页面参看http://wordpress.org/download/svn/
  6. 将您旧版blog里的wp-config.php及插件和主题复制到新版中来。
    • 使用命令# cp ../wordpress.bak/wp-config.php ./拷贝wp-config.php。
    • 使用命令# cp -R ../wordpress.bak/wp-content/themes/yourthemes ./wp-content/themes/拷贝您的主题yourthemes到新版中,参数-R表示复制整个目录及子目录。
    • 使用命令# cp ../wordpress.bak/wp-content/plugins/yourplugin.php ./wp-content/plugins/拷贝您的插件yourplugin.php到新版中。
    • 使用命令# cp ../wordpress.bak/.htaccess ./拷贝.htaccess到新版中(如果您修改了.htaccess的话)。
  7. OVER!

将来的升级

以后的升级过程就比较简单了,进入wordpress目录,执行命令# svn update,完成升级。

补充说明

  • .svn的保护措施

    在完成SVN Repository的建立后,该目录下每个目录中都会有隐藏目录.svn,这是存储svn控制文件信息的地方。为了blog的安全性,应禁止他人从浏览器中访问到此目录,可在.htaccess中如下设置:

    <directory ~ “\.svn”>
    Order Allow,Deny
    Deny from all
    </directory>
  • 版本的回溯

    如果我升级到最新版感觉不好用,又想退回旧版如何操作呢?

    简单,找到旧版对应的Reversion(SVN版本号),在升级之前使用命令# svn info即可。

    svninfo.png

    然后在想回溯时,使用命令# svn update -r5583即可回溯到升级前的版本。

    呃,升级前忘了查看版本号怎么办,没关系,去http://trac.wordpress.org/log/找,从上面搜索“Getz”,我们就找到了WordPress 2.2版本号应为5480。

关于SVN的详细信息,可以下载《使用Subversion进行版本控制》一书来仔细学习,强烈建议。

另一种方式下载WordPress

一般情况下,我们是先将wordpress最新版下载到本地,再上传到服务器。

如果您的虚拟主机支持SSH(Shell)登录的话,您可以在对应目录中使用命令# wget http://wordpress.org/latest.tar.gz来下载最新版。

接着命令# tar zxvf latest.tar.gz来解压它,再覆盖旧版,删除新版已不需要的文件,升级数据库,完成。

参考文件


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织