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

核心思想
搬家的本质是:将网站的“骨架”(程序文件)、“内脏”(数据库)、“外貌”(配置文件)完整地从旧服务器迁移到新服务器,并告诉新服务器它的新家在哪里。
第一步:在原服务器上准备搬家文件
这一步的目的是打包好所有需要迁移的东西。
备份数据库(最关键的一步)
数据库是网站的灵魂,包含了所有用户数据、帖子、设置等。
-
使用 Discuz! 自带的备份工具(推荐新手)
(图片来源网络,侵删)- 登录你的网站后台。
- 进入 “站长” -> “数据库” -> “数据库备份/恢复”。
- 点击 “开始备份” 或 “快速备份”。
- 备份完成后,系统会生成一个
.sql文件。请务必下载这个文件到你的本地电脑,文件名通常类似于pre_20251027.sql。
-
使用服务器的数据库管理工具(如 phpMyAdmin)
- 登录你的虚拟主机控制面板(如 cPanel, Plesk)或服务器后台。
- 找到并进入 phpMyAdmin。
- 在左侧列表中,选择你的 Discuz! 数据库。
- 点击顶部的 “导出” 选项卡。
- 在“导出方法”中选择 “快速”,或者在“格式”中选择 “SQL”。
- 勾选 “添加 DROP TABLE/DATABASE”(这样新环境导入时会更干净)。
- 点击 “执行”,浏览器会自动下载
.sql备份文件。
备份网站程序文件
这是网站的“身体”,包含了所有页面和功能代码。
- 通过 FTP 或文件管理器 连接到你的原服务器。
- 进入网站的根目录(通常是
public_html,wwwroot或httpdocs)。 - 除了
data目录和config_global_default.php文件外,将整个网站目录打包下载。- 为什么排除
data目录?data目录下有一个config_global.php文件,它包含了数据库连接信息,这个文件里有旧服务器的路径信息,直接复制过去会导致新网站无法连接数据库,我们后面会手动生成它。 - 为什么排除
config_global_default.php? 这是一个默认配置文件,通常不需要迁移。
- 为什么排除
- 将打包好的网站程序文件(
forum.zip)下载到你的本地电脑。
至此,你的本地电脑上应该有两个关键文件:
- 一个数据库备份文件(
pre_20251027.sql) - 一个网站程序压缩包(
forum.zip)
第二步:上传文件到新服务器
这一步是把“骨架”和“内脏”搬进新家。

上传网站程序
- 通过 FTP 或文件管理器 连接到你的新服务器。
- 进入新网站的根目录。
- 将你刚才下载的
forum.zip上传到这个根目录。 - 上传完成后,在服务器上解压这个压缩包,大部分文件管理器都有解压功能。
上传数据库文件
- 将你下载的数据库备份文件(
pre_20251027.sql)上传到新服务器的任意一个临时目录,/public_html/backup/,上传后记得删除这个临时目录,以确保安全。
第三步:在新服务器上配置和导入
这是最关键的一步,需要告诉新服务器关于新家的所有信息。
修改数据库配置信息
-
通过 FTP 或文件管理器,访问新服务器上的网站目录。
-
找到并进入
config目录。 -
你会看到一个名为
config_global_default.php的文件。将其重命名为config_global.php。 -
用文本编辑器(如 Notepad++, VS Code,或服务器上的在线编辑器)打开这个新文件。
-
修改其中的关键信息:
// 找到下面这两行,并修改 $_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 地址或域名,这时就要填那个地址。
导入数据库
- 登录新服务器的控制面板,找到 phpMyAdmin。
- 在左侧列表中,创建一个新的数据库,数据库名要和你在
config_global.php中填写的一致(new_db_name)。 - 创建成功后,点击这个新数据库,使其被选中。
- 点击顶部的 “导入” 选项卡。
- 点击 “选择文件”,然后选择你上传到新服务器的数据库备份文件(
pre_20251027.sql)。 - 点击 “执行”,等待导入完成,你会看到“已成功执行 SQL 查询”的提示。
修改目录权限
为了确保 Discuz! 能正常写入数据(如上传附件、生成缓存等),需要给某些目录设置正确的权限。
- 通过 FTP 或文件管理器,进入新网站的根目录。
- 将以下目录的权限设置为 777(或
drwxrwxrwx)。(注意:在正式环境中,出于安全考虑,操作完成后应改回 755)data/config/uc_client/data/uc_server/data/static/image/common/- 以及其他你网站需要上传文件的目录。
修改 config_ucenter.php 文件
如果你的网站整合了 UCenter(用于整合论坛、家园、应用等),还需要修改这个文件。
-
找到并打开
config_ucenter.php文件。 -
修改其中的数据库连接信息,使其与
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_'); // 注意这里要加上数据库名
清理缓存并访问网站
- 通过 FTP 删除新网站根目录下的
cache目录下的所有文件,这可以清除旧环境的缓存。 - 现在打开你的浏览器,访问你的新域名。
- 如果一切顺利,你应该能看到你的网站首页。请务必清除浏览器缓存后再访问(可以按
Ctrl + F5强制刷新)。 - 登录网站后台,检查一下各项功能是否正常,比如发帖、上传图片、用户登录等。
常见问题与解决方案
-
问题1:网站打开一片空白或报错。
- 原因: 99% 是
config_global.php文件中的数据库信息填写错误,或者数据库导入失败。 - 解决: 仔细核对
dbhost,dbuser,dbpw,dbname是否正确,登录 phpMyAdmin 查看数据库中是否有数据表,以判断导入是否成功。
- 原因: 99% 是
-
问题2:图片、CSS 样式加载不出来。
- 原因: 网站的根目录路径不对,Discuz! 有时会将一些路径硬编码在缓存或配置中。
- 解决:
- 登录后台,进入 “全局” -> “站点信息”,检查并修正你的域名。
- 进入 “工具” -> “更新缓存”,更新所有缓存。
- 检查
config_global.php中的网站 URL 设置是否正确。
-
问题3:上传图片失败或无法创建目录。
- 原因: 目录权限设置不正确。
- 解决: 重新检查并确保
data,static/image/common等目录的权限是 777。
-
问题4:搬家后无法登录,提示密码错误。
- 原因: 数据库
uc_members表中的密码是加密的,搬家过程本身不会破坏它,通常是 Cookie 域名问题。 - 解决: 清除浏览器所有 Cookie,或者尝试在不同浏览器中访问,如果还不行,可以尝试在后台重置一个测试账号的密码。
- 原因: 数据库
Discuz! 搬家 = 备份数据库 + 打包程序 -> 上传到新服务器 -> 修改配置文件 -> 导入数据库 -> 设置权限 -> 访问测试。
整个过程最核心的就是数据库的备份与导入,以及 config_global.php 文件的正确修改,只要细心,就能顺利完成搬家,祝你成功!
