核心原理
DedeCMS的“文档”数据主要存储在数据库中,特别是 #@__archives (主表) 和 #@__addonarticle (文章附加表,如文章内容、图集等) 这两张核心表。
文档转移的本质就是:
- 源网站:从数据库中导出与文档相关的数据表。
- 目标网站:将这些数据导入到目标网站的数据库中。
- 数据修正:修正因路径、ID等变化而导致的数据错乱,特别是图片、附件的路径。
常见场景与操作方案
根据您的具体情况,可以选择以下方案:
同一网站内,从A栏目转移到B栏目(最简单)
这种情况最简单,因为网站域名、路径、数据库都没有变,DedeCMS后台提供了直接的功能。
操作步骤:
- 登录后台:使用管理员账号登录DedeCMS后台。
- 进入“文档管理”:在左侧菜单栏找到 ->
文档管理->所有文档。 - 选择文档:在文档列表中,勾选您想要转移的文档(可以全选或按条件筛选)。
- 执行“移动”操作:在列表下方的“批量操作”中,选择
移动文档。 - 选择目标栏目:在弹出的窗口中,选择您要转移到的目标栏目(B栏目),然后点击“确定”即可。
优点:操作简单,无需技术,后台一键完成,路径自动修正。 缺点:仅适用于同一网站内部。
从旧网站迁移到新网站(完整迁移)
这是最常见的需求,比如更换服务器、更换域名,这不仅仅是文档转移,而是整个网站的迁移。
完整迁移步骤(推荐):
这种方法虽然名为“完整迁移”,但它包含了文档的完整转移,并且能自动处理所有路径问题,是最稳妥、最推荐的方法。
步骤1:打包源网站文件
- 通过FTP或文件管理器,将旧网站根目录下的所有文件(包括
/dede、/data、/images、/uploads、/templets等)全部下载到本地,并打包成一个ZIP或RAR文件。
步骤2:导出源网站数据库
- 登录旧网站的数据库管理工具(如 phpMyAdmin)。
- 选择旧网站使用的数据库。
- 点击“导出”。
- 在导出选项中:
- 格式:选择“SQL”。
- 选项:勾选“
DROP TABLE / VIEW / PROCEDURE / FUNCTION”和“如果不存在则创建”,这样新数据库中即使有同名表也会被覆盖。 - 表选择:全选所有表(包括
#@__archives,#@__addonarticle,#@__arctype,#@__admin等所有表)。
- 执行导出,得到一个
.sql文件。
步骤3:上传并部署新网站
- 在新服务器上,通过FTP上传之前打包好的网站文件到根目录。
- 解压文件。
- 修改核心配置文件:
/data/common.inc.php:这是数据库连接文件,需要修改其中的数据库主机、用户名、密码和数据库名,使其与新服务器的数据库信息一致。/include/config_base.php:网站基础配置文件,检查并修正网站根目录路径$cfg_cmspath。
- 重要:如果新域名和旧域名不同,请务必修改:
/data/common.inc.php中的$cfg_basehost。- 后台
系统->系统基本参数->核心设置中的“网站根网址”。
步骤4:导入数据库到新网站
- 登录新服务器的数据库管理工具(如 phpMyAdmin)。
- 创建一个新的数据库(如果还没有)。
- 选择这个新数据库,点击“导入”。
- 选择之前导出的
.sql文件,然后执行。
步骤5:修正数据(关键步骤)
即使你按照步骤3修改了配置,数据库中存储的旧路径(如图片地址)可能还是错误的,此时需要使用DedeCMS的数据库修复工具。
- 登录新网站后台。
- 进入
系统->数据库备份/还原。 - 在右侧菜单中找到并点击
**数据库内容替换**。 - 在弹出的页面中,进行如下替换:
- 替换前的字符串:输入你的旧域名,
http://www.old-domain.com。 - 替换后的字符串:输入你的新域名,
http://www.new-domain.com。 - 选择范围:全选所有数据表。
- 替换前的字符串:输入你的旧域名,
- 点击
开始执行,系统会自动扫描并替换所有表中的旧域名链接为新域名链接。
步骤6:检查网站
- 清空浏览器缓存。
- 前台访问新网站,检查文章、图片、链接是否正常。
- 后台登录,检查各项功能是否正常。
仅转移部分文档(如从A站转移文章到B站)
这种情况比较复杂,因为两个网站的栏目结构、数据ID等都可能冲突,手动操作风险高,推荐使用第三方工具或插件。
推荐方案:使用“采集”功能
DedeCMS的“采集”功能非常强大,不仅可以采集外部网站,也可以采集本机或其他站点的HTML页面,这是转移少量或大量文档的利器。
操作步骤:
-
在目标网站(B站)后台准备采集节点:
- 进入
采集->采集节点管理。 - 点击“增加新节点”,填写节点名称(如“从A站转移文章”)。
- 来源网址:这里可以填写一个虚拟地址,因为我们是本地操作,或者,你可以先在A站生成一个包含所有待转移文章列表的HTML页面,然后把这个页面上传到B站的某个目录,再填写这个页面的地址。
- 匹配网址:如果来源是列表页,需要设置匹配规则,提取文章的真实链接。
- 保存节点。
- 进入
-
设置采集字段(最关键的一步):
- 进入
采集->采集管理,找到你刚刚创建的节点,点击后面的“选择”。 - 在“选择栏目”页面,选择你要将文章导入到哪个B站的栏目。
- 进入“采集字段”设置页面。
- 选择匹配A站文章标题的规则。
- 选择匹配A站文章内容的规则。注意:这里需要将A站的图片路径(如
/uploads/...)替换为B站的路径(如/b站/uploads/...),否则图片会显示不出来,可以通过“高级选项”中的“内容替换”功能来实现。 - 作者、来源、栏目ID等:根据需要进行匹配和设置,特别是
栏目ID,你需要确保A站的某个栏目对应到B站的某个栏目,或者手动指定。
- 进入
-
开始采集:
- 保存所有设置后,回到“采集管理”页面,点击该节点后面的“开始采集”。
- 系统会根据你设定的规则,自动抓取A站的文档并保存到B站的数据库中。
优点:非常灵活,可以过滤、筛选、修改内容,是内容转移的“瑞士军刀”。 缺点:需要一定的耐心和技巧来配置采集规则,特别是处理图片路径和栏目映射时。
总结与建议
| 场景 | 推荐方案 | 优点 | 缺点 |
|---|---|---|---|
| 同一网站内栏目转移 | 后台“移动文档”功能 | 简单、快速、一键完成 | 仅限同一网站 |
| 更换域名/服务器迁移 | 完整迁移法(文件+数据库+路径替换) | 最稳妥、最完整、自动化程度高 | 步骤稍多,需要FTP和数据库操作 |
| 部分文档跨站转移 | 后台“采集”功能 | 灵活、可定制、能处理复杂情况 | 需要配置采集规则,有一定学习成本 |
重要提醒:
- 备份!备份!备份! 无论是操作哪个步骤,尤其是修改数据库前,务必备份源网站的数据库和文件。
- 测试环境:如果条件允许,先在本地或测试服务器上完整操作一遍,确认无误后再在生产环境上执行。
- 权限问题:确保新服务器的PHP进程对
/data和/uploads等目录有写入权限。
希望这份详细的指南能帮助您顺利完成DedeCMS管理员文档的转移工作!
