1.2.2. 在没有 Drush 和 Composer 的情况下更新 Drupal 8
如果你是从官方网站 https://www.drupal.org/project/drupal 下载并安装 Drupal 的,
那么在更新 Drupal 时可能会遇到问题,因为 Drush 和 Composer 无法以常规方式更新此类型的安装。因此,你需要通过手动替换文件来更新 Drupal,或者重组项目结构以便 Composer 可以管理它。在本文中,我们将讨论第一种方法 —— 如何在没有 Drush 和 Composer 的情况下更新 Drupal。
在更新之前,必须进行完整的网站备份。请复制所有文件和数据库。虽然更新过程中出错的几率很小,但恢复网站可能会花费很多时间,因此提前备份是非常必要的。
如果你的网站已经上线,并且停机会影响公司或客户的销售,那么建议先创建网站副本,在副本上测试更新。确认成功后,再将相同的步骤应用到正式网站上,或者用本地更新完成的版本替换生产环境网站。
在更新过程中,请记录所有操作、错误提示和系统消息,以便后续重现步骤或排查问题。
请勿通过 FTP 在远程服务器上更新 Drupal 8,这样会非常耗时。如果你有 SSH 访问权限,可以使用 wget
命令直接在服务器上下载更新包,这样速度会快得多。
备份完成后,就可以开始更新 Drupal 了:
1. 使用管理员账户登录网站
确保此管理员拥有通过 update.php
更新数据库的权限,并能启用维护模式。
2. 启用维护模式:
路径:
/admin/config/development/maintenance
导航:
配置 → 开发 → 维护模式
3. 删除旧版本核心文件
从网站根目录中删除 core 和 vendor 文件夹:
删除这些文件夹后,网站将暂时无法访问,这是正常现象。
4. 备份和保存自定义文件修改
如果你修改过 .htaccess
或 robots.txt
文件,请先保存修改内容,因为这些文件也需要更新。
同样,如果你通过 Composer 安装过模块或库,请保存 composer.json
的改动,以便稍后重新安装。如果改动较多,可以保留旧的 composer.json
和 composer.lock
文件。
5. 检查 settings 文件
有时更新会修改 default.settings.php
,你需要将其中的更改同步到你的网站 settings.php
文件中。可以在 Drupal 项目页面的 “View all releases” 查看对应版本的更改:
https://www.drupal.org/project/drupal
通常如果只是小版本更新(例如 8.5.x → 8.5.y),可以忽略此步骤。
6. 下载最新的 Drupal 核心
前往官方网站下载最新版本:
https://www.drupal.org/project/drupal
从新版本中复制 core、vendor 文件夹以及网站根目录下的所有文件。
然后将这些文件上传到你的网站目录中。
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 个并行传输线程以提高速度:
8. 恢复自定义文件
上传完成后,将修改内容恢复到以下文件中:
robots.txt
、.htaccess
、default.settings.php
、settings.php
、composer.json
。
9. 运行数据库更新脚本
在 settings.php
文件中添加:
$settings['update_free_access'] = TRUE;
然后访问 /update.php
运行数据库更新。
10. 验证 Drupal 版本
访问 /admin/reports/status
检查版本状态:
11. 关闭维护模式
路径:/admin/config/development/maintenance
12. 禁用 update.php 访问
更新完成后,将设置改回:
$settings['update_free_access'] = FALSE;
如果在更新过程中出现任何问题或错误,请在评论中留言。