Skip to content

Drupal - 站点备份

定期备份您的 Drupal 网站对于灾难恢复、进行重大更新或迁移网站至关重要。一个完整的备份包含两个主要部分:数据库 (database) 和文件 (files)。

数据库存储您的网站内容、配置(在 Drupal 8+ 中,许多配置也可以导出到文件)、用户信息等。

方法 A:使用 Drush(推荐给开发者/CLI 用户)

Section titled “方法 A:使用 Drush(推荐给开发者/CLI 用户)”

Drush 是一个用于 Drupal 的命令行 shell 和 Unix 脚本接口。如果您已安装 Drush(通常通过 Composer 安装:composer require drush/drush):

  1. 打开您的终端 (terminal) 或命令提示符 (command prompt)。

  2. 导航到您的 Drupal 网站根目录 (root directory)(通常是您的主要 index.php 和 composer.json 文件所在的位置)。

  3. 运行命令:drush sql:dump --result-file=backup.sql(或 vendor/bin/drush sql:dump --result-file=my_database_backup.sql)。

这将在您的 Drupal 根目录中创建一个 SQL 转储文件(例如,my_database_backup.sql)。您可以为输出文件指定不同的路径。

方法 B:使用 phpMyAdmin(常见于共享主机)

Section titled “方法 B:使用 phpMyAdmin(常见于共享主机)”
  1. 登录您的主机控制面板(例如,cPanel)并打开 phpMyAdmin。

  2. 在左侧边栏的列表中选择您的 Drupal 数据库。

  3. 点击“导出 (Export)”标签页。

  4. 对于“导出方法 (Export method)”,通常选择“快速 (Quick)”就足够了。确保“格式 (Format)”设置为“SQL”。

  5. 点击“执行 (Go)”(或“导出 (Export)”)。数据库转储文件(.sql)将被下载到您的计算机。

许多主机提供商提供内置的备份工具或服务。请查阅您的主机提供商文档以获取具体说明。

这包括您的 Drupal 代码库(核心 [core]、模块 [modules]、主题 [themes])和用户上传的文件(图片、文档)。

这是最全面的文件备份。您需要复制整个 Drupal 项目目录。

  1. 通过 SFTP/FTP 客户端(例如,FileZilla, Cyberduck, WinSCP):连接到您的服务器。导航到您的 Drupal 根目录(例如,public_html, htdocs, www)。将整个目录下载到您的本地计算机。

  2. 通过 SSH/命令行 (Command Line):如果您有 SSH 访问权限,可以创建一个压缩存档:

    cd /path/to/drupal_root_parent_directory

    tar -czvf drupal_files_backup.tar.gz your_drupal_directory_name/

    然后下载 drupal_files_backup.tar.gz 文件。

  • 备份整个 Drupal 根目录是最安全的。
  • 至少,请确保您备份:
    • sites/default/files(或您的活动站点的文件目录,例如,sites/yourdomain.com/files):包含用户上传的文件。
    • themes/:您的自定义主题和贡献主题。
    • modules/:您的自定义模块和贡献模块。
    • composer.json 和 composer.lock:定义您的项目依赖。
    • vendor/:由 Composer 管理,但有时为了快速恢复而包含在完整备份中。
    • 配置文件(如果使用配置管理 (Configuration Management) 工作流程):通常存储在 config/sync 或 sites/default/config/sync 等目录中,并且应该使用 Git 进行版本控制。

3. 使用备份模块(例如,Backup and Migrate)

Section titled “3. 使用备份模块(例如,Backup and Migrate)”

‘Backup and Migrate’ 模块(contrib,贡献模块)允许您直接从 Drupal 用户界面 (UI) 执行数据库和文件备份(文件范围有限)。它还可以安排备份。虽然方便,但对于稳健且全面的备份,特别是文件备份,通常更推荐使用命令行 (CLI) 方法或主机提供商工具。

4. 使用 Drush 进行完整存档(代码、文件、数据库)

Section titled “4. 使用 Drush 进行完整存档(代码、文件、数据库)”

Drush 还可以创建完整的站点存档:

drush archive:dump --destination=/path/to/backup/site-archive.tar.gz

此命令将代码库、公共文件目录和数据库转储打包到一个单独的存档文件中。

  • 规律性:定期执行备份,尤其是在更新或进行重大更改之前。
  • 异地存储 (Off-site Storage):将备份存储在单独、安全的位置(例如,云存储 [cloud storage]、不同的服务器、外部硬盘)。
  • 测试:定期将备份恢复到开发或测试环境 (staging environment) 中进行测试,以确保它们有效。
  • 自动化:如果可能,使用 Cron 作业 (cron jobs) 和脚本自动执行备份过程。