凌峰创科服务平台

Discuz网站搬家后如何快速恢复访问?

本指南将以最经典的 Discuz! X3.4 版本为例,但核心步骤适用于绝大多数 Discuz! 版本(包括 X2, X3, X3.2 等),整个过程主要分为三大步:原服务器操作文件传输新服务器操作

Discuz网站搬家后如何快速恢复访问?-图1
(图片来源网络,侵删)

核心思想

搬家的本质是:将网站的“骨架”(程序文件)、“内脏”(数据库)、“外貌”(配置文件)完整地从旧服务器迁移到新服务器,并告诉新服务器它的新家在哪里。


第一步:在原服务器上准备搬家文件

这一步的目的是打包好所有需要迁移的东西。

备份数据库(最关键的一步)

数据库是网站的灵魂,包含了所有用户数据、帖子、设置等。

  • 使用 Discuz! 自带的备份工具(推荐新手)

    Discuz网站搬家后如何快速恢复访问?-图2
    (图片来源网络,侵删)
    1. 登录你的网站后台。
    2. 进入 “站长” -> “数据库” -> “数据库备份/恢复”
    3. 点击 “开始备份”“快速备份”
    4. 备份完成后,系统会生成一个 .sql 文件。请务必下载这个文件到你的本地电脑,文件名通常类似于 pre_20251027.sql
  • 使用服务器的数据库管理工具(如 phpMyAdmin)

    1. 登录你的虚拟主机控制面板(如 cPanel, Plesk)或服务器后台。
    2. 找到并进入 phpMyAdmin
    3. 在左侧列表中,选择你的 Discuz! 数据库。
    4. 点击顶部的 “导出” 选项卡。
    5. 在“导出方法”中选择 “快速”,或者在“格式”中选择 “SQL”
    6. 勾选 “添加 DROP TABLE/DATABASE”(这样新环境导入时会更干净)。
    7. 点击 “执行”,浏览器会自动下载 .sql 备份文件。

备份网站程序文件

这是网站的“身体”,包含了所有页面和功能代码。

  1. 通过 FTP 或文件管理器 连接到你的原服务器。
  2. 进入网站的根目录(通常是 public_html, wwwroothttpdocs)。
  3. 除了 data 目录和 config_global_default.php 文件外,将整个网站目录打包下载
    • 为什么排除 data 目录? data 目录下有一个 config_global.php 文件,它包含了数据库连接信息,这个文件里有旧服务器的路径信息,直接复制过去会导致新网站无法连接数据库,我们后面会手动生成它。
    • 为什么排除 config_global_default.php 这是一个默认配置文件,通常不需要迁移。
  4. 将打包好的网站程序文件(forum.zip)下载到你的本地电脑。

