织梦 搬家后打开空白

99ANYc3cd6
预计阅读时长 15 分钟
位置: 首页 织梦建站 正文

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

织梦 搬家后打开空白
(图片来源网络,侵删)

下面我为你提供一个从易到难、从最常见到少见的完整排查流程,请务必按照顺序操作。


第一步:检查并修复 data 目录权限 (最常见)

织梦系统需要写入一些临时数据或缓存文件,这些文件通常存储在 /data 目录下,搬家后,这个目录的权限可能被错误地设置,导致无法写入,从而引发空白页面。

  1. 通过FTP或文件管理器登录 你的新服务器。
  2. 找到你的网站根目录(通常是 public_htmlwww)。
  3. 找到并选中 data 目录。
  4. 修改权限
    • Linux服务器:将权限设置为 755777(777是最高权限,如果755不行,可以临时设为777来测试,但出于安全考虑,问题解决后应改回755)。
    • Windows服务器:确保IIS用户(如 IUSR)对该目录有“读取和写入”的权限。

完成这一步后,刷新你的网站,看看是否恢复正常,如果还是空白,请继续下一步。


第二步:检查并更新核心配置文件 (核心问题)

这是最关键的一步,也是导致空白页面的最主要原因,你需要修改两个核心配置文件,将旧服务器的信息替换为新服务器的信息。

织梦 搬家后打开空白
(图片来源网络,侵删)

操作前:强烈建议先备份这两个文件!

  1. 登录FTP或文件管理器,进入网站根目录。
  2. 找到并修改以下两个文件:

/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 文件本身在搬家过程中可能被损坏或丢失了。

  1. 通过FTP检查:确保你的网站根目录下有 index.php 文件。
  2. :用编辑器打开 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的错误报告。

  1. 在你的网站根目录下创建一个新文件,命名为 debug.php

  2. 将下面的代码复制并粘贴到 debug.php 中:

    <?php
    // 开启所有错误报告
    error_reporting(E_ALL);
    // 显示错误
    ini_set('display_errors', 1);
    // 尝试加载织梦
    require_once (dirname(__FILE__) . "/include/common.inc.php");
    echo "如果能看到这句话,说明配置基本正确,问题可能在其他地方。";
    ?>
  3. 保存文件并通过浏览器访问 http://你的新域名.com/debug.php

  4. 你会看到两种情况

    • 看到一大段红色的英文错误信息:恭喜你!问题找到了,根据错误信息(Fatal error: Uncaught Error: Call to undefined function... 或者 Access denied for user...),直接去搜索引擎搜索这个错误,或者根据这个错误信息回头检查第二步的数据库配置是否正确。
    • 依然空白,或者只看到 "如果能看到这句话...":这说明织梦的核心文件已经可以运行了,问题可能在模板或其他地方,请继续下一步。

第五步:检查模板和缓存

  1. 清空缓存
    • 通过FTP删除 /data/cache 目录下的所有文件(可以保留目录本身)。
    • 登录织梦后台,在“系统” -> “系统基本参数” -> “性能选项”里,清空所有缓存。
  2. 检查模板
    • 登录织梦后台,检查“模板” -> “默认模板管理”,看看首页模板(通常是 index.htm)是否存在,并且路径是否正确。
    • 如果你修改过模板,可能是某个模板标签有误,可以尝试临时将模板文件换成织梦默认的模板文件进行测试。

第六步:检查PHP版本和扩展 (最后手段)

极少数情况下,你旧服务器上的PHP版本是5.6,而新服务器是7.4或更高版本,织梦的某些函数在新版本中被废弃或移除了,导致无法运行。

  1. 检查PHP版本:在 debug.php 文件里添加一行 echo phpinfo();,然后访问这个页面,查看顶部的 "PHP Version"。
  2. 对比版本:如果你的旧服务器是PHP 5.x,新服务器是PHP 7.x或8.x,这就是问题所在。
  3. 解决方案
    • 最佳方案:联系你的主机服务商,将网站的PHP版本切换到与旧服务器一致的版本(例如PHP 7.2或7.3,对织梦兼容性较好)。
    • 次选方案:修改织梦的源代码来适配新PHP版本(这需要一定的技术能力,不推荐新手尝试)。

总结与建议

绝大多数情况下,问题都出在第一步的 data 目录权限和第二步的 common.inc.php 配置文件上,请务必先集中精力排查这两项。

如果以上所有步骤都无法解决问题,可以提供以下信息,以便更精准地定位问题:

  1. 访问 debug.php 后看到的错误信息(截图或复制文字)
  2. 你的服务器环境:是Linux还是Windows?PHP版本是多少?
  3. 你是如何搬家的:是直接用FTP传文件,还是用了专门的搬家工具?数据库是手动导导入的吗?

希望这个详细的指南能帮助你解决问题!

-- 展开阅读全文 --
头像
织梦文章信息模板如何修改?
« 上一篇 03-31
织梦会员如何发布文章?
下一篇 » 03-31

相关文章

取消
微信二维码
支付宝二维码

目录[+]