dede搬家后内容消失,原因何在?

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

别担心,按照以下步骤逐一排查,绝大多数问题都能解决,问题主要集中在数据库配置网站根目录路径上。

dede网站搬家后为什么都没有内容呢
(图片来源网络,侵删)

核心原因分析

您的网站内容分为两部分:

  1. 静态文件:HTML页面、图片、CSS、JS等,这些是实实在在的文件,存放在您服务器的某个文件夹里(网站根目录)。
  2. 数据库:存放了网站的所有动态信息,比如文章标题、内容、作者、栏目分类,以及最重要的——对应的静态文件路径

搬家时,您把这两部分都搬到了新的服务器,数据库里记录的路径还是旧服务器上的路径,当新服务器上的网站去读取数据库时,它根据旧路径去找文件,自然就找不到了,所以页面就会显示空白、错乱或者“没有内容”。


详细排查与解决步骤(按优先级排序)

请严格按照以下步骤操作,每一步都确认无误后再进行下一步。

第一步:检查数据库配置文件 (data/common.inc.php)

这是最最关键的一步,也是90%的问题所在,这个文件存储了连接数据库的所有信息。

dede网站搬家后为什么都没有内容呢
(图片来源网络,侵删)
  1. 找到文件:通过FTP或文件管理器,登录到您的新服务器,进入DedeCMS的根目录,找到 data/common.inc.php 文件。

  2. :用文本编辑器(如Notepad++, Sublime Text,不要用记事本)打开这个文件,检查并修改以下几行:

    //数据库连接信息
    $_cfg['db_host'] = 'localhost'; // 数据库主机,通常保持 'localhost' 不变
    $_cfg['db_user'] = '新的数据库用户名'; // 修改为你在新服务器上创建的数据库用户名
    $_cfg['db_pass'] = '新的数据库密码'; // 修改为你在新服务器上创建的数据库密码
    $_cfg['db_name'] = '新的数据库名'; // 修改为你在新服务器上创建的数据库名
    $_cfg['db_prefix'] = 'dede_'; // 数据库表前缀,如果搬家前后缀不同,这里要改
    $_cfg['db_language'] = 'gbk'; // 或 'utf-8',确保编码一致
    //网站根目录信息
    $_cfg['cfg_basehost'] = 'http://你的新域名.com'; // 修改为你的新域名,**必须带 http:// 或 https://**
    $_cfg['cfg_cmspath'] = '/'; // 网站在服务器上的根目录,通常为 '/',如果你的网站在子目录,则写 '/子目录名/'
  3. 保存并上传:修改完成后,保存文件,然后通过FTP重新上传到服务器的 data/ 目录下,覆盖原文件。

特别注意

dede网站搬家后为什么都没有内容呢
(图片来源网络,侵删)
  • 域名cfg_basehost 必须填写完整的新域名,包括 http://https://
  • 路径cfg_cmspath 是网站在服务器上的物理路径,如果网站直接放在根目录下,,如果放在 /blog/ 目录下,/blog/,这个错误会导致网站所有链接地址错误。

第二步:更新数据库中的网站路径

即使第一步修改了配置文件,数据库里存储的文章、栏目等的路径可能还是旧的,你需要执行一个SQL语句来批量替换。

  1. 登录phpMyAdmin:通过您的主机控制面板进入phpMyAdmin,选择你的DedeCMS数据库。

  2. 执行SQL查询:点击顶部的 "SQL" 选项卡。

  3. 输入替换命令:在文本框中输入以下命令,然后点击“执行”。

    -- 将旧域名替换为新域名
    UPDATE dede_archives SET redirecturl=REPLACE(redirecturl, 'http://你的旧域名.com', 'http://你的新域名.com');
    UPDATE dede_archives SET url=REPLACE(url, 'http://你的旧域名.com', 'http://你的新域名.com');
    -- 将旧目录路径替换为新目录路径
    -- 如果你的网站从 /olddir/ 搬到 /newdir/,或者从根目录 / 搬到 /blog/
    UPDATE dede_archives SET filepath=REPLACE(filepath, '你的旧网站目录', '你的新网站目录');
    UPDATE dede_arctype SET typedir=REPLACE(typedir, '你的旧网站目录', '你的新网站目录');
    UPDATE dede_arctype SET sitepath=REPLACE(sitepath, '你的旧网站目录', '你的新网站目录');
    UPDATE dede_arctype SET defaultname=REPLACE(defaultname, '你的旧网站目录', '你的新网站目录');
    UPDATE dede_feedback SET msg=REPLACE(msg, '你的旧网站目录', '你的新网站目录');

如何填写命令

  • http://你的旧域名.com 替换为你搬家前的完整域名。
  • http://你的新域名.com 替换为你搬家后的完整域名。
  • 你的旧网站目录你的新网站目录 替换为实际的路径,从 /home/oldsite/ 搬到 /home/newsite/,如果都是根目录,可以不执行这部分,或者把 替换成 。

第三步:重新生成网站

更新数据库后,网站可能还需要重新生成静态文件才能正常显示。

  1. 登录DedeCMS后台:使用你的管理员账号登录网站后台。
  2. 进入“生成”:在左侧菜单栏找到“系统” -> “生成” -> “一键更新网站”。
  3. 执行更新
    • 先点击“更新主页HTML”。
    • 然后点击“更新栏目HTML”。
    • 最后点击“更新文档HTML”。
    • 如果栏目和文章非常多,这个过程可能会比较慢,请耐心等待,不要刷新或关闭页面。

这个步骤会根据数据库里最新的信息,重新创建所有的HTML页面。


其他可能的原因(如果以上步骤无效)

如果按照前三步操作后问题依旧,请检查以下几点:

  1. 目录权限问题

    • 确保网站根目录以及其下的 data/uploads/templets/ 等目录的权限设置正确。
    • 通常Linux服务器下,目录权限设置为 755,文件权限设置为 644
    • data/ 目录的权限可以设置为 777(为了安全,生成完后再改回755),或者确保Web服务器用户(如 www-data, nginx, apache)有写入权限。
  2. index.php 文件缺失或错误

    • 检查网站根目录下是否存在 index.php 文件,并且内容正确,这个文件是网站入口。
  3. robots.txt.htaccess 文件

    • 检查根目录下是否有 robots.txt 文件,它可能禁止了搜索引擎抓取,但通常不影响直接访问。
    • 检查 .htaccess 文件(如果存在),里面的重定向规则可能指向了旧域名或旧路径,需要修改。
  4. 服务器环境问题

    • PHP版本:检查新服务器的PHP版本是否与旧服务器兼容,或者是否满足DedeCMS的要求。
    • 数据库版本:检查MySQL/MariaDB版本是否兼容。
  5. 缓存问题

    • 清空浏览器缓存,使用无痕模式访问网站。
    • 有些DedeCMS版本有后台缓存,可以在后台“系统” -> “系统设置” -> “系统基本参数” -> “性能选项”中清空缓存。

总结与排查清单

问题步骤 检查要点 解决方法
数据库配置 data/common.inc.php 文件中的数据库信息、域名、路径是否正确。 修改并保存上传该文件。
数据库中的文章、栏目等记录的URL和路径是否还是旧的。 在phpMyAdmin中执行SQL批量替换。
重新生成 后台是否执行了重新生成静态文件的步骤。 在后台“一键更新网站”中重新生成。
目录权限 网站目录和文件权限是否正确。 修改目录权限为755,文件为644。
文件完整性 index.php 等关键文件是否缺失或损坏。 从原备份中恢复或重新上传。
服务器环境 PHP和数据库版本是否兼容。 联系主机商确认或调整环境。

建议您从第一步开始,一步一步地排查,绝大多数情况下,问题都会在前三步得到解决,祝您搬家顺利!

-- 展开阅读全文 --
头像
如何删除dede编辑器自动添加的div?
« 上一篇 12-07
不懂网站,选织梦还是CMS更合适?
下一篇 » 12-07

相关文章

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

目录[+]