手动更新 Drupal 核心
开始之前
如果您尚未阅读,建议先查看这篇介绍,其中简要说明了更新 Drupal 8 时可选择的所有方法。
附注:此更新步骤也记录在用户指南中。
如果您使用 Composer 安装了带有第三方依赖的扩展模块,请勿使用以下方法更新,因为这些步骤会覆盖 vendor/ 目录。
手动更新 Drupal 8 核心
以下是使用命令行(shell)手动更新 Drupal 8 核心的步骤:
1. 备份您的文件和数据库。完整的备份可以让您在更新失败时轻松回滚到先前版本。
如果您修改过 .htaccess、composer.json 或 robots.txt 等文件,请将它们复制到其他安全位置,因为更新后需要重新应用这些修改。例如,在 Acquia Dev Desktop 中,.htaccess 位于根目录下,没有它网站可能只能访问主页。
提示:若在更新过程中遇到致命错误,请立即还原备份。
2. 以具有“软件更新管理”权限的用户身份登录 Drupal。
3. 将网站设置为维护模式:
- 在管理菜单中导航至 管理 > 配置 > 开发 > 维护模式。
- 勾选“将网站置于维护模式”。
- 点击“保存配置 (Save configuration)”。
4. 删除旧核心文件,保留自定义模块和主题。您可以选择以下两种方式之一:
使用命令行
cd /path/to/your/drupal/directory
删除 core 和 vendor 目录:
rm -rf core vendor
删除根目录下所有文件:
rm -f *.* .[a-z]*
使用 FTP 客户端
进入 Drupal 安装目录,选中根目录下的所有文件(包括以点开头的隐藏文件)及 “core”、“vendor” 文件夹并删除。不要删除 “modules”、“profiles”、“sites”、“themes” 文件夹。
5. 某些更新可能包含 default.settings.php 文件的变更。这会在版本发布说明中注明。您可以在 https://www.drupal.org/project/drupal 查看您的版本发行说明。
- 从旧版 settings.php 复制数据库配置及其他自定义设置到新的 settings.php 文件。
- 将新的 default.settings.php 文件复制为 settings.php,覆盖旧版本。
- 为 settings.php 文件制作一份额外备份。
- 该文件通常位于 /sites/default/ 目录下。
6. 下载并替换核心文件。选择以下两种方式之一:
使用命令行
执行以下命令下载并解压:
wget https://ftp.drupal.org/files/projects/drupal-x.y.z.tar.gz tar zxf drupal-x.y.z.tar.gz
进入解压目录并复制核心文件:
cd drupal-x.y.z cp -R core vendor /path/to/your/drupal/directory cp *.* .[a-z]* /path/to/your/drupal/directory
使用浏览器和 FTP 客户端
- 从 https://www.drupal.org/download 下载最新的 Drupal 8.x.x 版本到 webroot 之外的目录。
- 解压下载的压缩包。
- 使用 FTP 客户端 上传 “core”、“vendor” 文件夹及根目录下文件至您的 Drupal 目录。
7. 如有需要,重新应用您在 .htaccess、composer.json 或 robots.txt 文件中的修改。
8. 在浏览器中运行更新脚本:访问 http://www.example.com/update.php(将示例域名替换为您自己的)。此脚本会更新数据库结构。
若您不是具有“软件更新管理”权限的用户或安装时的管理员账号,将无法访问 update.php。请按照以下步骤临时启用:
- 使用文本编辑器打开 settings.php 文件。
- 找到以下行:
$settings['update_free_access'] = FALSE;
- 将 FALSE 改为 TRUE:
$settings['update_free_access'] = TRUE;
- 保存后重新访问
/update.php
。 - 更新完成后,请务必将设置改回 FALSE 以确保安全。
9. 登录 Drupal 管理后台,导航到 管理 > 报告 > 状态报告,确保网站运行正常。
10. 前往 管理 > 配置 > 开发 > 维护模式,取消勾选“将网站置于维护模式”,并保存设置。
11. 删除临时下载和解压的 Drupal 文件:
rm drupal-x.y.z.tar.gz rm -rf drupal-x.y.z/
12. 完成 🎉 您已成功通过手动方式更新 Drupal 8 核心!