You are here

使用SSH/Shell命令快速升级Drupal(1)

g089h515r806 的头像
Submitted by g089h515r806 on 星期日, 2008-09-07 12:54

升级你的站点

我们假定你没有修改Drupal的核心文件(如果你修改了任何一个Drupal核心文件的话,你的升级过程会变得麻烦起来或者甚至非常困难),而且你将所有的个人数据(比如,第3方模块,主题,和文件)都放在了/sites文件夹下(对于Drupal5,你可能将你的/files文件夹放在了站点的根目录下,而对于Drupal6,/files在默认情况下是放在/sites目录里面的),然后你就可以自信的删除其余的Drupal文件和目录了,并将最新的Drupal版本上传上去:

  1. 导航到你Drupal站点的根目录下(下面的命令都是在根目录下运行的):
    cd /home/yoursitename/public_html

 

  1. 创建一个临时目录,用于保存Drupal的旧文件/文件夹,直到你确定升级完全成功以后,再将其删除(这样做,而不是将旧文件立即删除,是为了应急,如果升级由于这样或者那样的原因失败了,使用这个备份可以快速的恢复原貌,而不用使用整个备份):
    mkdir d-backup

 

 

  1. 接下来,使用下面的命令,将出了你的个人数据以外的所有Drupal文件和文件夹,都移到临时的d-backup文件夹下。.htaccess robots.txt 文件没有包含进来,这是由于你可能对它们作了修改(如果没有的话,将它们也加入到这个列表中):
    mv CHANGELOG.txt COPYRIGHT.txt cron.php includes index.php INSTALL.mysql.txt INSTALL.pgsql.txt install.php INSTALL.txt LICENSE.txt MAINTAINERS.txt misc modules profiles scripts themes update.php UPGRADE.txt xmlrpc.php d-backup

 

  1. Drupal.org上下载最新的Drupal版本(或者使用下面的命令,调整一下drupal的版本号就可以了)。一般来讲,对于同一分支的不同版本,你可以大胆的进行升级(例如,drupal6.1升级到drupal6.4),不过最好还是先阅读一下每个版本的UPGRADE.txt文件。然而,对于不同分支之间的升级,比如drupal5.x升级到drupal6.x,就需要较多的准备工作了。有些主机不支持wget命令,所以这里提供了可选的curl命令(如果两者都不支持的话,只好使用FTP了)。

使用wget
wget http://ftp.drupal.org/files/projects/drupal-6.4.tar.gz

使用curl
curl -O http://ftp.drupal.org/files/projects/drupal-6.4.tar.gz

 

  1. 解压缩下载的文件(它将创建一个自己的子文件夹,所以不要担心它与你的文件混在一起)。这个命令假定你在当前目录仅有一个下载的Drupal文件,如果还有其它的话,你需要使用准确的名字,来代替命令中的通配符:
    tar -xzvpf drupal-*

 

  1. 进入新创建的子目录中:
    cd drupal-*

 

 

  1. 运行下面的命令,将新的Drupal文件移到你站点的根目录下。只能移动与d-backup

文件夹里同名的文件和文件夹,保留所有的个人文件和文件夹(比如/sites /files目录)最后的../就是告诉计算机将数据移到上一级文件夹下,也就是你站点的根目录:

mv CHANGELOG.txt COPYRIGHT.txt cron.php includes index.php INSTALL.mysql.txt INSTALL.pgsql.txt install.php INSTALL.txt LICENSE.txt MAINTAINERS.txt misc modules profiles scripts themes update.php UPGRADE.txt xmlrpc.php ../

 

  1. 返回到你站点的根目录:
    cd ..

 

  1. 如果你有其它额外的文件需要放在Drupal核心文件夹中的话(例如,如果安装了jQuery Update模块的话,把jquery.js放到/misc文件夹下),你也可以使用命令来完成。很少有模块让你将文件放在模块目录以外,所以这可能构成不了一步。下面是几个常用的例子:
    cp sites/all/modules/jquery_update/jquery.js misc/jquery.js
    cp sites/all/modules/image/image.imagemagick.inc includes/image.imagemagick.inc

 

 

  1. 最后,在你的浏览器中输入example.com/update.php,按照指示来升级你的数据库。不要修改"Select versions"字段集下面的任何下拉菜单选项;简单的运行update.php.你现在可以回到Administer > Logs > Status report (Drupal 5) 或者 Administer > Reports > Status report (Drupal 6),来确认你的drupal版本了。

 

 

清理临时文件/文件夹,并将站点重新上线

  1. 现在升级已经成功完成了,让我们将临时文件夹d-backup删除掉(记住,你现在仍然有“实际的”备份文件,在需要的时候还可使用)。同样,也删除下载的Drupal tar.gz备份文件,以及他解压缩用的drupal-*文件夹。可使用下面的命令,一步完成所有的删除工作(只有当其它的文件或者文件夹未以drupal-打头时,你才可以这样,因为它将删除所有以drupal-打头的文件和文件夹):
    rm -rf d-backup drupal-*
  2. 许多Drupal站点管理员喜欢删除他们drupal站点根目录下的各种.txt文件(比如,UPGRADE.txt, README.txt,等等),因为这些文件很容易将当前安装的Drupal版本信息暴露给外界。在你的Drupal安装目录下,除了robots.txt以外,你可以删除任何其它的.txt文件。如果你要删除这些文件的话,在将来的drupal升级中,可以调整步骤37里面的命令,以将这些文件排除在外。
  3. 完成以后,现在你就可以让你的drupal站点重新上线了,在Administer > Site configuration > Site maintenance (admin/settings/site-maintenance)页面调整drupal站点的状态。你应该测试站点以保证一切正常。

 相关链接: http://drupal.org/node/297496Think in Drupal

 

Drupal版本: