下面我将为你提供一个详细、分步、且包含关键注意事项的织梦网站迁移指南,这个指南适用于将网站从一台服务器迁移到另一台服务器,或者在同一台服务器上更换域名/路径。

(图片来源网络,侵删)
核心思想
织梦迁移的核心在于同步修改三处的“地址”:
- 数据库中的地址:网站的文章、图片、栏目等都存储在数据库里,里面包含了大量的旧域名或旧路径。
- 配置文件中的地址:
data/common.inc.php文件存储了数据库连接信息和网站的基本配置。 - 网站程序文件中的地址:虽然大部分动态页面地址由数据库和配置决定,但一些静态生成的文件、模板文件或缓存文件中也可能硬编码了路径。
迁移前准备
-
获取新旧服务器信息:
- 旧服务器:FTP/SFTP主机、用户名、密码;数据库主机、数据库名、数据库用户名、数据库密码。
- 新服务器:FTP/SFTP主机、用户名、密码;数据库主机、数据库名、数据库用户名、数据库密码(如果新主机没有提供,你需要先创建一个)。
- 新旧域名:确认你的新域名,并确保它已经解析到新服务器的IP地址。
-
打包备份(非常重要!):
- 备份网站程序文件:通过FTP/SFTP连接到旧服务器,将你网站的所有文件下载到本地,通常是网站根目录下的所有内容(
public_html或www目录)。 - 备份数据库:
- 登录你的旧服务器空间的管理面板(如 cPanel, Plesk)。
- 找到“数据库管理”工具(如 phpMyAdmin)。
- 选择你的织梦数据库。
- 点击“导出”,选择“快速”或“自定义”,格式选择“SQL”,然后执行下载,你会得到一个
.sql文件。
- 备份网站程序文件:通过FTP/SFTP连接到旧服务器,将你网站的所有文件下载到本地,通常是网站根目录下的所有内容(
强烈建议:在操作前,将备份文件(网站程序包和数据库
.sql文件)妥善保存,以防万一。(图片来源网络,侵删)
迁移步骤
第一步:上传网站文件到新服务器
- 使用FTP/SFTP工具连接到你的新服务器。
- 将你在本地备份的整个网站程序文件上传到新服务器的网站根目录(
public_html)。 - 确保所有文件的权限设置正确,目录权限设为
755,文件权限设为644。data目录可能需要设置为777或755(视服务器环境而定,777是最保险但最不安全的设置,迁移成功后改回755)。
第二步:在新服务器上创建数据库并导入数据
- 登录新服务器的管理面板(如 cPanel)。
- 创建一个新的数据库,并记下数据库名。
- 创建一个新的数据库用户,并将该用户权限赋予你刚刚创建的数据库,记下数据库用户名和密码。
- 进入 phpMyAdmin,选择你新创建的空数据库。
- 点击“导入”,选择你之前备份的
.sql文件,然后执行,等待导入完成。
第三步:修改数据库中的地址(最关键的一步)
织梦数据库中存储了大量绝对路径和域名,必须全部替换。
- 登录新服务器的 phpMyAdmin,选择你刚刚导入数据的那个数据库。
- 点击顶部的“SQL”标签,进入SQL查询页面。
- 执行以下 SQL 语句,将
旧域名和旧路径替换为你的新域名和新路径。
SQL 替换语句模板:
-- 替换数据库中所有的旧域名为新域名 UPDATE dede_archives SET body = REPLACE(body, 'http://www.旧域名.com', 'http://www.新域名.com'); UPDATE dede_addonarticle SET body = REPLACE(body, 'http://www.旧域名.com', 'http://www.新域名.com'); UPDATE dede_arctype SET typename = REPLACE(typename, 'http://www.旧域名.com', 'http://www.新域名.com'); UPDATE dede_arctype set description = REPLACE(description, 'http://www.旧域名.com', 'http://www.新域名.com'); UPDATE dede_arctype set keywords = REPLACE(keywords, 'http://www.旧域名.com', 'http://www.新域名.com'); -- ... 其他包含内容的表,根据你的模型(如图集、软件等)进行替换 -- dede_addonsoft, dede_addonimages 等 -- 替换数据库中所有的旧路径为新路径 (如果你的网站根目录变了,比如从 /home/old 移动到 /home/new) UPDATE dede_archives SET redirecturl = REPLACE(redirecturl, '/旧路径/', '/新路径/'); UPDATE dede_arctype set typedir = REPLACE(typedir, '/旧路径/', '/新路径/'); -- ... 其他包含路径的表 -- 替换系统配置中的站点地址 UPDATE dede_sysconfig SET value = REPLACE(value, 'http://www.旧域名.com', 'http://www.新域名.com') WHERE varname = 'cfg_basehost';
注意:
dede_是织梦数据库表的前缀,如果你的网站修改了表前缀,请相应更改。- SQL语句是常用示例,你可能需要根据自己网站的具体情况(比如安装了哪些插件、使用了哪些附加表)来增删修改,最稳妥的方法是导出数据库,用文本编辑器的“查找替换”功能批量处理,然后再导入。
第四步:修改配置文件
- 通过FTP/SFTP,找到新服务器上的
/data/common.inc.php文件。 - 下载并编辑它,修改以下几项信息:
<?php //数据库连接信息 $cfg_dbhost = 'localhost'; // 数据库主机,通常是 localhost $cfg_dbname = '你的新数据库名'; // 新数据库名 $cfg_dbuser = '你的新数据库用户名'; // 新数据库用户名 $cfg_dbpwd = '你的新数据库密码'; // 新数据库密码 $cfg_dbprefix = 'dede_'; // 数据库表前缀,确保和旧站一致 $cfg_ckpath = '/'; // Cookie 作用路径,如果网站在根目录,通常是 / $cfg_basehost = 'http://www.新域名.com'; // 这里改成你的新域名! $cfg_indexurl = 'http://www.新域名.com/'; // 这里也改成你的新域名! ?>
- 保存并上传覆盖
/data/common.inc.php文件。
第五步:检查和修正静态文件路径
如果你的网站开启了“生成HTML”,那么文章、栏目等都是以静态文件形式存在的,这些文件内部可能也包含了旧路径。

(图片来源网络,侵删)
-
重新生成全站:
- 登织梦后台。
- 进入“生成” -> “一键更新网站”。
- 勾选“更新所有栏目HTML”、“更新所有文档HTML”等所有选项。
- 点击“开始执行”,这一步会根据数据库中已经修正过的新域名,重新生成所有静态页面,确保它们指向正确的地址。
-
检查图片等附件:
有时图片路径可能没有在第三步的SQL中被完全替换,手动检查几篇旧文章,看图片是否能正常显示,如果不行,可能需要重复第三步的SQL操作,或者检查附件上传的配置。
迁移后检查与清理
- 前台访问:在浏览器中输入你的新域名,检查网站首页、栏目页、文章页是否正常显示,图片、CSS、JS样式是否丢失。
- 后台登录:访问
你的新域名/dede/,尝试用旧账号密码登录,如果失败,检查data/common.inc.php中的数据库信息是否正确。 - 功能测试:测试搜索、评论、表单提交等动态功能是否正常。
- 清理旧服务器:确认新网站一切正常后,再删除旧服务器上的文件和数据库,避免产生额外费用或安全风险。
- 恢复目录权限:将
data目录的权限从777改回755,这是服务器安全的基本要求。
常见问题与解决方案
-
问题1:后台登录提示“验证码错误”或直接跳转到登录页。
- 原因:
data目录权限不正确,导致无法生成safeconfig.php等安全文件。 - 解决:确保
data目录权限为755或777(临时),并保证其可写。
- 原因:
-
问题2:网站首页能打开,但点击栏目或文章出现404错误。
- 原因:URL重写(伪静态)规则未正确配置,或者静态文件路径错误。
- 解决:
- 登录后台,进入“系统” -> “系统基本参数” -> “核心设置”,检查“是否使用伪静态”选项是否开启。
- 将旧服务器上的
.htaccess文件(如果存在)复制到新服务器的根目录。 - 执行“第五步:重新生成全站”。
-
问题3:图片显示不出来,但文字正常。
- 原因:数据库中的图片路径或附件配置未更新。
- 解决:重新执行第三步的SQL替换语句,特别是针对
body字段的替换,检查后台“系统” -> “附件设置”中的上传目录是否正确。
遵循以上步骤,你的织梦网站迁移过程应该会比较顺利。备份是第一步,也是最关键的一步。

