logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

1.2.2. 在没有 Drush 和 Composer 的情况下更新 Drupal 8

16/10/2025, by Ivan

如果你是从官方网站 https://www.drupal.org/project/drupal 下载并安装 Drupal 的,

那么在更新 Drupal 时可能会遇到问题,因为 Drush 和 Composer 无法以常规方式更新此类型的安装。因此,你需要通过手动替换文件来更新 Drupal,或者重组项目结构以便 Composer 可以管理它。在本文中,我们将讨论第一种方法 —— 如何在没有 Drush 和 Composer 的情况下更新 Drupal。

drupal

在更新之前,必须进行完整的网站备份。请复制所有文件和数据库。虽然更新过程中出错的几率很小,但恢复网站可能会花费很多时间,因此提前备份是非常必要的。

如果你的网站已经上线,并且停机会影响公司或客户的销售,那么建议先创建网站副本,在副本上测试更新。确认成功后,再将相同的步骤应用到正式网站上,或者用本地更新完成的版本替换生产环境网站。

在更新过程中,请记录所有操作、错误提示和系统消息,以便后续重现步骤或排查问题。

请勿通过 FTP 在远程服务器上更新 Drupal 8,这样会非常耗时。如果你有 SSH 访问权限,可以使用 wget 命令直接在服务器上下载更新包,这样速度会快得多。

备份完成后,就可以开始更新 Drupal 了:

1. 使用管理员账户登录网站

确保此管理员拥有通过 update.php 更新数据库的权限,并能启用维护模式。

2. 启用维护模式:

路径:

/admin/config/development/maintenance

导航:
配置 → 开发 → 维护模式

drupal

3. 删除旧版本核心文件

从网站根目录中删除 corevendor 文件夹:

drupal update

删除这些文件夹后,网站将暂时无法访问,这是正常现象。

4. 备份和保存自定义文件修改

如果你修改过 .htaccessrobots.txt 文件,请先保存修改内容,因为这些文件也需要更新。

同样,如果你通过 Composer 安装过模块或库,请保存 composer.json 的改动,以便稍后重新安装。如果改动较多,可以保留旧的 composer.jsoncomposer.lock 文件。

drupal update

5. 检查 settings 文件

有时更新会修改 default.settings.php,你需要将其中的更改同步到你的网站 settings.php 文件中。可以在 Drupal 项目页面的 “View all releases” 查看对应版本的更改:

https://www.drupal.org/project/drupal

drupal update

通常如果只是小版本更新(例如 8.5.x → 8.5.y),可以忽略此步骤。

6. 下载最新的 Drupal 核心

前往官方网站下载最新版本:

https://www.drupal.org/project/drupal

从新版本中复制 corevendor 文件夹以及网站根目录下的所有文件。

Drupal update

然后将这些文件上传到你的网站目录中。

7. 通过 SSH 更新(推荐)

如果有 SSH 访问权限,可以使用以下命令快速下载并解压 Drupal:

wget https://www.drupal.org/files/projects/drupal-x.y.z.tar.gz
tar -zxvf drupal-x.y.z.tar.gz

然后复制新文件到网站目录:

cp -R drupal-x.y.z/* drupal-x.y.z/.htaccess /path/to/your/installation

如果只能使用 FTP,建议使用 FileZilla,并设置 10 个并行传输线程以提高速度:

drupal files

8. 恢复自定义文件

上传完成后,将修改内容恢复到以下文件中:
robots.txt.htaccessdefault.settings.phpsettings.phpcomposer.json

9. 运行数据库更新脚本

settings.php 文件中添加:

$settings['update_free_access'] = TRUE;

然后访问 /update.php 运行数据库更新。

update.php

10. 验证 Drupal 版本

访问 /admin/reports/status 检查版本状态:

Drupal status

11. 关闭维护模式

路径:/admin/config/development/maintenance

Drupal maintenance mode

12. 禁用 update.php 访问

更新完成后,将设置改回:

$settings['update_free_access'] = FALSE;

如果在更新过程中出现任何问题或错误,请在评论中留言。