织梦CMS 二次安装/迁移教程
“二次安装”通常指将一个已经运行了一段时间、有内容的织梦网站,从一台服务器迁移到另一台服务器,或者在同一台服务器上更换域名/目录,这个过程比全新安装要复杂,因为它需要处理数据库、配置文件和文件路径的同步。

第一步:准备工作(迁移前必读)
在开始任何操作之前,请务必备份!备份!备份!重要的事情说三遍。
-
备份原网站数据:
- 数据库备份: 登录你的原网站数据库管理工具(如 phpMyAdmin),选择你的织梦数据库,然后选择“导出”,建议选择“快速”导出格式,并勾选“保存为文件”,下载
.sql备份文件。 - 网站文件备份: 使用 FTP 或文件管理器,将你网站根目录下的所有文件和文件夹下载到你的本地电脑,这包括
/dede/、/data/、/include/、/images/、/uploads/等所有内容。
- 数据库备份: 登录你的原网站数据库管理工具(如 phpMyAdmin),选择你的织梦数据库,然后选择“导出”,建议选择“快速”导出格式,并勾选“保存为文件”,下载
-
准备新服务器环境:
- 域名解析: 确保你的新域名已经正确解析到新服务器的 IP 地址。
- 环境配置: 确保新服务器已安装并配置好运行织梦CMS所需的环境:
- Web服务器: Apache (推荐) 或 Nginx
- PHP版本: 推荐 PHP 7.2 ~ 7.4(织梦V5.7对PHP8.x支持不完善,高版本可能出错)
- 数据库: MySQL 5.6+ 或 MariaDB
- 上传文件: 将你第一步备份的网站文件,通过 FTP 上传到新服务器的网站根目录下。
- 创建数据库和用户: 在新服务器的数据库管理工具(如 phpMyAdmin)中,创建一个新的数据库和一个新的数据库用户,并授予该用户对新数据库的所有权限,记下以下信息:
- 数据库名称
- 数据库用户名
- 数据库密码
- 数据库主机(通常是
localhost)
第二步:核心操作步骤
我们开始正式的迁移工作。

