从 Drupal 6 升级到 Drupal 7 步骤详解

  对 Drupal 版本进行升级之前,建议先检查第三方代码与自定义代码与新版本的兼容性,在完成这些检查并了解新旧版本的可升级部分之后,便可通过以下步骤开始升级了。

  1. 检查第三方及自制模块、主题与 Drupal 7 的兼容性[1],(如果你是开发人员,还应该了解如何对你的代码进行升级[2][3])
  2. 确保你目前使用的是最新版本的 Drupal 6.x(当前为 Drupal 6.20),如果当前不是使用最新版本的 Drupal 6,请先升级到 Drupal 6.20。可以参考 Drupal 6.20 发行包里面的 UPGRADE.txt 文档,或者是我以前译写的针对 6.x 版本间升级的《Drupal 的升级步骤
  3. 使用 UID 1 用户登录到站点
  4. 打开 Administer > Site configuration > Site mainenance,将“站点维护”更改为“离线”并保存配置
  5. 打开 Administer > Site building > Themes,启用"Garland"并将其设置为默认主题
  6. 打开 Administer > Site building > Modules,禁用所有第三方及自制模块。因为模块之前存在依赖关系,所以可能需要重复多次才能禁用所有的第三方和自制模块。如果你确定其中部分模块以后不会在 Drupal 7 中被使用,那么可以在禁用之后将其“卸载”;
  7. 通过命令行或FTP删除以下文件:
    sites/default/default.settings.php
  8. 除了 sites 文件夹和其它由你添加的文件,删除 Drupal 安装目录内其它的所有文件和文件夹。如果你对 .htaccess 或 robots.txt 进行的更改,则应该在稍后重新更改新版本的 .htaccess 和 robots.txt 文档,以保证满足你的需求;
  9. 如果在第6步中卸载了某些模块,你应该将此模块文件从 sites/all/modules 或 sites/*/modules 中移除。但不要删除其它模块,即使它们与 Drupal 7 还不兼容,我们将稍后再处理
  10. 从 http://drupal.org 下载最新版的 Drupal 7.x 发行包,将它解包到你的网站根目录
  11. 重新修改在 Drupal 6 中修改过的核心文件,如 .htaccess 和 robots.txt
  12. 将 settings.php 的权限改为可写,从而保证它能够被升级到 Drupal 7 格式。settings.php 文件通常位于 sites/default/settings.php
  13. 通过浏览器访问 http://www.example.com/update.php 执行更新脚本 update.php(注意将其中的 example.com 改为你的站点域名)。如果无法访问 update.php,请执行以下操作:
    - 使用文本编辑器打开 settings.php
    - 找到以下内容:
      $update_free_access = FALSE; (将 FALSE 改为 TRUE)
    注意:千万记得更新完成之后将这个选择改回 FALSE;
  14. 执行完以上更新脚本便完成了 Drupal 核心的更新,备份一下更新后的数据库;
  15. 参考《升级第三方模块及主题》[4]重置和更新非核心的 Drupal 模块及主题;
  16. 访问 Administration > Reports > Status,确保所有内容都工作正常;
  17. 确保 settings.php 文档中的 $update_free_access = FALSE;
  18. 访问 Administration > Configuration > Development > Maintenance mode,取消“将站点设为维护模式(Put site into maintenance mode)”,并保存配置;

  执行完以上步骤,便完成了 Drupal 6 到 Drupal 7 的升级操作,有关 Drupal 7 的管理功能介绍,可参考 http://drupal.org/getting-started/7/admin

  到目前为止,以上步骤只完成了 Drupal 核心文件从 6.x 到 7.x 的升级,对于个别模块的升级,请单独参考模块对应的 7.x 版本中的 UPGRADE.txt 文件,并根据模块作者的说明进行升级。

参考资料:

  • [1] 已经拥有 Drupal 7 版本的模块列表 - http://drupal.org/node/895314
  • [2] 开发人员-升级模块 - http://drupal.org/update/modules
  • [3] 开发人员-升级主题 - http://drupal.org/update/theme
  • [4] 升级第三方模块及主题 - http://drupal.org/node/948216