至此,你的本地电脑上应该有两个关键文件:

  • 一个数据库备份文件(pre_20251027.sql
  • 一个网站程序压缩包(forum.zip

第二步:上传文件到新服务器

这一步是把“骨架”和“内脏”搬进新家。

Discuz网站搬家后如何快速恢复访问?-图3
(图片来源网络,侵删)

上传网站程序

  1. 通过 FTP 或文件管理器 连接到你的新服务器
  2. 进入新网站的根目录。
  3. 将你刚才下载的 forum.zip 上传到这个根目录。
  4. 上传完成后,在服务器上解压这个压缩包,大部分文件管理器都有解压功能。

上传数据库文件

  1. 将你下载的数据库备份文件(pre_20251027.sql)上传到新服务器的任意一个临时目录/public_html/backup/,上传后记得删除这个临时目录,以确保安全。

第三步:在新服务器上配置和导入

这是最关键的一步,需要告诉新服务器关于新家的所有信息。

修改数据库配置信息

  1. 通过 FTP 或文件管理器,访问新服务器上的网站目录。

  2. 找到并进入 config 目录。

  3. 你会看到一个名为 config_global_default.php 的文件。将其重命名为 config_global.php

  4. 用文本编辑器(如 Notepad++, VS Code,或服务器上的在线编辑器)打开这个新文件。

  5. 修改其中的关键信息:

    // 找到下面这两行,并修改
    $_config['db']['1']['dbhost'] = 'localhost'; // 数据库地址,99%是 localhost,如果不是,请咨询你的主机商
    $_config['db']['1']['dbuser'] = 'new_db_user'; // 你的新数据库用户名
    $_config['db']['1']['dbpw'] = 'new_db_password'; // 你的新数据库密码
    $_config['db']['1']['dbname'] = 'new_db_name'; // 你的新数据库名
    $_config['db']['1']['tablepre'] = 'pre_'; // 数据库表前缀,保持和原来一样,除非你特意要改

    注意: localhost 是指数据库就在本台服务器上,这是虚拟主机最常见的情况,如果你的数据库和网站不在同一台服务器,主机商会提供给你一个 IP 地址或域名,这时就要填那个地址。

导入数据库

  1. 登录新服务器的控制面板,找到 phpMyAdmin
  2. 在左侧列表中,创建一个新的数据库,数据库名要和你在 config_global.php 中填写的一致(new_db_name)。
  3. 创建成功后,点击这个新数据库,使其被选中。
  4. 点击顶部的 “导入” 选项卡。
  5. 点击 “选择文件”,然后选择你上传到新服务器的数据库备份文件(pre_20251027.sql)。
  6. 点击 “执行”,等待导入完成,你会看到“已成功执行 SQL 查询”的提示。

修改目录权限

为了确保 Discuz! 能正常写入数据(如上传附件、生成缓存等),需要给某些目录设置正确的权限。

  1. 通过 FTP 或文件管理器,进入新网站的根目录。
  2. 将以下目录的权限设置为 777(或 drwxrwxrwx)。(注意:在正式环境中,出于安全考虑,操作完成后应改回 755)
    • data/
    • config/
    • uc_client/data/
    • uc_server/data/
    • static/image/common/
    • 以及其他你网站需要上传文件的目录。

修改 config_ucenter.php 文件

如果你的网站整合了 UCenter(用于整合论坛、家园、应用等),还需要修改这个文件。

  1. 找到并打开 config_ucenter.php 文件。

  2. 修改其中的数据库连接信息,使其与 config_global.php 中的信息保持一致。

    define('UC_DBHOST', 'localhost');
    define('UC_DBUSER', 'new_db_user');
    define('UC_DBPW', 'new_db_password');
    define('UC_DBNAME', 'new_db_name');
    define('UC_DBTABLEPRE', '`new_db_name`.pre_ucenter_'); // 注意这里要加上数据库名

清理缓存并访问网站

  1. 通过 FTP 删除新网站根目录下的 cache 目录下的所有文件,这可以清除旧环境的缓存。
  2. 现在打开你的浏览器,访问你的新域名。
  3. 如果一切顺利,你应该能看到你的网站首页。请务必清除浏览器缓存后再访问(可以按 Ctrl + F5 强制刷新)。
  4. 登录网站后台,检查一下各项功能是否正常,比如发帖、上传图片、用户登录等。

常见问题与解决方案

  • 问题1:网站打开一片空白或报错。

    • 原因: 99% 是 config_global.php 文件中的数据库信息填写错误,或者数据库导入失败。
    • 解决: 仔细核对 dbhost, dbuser, dbpw, dbname 是否正确,登录 phpMyAdmin 查看数据库中是否有数据表,以判断导入是否成功。
  • 问题2:图片、CSS 样式加载不出来。

    • 原因: 网站的根目录路径不对,Discuz! 有时会将一些路径硬编码在缓存或配置中。
    • 解决:
      1. 登录后台,进入 “全局” -> “站点信息”,检查并修正你的域名。
      2. 进入 “工具” -> “更新缓存”,更新所有缓存。
      3. 检查 config_global.php 中的网站 URL 设置是否正确。
  • 问题3:上传图片失败或无法创建目录。

    • 原因: 目录权限设置不正确。
    • 解决: 重新检查并确保 data, static/image/common 等目录的权限是 777。
  • 问题4:搬家后无法登录,提示密码错误。

    • 原因: 数据库 uc_members 表中的密码是加密的,搬家过程本身不会破坏它,通常是 Cookie 域名问题。
    • 解决: 清除浏览器所有 Cookie,或者尝试在不同浏览器中访问,如果还不行,可以尝试在后台重置一个测试账号的密码。

Discuz! 搬家 = 备份数据库 + 打包程序 -> 上传到新服务器 -> 修改配置文件 -> 导入数据库 -> 设置权限 -> 访问测试

整个过程最核心的就是数据库的备份与导入,以及 config_global.php 文件的正确修改,只要细心,就能顺利完成搬家,祝你成功!

分享:
扫描分享到社交APP
上一篇
下一篇