步骤 1:恢复数据库
- 登录新服务器的 phpMyAdmin。
- 选择你刚刚创建的空数据库。
- 点击“导入”选项卡。
- 点击“选择文件”,上传你第一步备份的数据库
.sql文件。 - 点击“执行”按钮,等待导入完成,你的网站数据就已经在新数据库里了。
步骤 2:修改核心配置文件
这是最关键的一步,目的是让织梦在新环境下找到正确的数据库和路径。
-
修改数据库连接信息 (
common.inc.php)- 使用 FTP 或文件管理器,连接到新服务器。
- 进入
/data/目录,找到common.inc.php文件。注意: 如果这个文件不存在,可能是被重命名为safe_common.inc.php了,你需要修改后者。 - 下载
common.inc.php到本地,用代码编辑器(如 VS Code, Sublime Text, Notepad++)打开它。 - 找到并修改以下几行代码:
//数据库连接信息 $cfg_dbhost = 'localhost'; // 数据库主机,通常是localhost $cfg_dbname = '你的新数据库名'; // 修改为你在新服务器创建的数据库名 $cfg_dbuser = '你的新数据库用户名'; // 修改为你在新服务器创建的数据库用户名 $cfg_dbpwd = '你的新数据库密码'; // 修改为你在新服务器创建的数据库密码 $cfg_dbprefix = 'dede_'; // 数据库表前缀,如果和原来一样就不用改 $cfg_db_language = 'gbk'; // 数据库编码,如果你的原站是utf8,就改成'utf8'
- 保存文件,然后重新上传到
/data/目录,覆盖原文件。
-
修改网站根目录 (
index.php)- 打开网站根目录下的
index.php文件。 - 找到这行代码:
require_once(dirname(__FILE__)."/include/common.inc.php");
- 通常情况下,这行代码不需要修改。 但如果你的网站文件不在Web根目录下,或者路径结构发生了变化,才需要调整
dirname(__FILE__)的路径,对于标准的迁移,保持原样即可。
- 打开网站根目录下的
步骤 3:修改后台目录名(安全起见,建议修改)
为了安全,最好修改后台管理目录的名称,防止被暴力破解。
- 通过 FTP,将
/dede/文件夹重命名为一个你自定义的名称,myadmin/或cmsadmin/。 - 访问你的新网站域名,然后加上
/你的新后台目录名/,http://www.yourdomain.com/myadmin/,尝试登录后台。 - 如果登录失败,可能还需要修改一个文件:打开
/include/vdimgck.php,将其中所有的/dede/替换为你的新后台目录名。
步骤 4:更新网站信息(在后台操作)
登录你的新网站后台,进行最后的设置。
-
进入“系统” -> “系统基本参数”
- 站点根网址: 这是最重要的!修改为你的新域名,
http://www.yourdomain.com。 - 站点名称: 修改为你的新网站名称。
- 检查并修正其他参数,如“主页链接”、“文件保存目录”等。
- 站点根网址: 这是最重要的!修改为你的新域名,
-
(可选但推荐)进入“系统” -> “数据库备份/还原”
点击“一键更新网站缓存”,这可以解决很多因缓存问题导致的奇怪错误。
第三步:常见问题与解决方案
迁移后,最常遇到的就是路径问题。
问题 1:网站首页正常,但点击内页或栏目出现“无法找到该页”或404错误
原因: 数据库中存储的仍然是旧服务器的域名或路径。
解决方案:
-
使用织梦后台的SQL命令行工具(推荐)
-
登录织梦后台。
-
进入“系统” -> “SQL命令行工具”。
-
在命令框中输入以下SQL语句(请将
旧域名.com替换为你的旧域名),然后点击“查询”执行。 -
更新文章内容中的旧域名:
UPDATE `dede_archives` SET `body` = REPLACE(`body`, '旧域名.com', '新域名.com');
注意:
dede_是你的数据库表前缀,如果不是,请自行修改。 -
更新文章中的旧域名(适用于摘要、关键字等):
UPDATE `dede_archives` SET `title` = REPLACE(`title`, '旧域名.com', '新域名.com'); UPDATE `dede_archives` SET `description` = REPLACE(`description`, '旧域名.com', '新域名.com'); UPDATE `dede_addonarticle` SET `body` = REPLACE(`body`, '旧域名.com', '新域名.com'); -- 如果是文章模型
-
更新所有旧域名(适用于全站):
UPDATE `dede_arctype` SET `typelink` = REPLACE(`typelink`, '旧域名.com', '新域名.com'); -- 更新栏目链接 UPDATE `dede_archives` SET `arcurl` = REPLACE(`arcurl`, '旧域名.com', '新域名.com'); -- 更新文章链接(这个字段通常由系统自动生成,手动改可能无效,但可以尝试) -- 一个更全面的替换 UPDATE dede_addonarticle SET body=REPLACE(body,'旧域名.com','新域名.com'); UPDATE dede_arctiny SET title=REPLACE(title,'旧域名.com','新域名.com'); UPDATE dede_arctiny SET description=REPLACE(description,'旧域名.com','新域名.com'); UPDATE dede_feedback SET msg=REPLACE(msg,'旧域名.com','新域名.com'); UPDATE dede_help SET body=REPLACE(body,'旧域名.com','新域名.com'); UPDATE dede_infotag SET title=REPLACE(title,'旧域名.com','新域名.com'); UPDATE dede_news SET body=REPLACE(body,'旧域名.com','新域名.com'); UPDATE dede_news SET title=REPLACE(title,'旧域名.com','新域名.com'); UPDATE dede_soft SET body=REPLACE(body,'旧域名.com','新域名.com'); UPDATE dede_soft SET introduction=REPLACE(introduction,'旧域名.com','新域名.com'); UPDATE dede_special SET content=REPLACE(content,'旧域名.com','新域名.com'); UPDATE dede_special SET description=REPLACE(description,'旧域名.com','新域名.com'); UPDATE dede_sysconfig SET value=REPLACE(value,'旧域名.com','新域名.com'); UPDATE dede_tagindex SET tag=REPLACE(tag,'旧域名.com','新域名.com'); UPDATE dede_taglist SET tag=REPLACE(tag,'旧域名.com','新域名.com');
-
-
使用PHPMyAdmin(备选方案)
- 登录新服务器的 phpMyAdmin。
- 选择你的织梦数据库。
- 点击顶部的“SQL”选项卡。
- 将上面推荐的SQL语句粘贴进去执行,效果和后台工具一样。
问题 2:图片、附件无法显示,路径指向旧服务器
原因: 和问题1一样,数据库中的图片/附件路径是绝对路径,包含了旧域名。
解决方案:
使用上面提到的SQL命令行工具,将数据库中所有包含旧域名的路径替换为新域名,特别是对 dede_addonarticle 等文章模型的 body 字段进行替换,因为里面通常包含 <img src="旧域名.com/..."> 这样的标签。
问题 3:后台登录后跳转到旧域名
原因: 系统基本参数中的“站点根网址”没有更新成功,或者缓存问题。
解决方案:
- 再次检查“系统基本参数”中的“站点根网址”是否正确。
- 进入“系统” -> “系统设置” -> “清除所有缓存”,然后手动删除
/data/cache/目录下的所有缓存文件(除了config.cache.inc.php)。 - 如果还是不行,尝试重新上传并修改
common.inc.php文件。
总结与检查清单
迁移完成后,按以下清单进行检查:
- [ ] 网站首页 是否能正常打开?
- [ ] 后台登录 是否正常,并能成功进入?
- [ ] 文章列表页 和 页 是否能正常访问?
- [ ] 图片 和 附件 是否能正常显示?
- [ ] 首页 和 栏目页 的链接是否都指向新域名?
- [ ] 网站地图 是否正常生成?
- [ ] 搜索功能 是否可用?
完成以上所有步骤并确认无误后,你的织梦CMS二次安装/迁移就成功了!
