核心原则
- 备份!备份!备份! 在进行任何操作前,请务必备份所有数据,这是防止灾难性错误的最重要一步。
- 先在新环境测试 如果条件允许,先在新服务器上完成所有配置和测试,确认无误后再切换域名解析。
- 记录环境信息 清晰记录原服务器的PHP版本、MySQL版本、以及PHP开启的扩展(特别是
mysqli、gd、curl等织梦依赖的扩展),以便在新服务器上配置一致的环境。
第一阶段:原服务器准备
步骤 1:备份网站文件
- 通过FTP或SSH登录到原服务器。
- 将整个网站根目录(通常是
public_html,www, 或htdocs)下载到你的本地电脑,确保下载了所有文件和文件夹,包括.htaccess文件。
步骤 2:备份数据库
这是最关键的一步。

(图片来源网络,侵删)
使用织梦后台自带的备份功能(推荐)
- 登录织梦CMS后台。
- 进入 “系统” -> “数据备份/还原”。
- 点击 “选择数据表”,通常全选即可。
- 点击 “开始备份”,织梦会生成一个
.sql文件,并提供下载链接,请务必下载这个文件。 - 额外重要: 在同一页面,找到 “一键还原数据” 下面的 “备份还原的数据”,点击 “下载”,这个文件包含了网站的基本配置信息(如网站名称、URL等),有时在迁移后非常有用。
使用phpMyAdmin(更通用)
- 登录你的服务器控制面板(如cPanel, Plesk),找到phpMyAdmin。
- 选择你的织梦数据库。
- 点击顶部的 “导出” 选项卡。
- 选择 “快速” 模式,或者 “自定义” -> 确保“添加
DROP TABLE/VIEW/PROCEDURE/`FUNCTION””是勾选的,这可以避免新库存在同名表时出错。 - 格式选择 “SQL”,然后点击 “执行”。
- 浏览器会自动下载一个完整的数据库备份文件(
.sql)。
第二阶段:新服务器部署
步骤 1:配置服务器环境
确保新服务器的环境与原服务器兼容或更高。
- Web服务器: Nginx 或 Apache。
- PHP版本: 推荐
2到4之间,织梦DedeCMS 5.7版本对PHP 8.x支持不佳,容易报错,如果使用PHP 8+,需要修改一些代码或使用旧版织梦。 - MySQL版本: 5.6 或更高。
- PHP扩展: 必须开启
mysqli,gd,curl,zip,openssl等。
你可以通过创建一个 info.php 文件(内容为 <?php phpinfo(); ?>)来检查PHP的详细信息和已开启的扩展。

(图片来源网络,侵删)
步骤 2:上传网站文件
- 通过FTP或SSH登录到新服务器。
- 将你在第一阶段下载的网站文件上传到新服务器的网站根目录。
- 重要:检查文件权限。
- 整个网站目录的权限通常设置为
755。 - 网站目录下的
data目录权限必须设置为777(或755,但777最保险,迁移成功后再改回755)。 templets目录及其子目录权限也建议设置为777(同上)。- 所有
.php文件权限设置为644。 - 你可以通过FTP软件的“文件权限”功能或SSH命令
chmod来修改。
- 整个网站目录的权限通常设置为
第三阶段:数据迁移与验证
步骤 1:创建数据库和数据库用户
- 登录新服务器的控制面板,找到数据库管理(如MySQL Databases)。
- 创建一个新的数据库,记下数据库名称(
new_dedecms_db)。 - 创建一个新的数据库用户,并为该用户授予对新数据库的“所有权限”。
- 记下数据库名、用户名和密码。
步骤 2:导入数据库
- 登录新服务器的phpMyAdmin。
- 选择你刚刚创建的新数据库。
- 点击 “导入” 选项卡。
- 点击 “选择文件”,上传你在原服务器导出的
.sql备份文件。 - 点击 “执行”,等待导入完成。
步骤 3:修改配置文件
织梦的核心配置信息存储在两个文件中,这是最容易出错的地方。
-
打开
/data/common.inc.php文件。- 这是最重要的配置文件,里面包含了数据库连接信息。
- 找到并修改以下几行:
//数据库连接信息 $cfg_dbhost = 'localhost'; // 数据库主机,通常是localhost $cfg_dbname = 'new_dedecms_db'; // 修改为你新创建的数据库名 $cfg_dbuser = 'your_new_db_user'; // 修改为你新创建的数据库用户名 $cfg_dbpwd = 'your_new_db_password'; // 修改为你新创建的数据库密码 $cfg_dbprefix = 'dede_'; // 数据库表前缀,如果和原来一样就不用改
-
打开
/include/config_base.php文件(可选,但推荐检查)。- 这个文件也包含了一些网站的全局配置,比如网站路径。
- 检查
$cfg_cmspath和$cfg_userpath等变量是否指向了正确的路径(通常是根目录 )。
-
(重要)修改网站绝对路径:
(图片来源网络,侵删)- 登录织梦后台,进入 “系统” -> “系统基本参数” -> “核心设置”。
- 找到 “网站根目录” 和 “程序目录” 这两项,确保它们的值是正确的(网站根目录是 ,程序目录是 ),如果路径不对,会导致后台图片、附件等无法上传或显示。
步骤 4:修改数据库中的旧域名
织梦的数据库里很多地方都存储了旧的域名,必须批量替换。
-
登录新服务器的phpMyAdmin,选择你的数据库。
-
点击 “SQL” 选项卡,执行以下SQL语句(请将
http://www.old-domain.com替换为你的旧域名,http://www.new-domain.com替换为新域名):-- 替换所有表中的旧域名 UPDATE dede_archives SET body = REPLACE(body, 'http://www.old-domain.com', 'http://www.new-domain.com'); UPDATE dede_archives SET description = REPLACE(description, 'http://www.old-domain.com', 'http://www.new-domain.com'); UPDATE dede_addonarticle SET body = REPLACE(body, 'http://www.old-domain.com', 'http://www.new-domain.com'); -- 持续添加其他需要替换的表和字段... -- 这是一个通用的思路,织梦的表很多,可能需要根据你的实际情况调整。 -- 更简单的方法是使用一个工具,比如DedeCMS自带的“数据库替换”插件,或者使用phpMyAdmin的“搜索并替换”功能(如果有的话)。
更推荐的方法(如果原织梦后台有此功能):
- 登录新织梦后台,进入 “系统” -> “数据库备份/还原”。
- 找到 “数据库内容替换” 功能,输入旧域名和新域名,它会自动扫描所有文本类型的字段并进行替换,这是最安全、最全面的方法。
步骤 5:设置伪静态
如果你的网站使用了URL重写(伪静态),需要在新服务器上重新配置。
- 如果是Apache服务器:
- 将原服务器上的
.htaccess文件上传到新服务器的根目录,织梦默认会生成这个文件,通常包含伪静态规则。
- 将原服务器上的
- 如果是Nginx服务器**:
- 你需要手动配置Nginx的虚拟主机配置文件,将以下规则添加到你的server块中(根据织梦版本可能略有不同):
location / { if (!-e $request_filename) { rewrite "^/([a-z0-9\-]+)/([a-z0-9\-]+)\.html$" /plus/view.php?aid=$1 last; rewrite "^/([a-z0-9\-]+)/([a-z0-9]+)\.html$" /plus/list.php?tid=$1 last; rewrite "^/([a-z0-9\-]+)/$" /plus/list.php?tid=$1 last; rewrite "^/([a-z0-9\-]+)/([a-z0-9]+)\.html$" /plus/view.php?tid=$1&keyword=$2 last; } } - 修改后,需要重启Nginx服务:
sudo systemctl restart nginx
- 你需要手动配置Nginx的虚拟主机配置文件,将以下规则添加到你的server块中(根据织梦版本可能略有不同):
第四阶段:最终验证与切换
-
本地Hosts文件测试(可选但推荐):
- 在你的本地电脑上,找到
hosts文件(Windows在C:\Windows\System32\drivers\etc\,Mac/Linux在/etc/)。 - 添加一行:
新服务器IP www.yourdomain.com - 这样你就可以通过访问
www.yourdomain.com来直接访问新服务器上的网站,而无需等待DNS生效。
- 在你的本地电脑上,找到
-
全面测试:
- 访问网站首页,检查是否正常显示。
- 访问几个栏目页和文章页,检查链接是否正确。
- 尝试发布一篇新文章,看是否能成功。
- 尝试上传一张图片,看是否能正常显示。
- 登录后台,检查各项功能是否正常。
-
修改DNS并关闭旧服务器:
- 确认新网站一切正常后,登录你的域名注册商网站,将域名的A记录修改为新服务器的IP地址。
- DNS生效通常需要几分钟到48小时,在此期间,两个网站可能同时在线。
- 等待DNS完全生效后,你就可以安全地关闭或删除旧服务器上的所有文件和数据库了。
常见问题与解决方案
-
问题1:网站首页能打开,但所有栏目页和文章页都404。
- 原因:伪静态规则未配置或配置错误。
- 解决:检查新服务器的
.htaccess文件(Apache)或Nginx配置,确保伪静态规则正确无误,并已重启Web服务。
-
问题2:后台登录后,页面样式丢失或显示错乱。
- 原因:
/data或/templets目录权限不足,导致无法读取CSS和模板文件。 - 解决:将这两个目录的权限设置为
777,或者至少确保Web服务器运行的用户(如www-data,nginx,apache)有读写权限。
- 原因:
-
问题3:数据库连接错误。
- 原因:
/data/common.inc.php文件中的数据库信息(主机、用户名、密码、数据库名)填写错误。 - 解决:仔细检查并核对
common.inc.php文件中的每一项配置,确保与你在新服务器上创建的数据库信息完全一致。
- 原因:
-
问题4:图片和附件无法显示或上传。
- 原因:网站绝对路径配置错误,或上传目录权限不足。
- 解决:
- 进入后台“系统基本参数”检查“网站根目录”是否正确。
- 检查
/uploads等上传目录的权限是否为777。
-
问题5:迁移后网站非常卡顿。
- 原因:新服务器性能较差,或PHP配置(如
memory_limit)过低。 - 解决:联系你的VPS/主机提供商,检查服务器资源使用情况,并适当调整PHP的
memory_limit、max_execution_time等参数。
- 原因:新服务器性能较差,或PHP配置(如
遵循以上步骤,你就可以顺利完成织梦CMS的服务器迁移工作,祝你迁移顺利!
