问题的根源几乎可以肯定出在 网站配置文件 没有正确更新,织梦CMS的核心是PHP,而PHP在运行网站时,需要读取一些关键的配置文件来告诉它数据库在哪里、网站叫什么名字等信息,搬家后,这些信息(尤其是数据库信息)已经变了,但配置文件里还是旧的,所以程序无法启动,直接显示空白。

下面我为你提供一个从易到难、从最常见到少见的完整排查流程,请务必按照顺序操作。
第一步:检查并修复 data 目录权限 (最常见)
织梦系统需要写入一些临时数据或缓存文件,这些文件通常存储在 /data 目录下,搬家后,这个目录的权限可能被错误地设置,导致无法写入,从而引发空白页面。
- 通过FTP或文件管理器登录 你的新服务器。
- 找到你的网站根目录(通常是
public_html或www)。 - 找到并选中
data目录。 - 修改权限:
- Linux服务器:将权限设置为 755 或 777(777是最高权限,如果755不行,可以临时设为777来测试,但出于安全考虑,问题解决后应改回755)。
- Windows服务器:确保IIS用户(如 IUSR)对该目录有“读取和写入”的权限。
完成这一步后,刷新你的网站,看看是否恢复正常,如果还是空白,请继续下一步。
第二步:检查并更新核心配置文件 (核心问题)
这是最关键的一步,也是导致空白页面的最主要原因,你需要修改两个核心配置文件,将旧服务器的信息替换为新服务器的信息。

操作前:强烈建议先备份这两个文件!
- 登录FTP或文件管理器,进入网站根目录。
- 找到并修改以下两个文件:
/data/common.inc.php
这个文件是织梦的全局核心配置文件,里面包含了最重要的数据库连接信息。
-
用代码编辑器(如Notepad++, VS Code, Sublime Text等,不要用Windows记事本)打开它。
-
找到并修改下面这几行:
//数据库连接信息 $_cfg['db_host'] = 'localhost'; // 数据库主机地址,通常是localhost,如果不是,请填写你的新数据库地址 $_cfg['db_user'] = '你的新数据库用户名'; // 数据库用户名 $_cfg['db_pass'] = '你的新数据库密码'; // 数据库密码 $_cfg['db_name'] = '你的新数据库名'; // 数据库名 $_cfg['db_prefix'] = 'dede_'; // 数据库表前缀,如果你搬家时没有改过,这里通常不用动
-
特别注意:
db_host:99%的情况是localhost,但有些虚拟主机或云服务器会提供一个独立的数据库IP地址,请务必确认。db_user,db_pass,db_name:这些信息需要从你的新主机服务商提供的数据库信息中获取,千万不要用旧的。
/include/config_base.php
这个文件是网站的基础路径配置,有时候网站路径变了也需要更新。
-
用同样的编辑器打开它。
-
找到并修改下面这几行:
//网站根目录 $_cfg['cfg_basehost'] = 'http://你的新域名.com'; // 你的新网站域名,**必须包含 http:// 或 https://** $_cfg['cfg_cmspath'] = '/你的网站目录'; // 如果你的网站在根目录下,这里是 '/';如果在子目录如 `/cms` 下,这里是 '/cms'
-
特别注意:
cfg_basehost:务必填写完整,包括http://或https://,很多人会漏掉这个,导致网站无法正确加载CSS和JS文件,看起来也是“空白”。cfg_cmspath:确认你的网站在新服务器上的路径是否和旧服务器一样,如果一样,通常不用改。
修改完这两个文件后,保存并上传回服务器,然后刷新网站。
第三步:检查并修复 index.php
index.php 文件本身在搬家过程中可能被损坏或丢失了。
- 通过FTP检查:确保你的网站根目录下有
index.php文件。 - :用编辑器打开
index.php应该非常简单,通常只有几行:<?php require_once (dirname(__FILE__) . "/include/common.inc.php"); require_once DEDEINC."/arc.partview.class.php"; $GLOBALS['_arclistEnv'] = 'index'; $row = $dsql->GetOne("Select * From `dede_homepageset`"); $pv = new PartView(); $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']); $pv->Display(); ?>为空或者乱码,说明文件损坏了,你需要从一个完好的织梦程序包中找到这个文件,覆盖上传上去。
第四步:开启错误报告,查看具体错误信息 (高级排查)
如果以上三步都做了,网站依然是空白,说明可能存在一些隐藏的PHP错误,为了看到具体的错误原因,我们需要临时开启PHP的错误报告。
-
在你的网站根目录下创建一个新文件,命名为
debug.php。 -
将下面的代码复制并粘贴到
debug.php中:<?php // 开启所有错误报告 error_reporting(E_ALL); // 显示错误 ini_set('display_errors', 1); // 尝试加载织梦 require_once (dirname(__FILE__) . "/include/common.inc.php"); echo "如果能看到这句话,说明配置基本正确,问题可能在其他地方。"; ?> -
保存文件并通过浏览器访问
http://你的新域名.com/debug.php。 -
你会看到两种情况:
- 看到一大段红色的英文错误信息:恭喜你!问题找到了,根据错误信息(
Fatal error: Uncaught Error: Call to undefined function...或者Access denied for user...),直接去搜索引擎搜索这个错误,或者根据这个错误信息回头检查第二步的数据库配置是否正确。 - 依然空白,或者只看到 "如果能看到这句话...":这说明织梦的核心文件已经可以运行了,问题可能在模板或其他地方,请继续下一步。
- 看到一大段红色的英文错误信息:恭喜你!问题找到了,根据错误信息(
第五步:检查模板和缓存
- 清空缓存:
- 通过FTP删除
/data/cache目录下的所有文件(可以保留目录本身)。 - 登录织梦后台,在“系统” -> “系统基本参数” -> “性能选项”里,清空所有缓存。
- 通过FTP删除
- 检查模板:
- 登录织梦后台,检查“模板” -> “默认模板管理”,看看首页模板(通常是
index.htm)是否存在,并且路径是否正确。 - 如果你修改过模板,可能是某个模板标签有误,可以尝试临时将模板文件换成织梦默认的模板文件进行测试。
- 登录织梦后台,检查“模板” -> “默认模板管理”,看看首页模板(通常是
第六步:检查PHP版本和扩展 (最后手段)
极少数情况下,你旧服务器上的PHP版本是5.6,而新服务器是7.4或更高版本,织梦的某些函数在新版本中被废弃或移除了,导致无法运行。
- 检查PHP版本:在
debug.php文件里添加一行echo phpinfo();,然后访问这个页面,查看顶部的 "PHP Version"。 - 对比版本:如果你的旧服务器是PHP 5.x,新服务器是PHP 7.x或8.x,这就是问题所在。
- 解决方案:
- 最佳方案:联系你的主机服务商,将网站的PHP版本切换到与旧服务器一致的版本(例如PHP 7.2或7.3,对织梦兼容性较好)。
- 次选方案:修改织梦的源代码来适配新PHP版本(这需要一定的技术能力,不推荐新手尝试)。
总结与建议
绝大多数情况下,问题都出在第一步的 data 目录权限和第二步的 common.inc.php 配置文件上,请务必先集中精力排查这两项。
如果以上所有步骤都无法解决问题,可以提供以下信息,以便更精准地定位问题:
- 访问
debug.php后看到的错误信息(截图或复制文字)。 - 你的服务器环境:是Linux还是Windows?PHP版本是多少?
- 你是如何搬家的:是直接用FTP传文件,还是用了专门的搬家工具?数据库是手动导导入的吗?
希望这个详细的指南能帮助你解决问题!
