dede搬家错误原因是什么?

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

核心思路:搬家三部曲

DedeCMS搬家本质上就是三件事:

dede搬家出现错误
(图片来源网络,侵删)
  1. 文件搬家:把网站所有文件(/dede目录除外)上传到新服务器。
  2. 数据库搬家:把旧网站的数据库导出,再导入到新服务器的数据库中。
  3. 信息修正:修改新网站中的配置文件,使其指向新的数据库和路径。

错误就发生在第三步,或者前两步没有做好导致的第三步失败。


第一步:检查最常见的错误(90%的问题出在这里)

这是最优先要检查的几个地方,能解决大部分问题。

修改 data/common.inc.php 文件

这是DedeCMS的核心配置文件,存放了数据库连接信息,搬家后必须修改它。

  • 找到文件:通过FTP或文件管理器,进入网站的 /data/ 目录,找到 common.inc.php 文件。
  • 下载并编辑:下载这个文件,用记事本或代码编辑器(如VS Code, Sublime Text)打开。
  • 修改以下信息
    // 数据库连接信息
    $cfg_dbhost = 'localhost'; // 数据库主机,通常是localhost,如果不是请填写你的数据库地址
    $cfg_dbname = '你的新数据库名'; // 你在新服务器上创建的数据库名
    $cfg_dbuser = '你的新数据库用户名'; // 新数据库的用户名
    $cfg_dbpwd = '你的新数据库密码'; // 新数据库的密码
    $cfg_dbprefix = 'dede_'; // 数据库表前缀,如果和旧站不同,需要在这里修改,并且要确保数据库导入时也做了相应处理
    $cfg_admindir = 'dede'; // 后台管理目录名,如果你改动了,这里要同步修改
  • 保存并上传:修改后保存,再通过FTP上传回服务器的 /data/ 目录,覆盖原文件。

修改 /dede/ 目录下的配置文件

仅仅修改 data/common.inc.php 是不够的,后台目录的配置也需要更新。

dede搬家出现错误
(图片来源网络,侵删)
  • 找到文件:进入 /dede/ 目录。
  • 检查文件
    • config_update.php:里面也可能包含数据库配置,检查并更新。
    • index.php:在后台登录页面,有时也需要检查数据库连接信息,但通常 common.inc.php 够用了。
  • 修改方法:同上,下载、编辑、上传。

修改网站根目录下的 index.php 文件

这个文件是网站首页的入口,它也可能包含硬编码的路径信息。

  • 找到文件:网站根目录(public_htmlwww 目录)下的 index.php
  • 检查代码:打开文件,找到类似这样的代码:
    require_once (dirname(__FILE__) . "/include/common.inc.php");

    这行代码通常是正确的,因为它使用了 dirname(__FILE__) 来自动获取当前文件所在的目录,但如果你的旧站有特殊修改,这里可能需要调整。

  • 重点检查:确保 include/common.inc.php 这个路径是正确的,在标准DedeCMS结构中,它应该是正确的。

第二步:如果第一步无效,进行深度排查

如果修改了核心配置文件后问题依旧,那么问题可能出在以下几个方面。

检查目录权限

这是导致“500 Internal Server Error”或“无法写入”等错误的常见原因,搬家后,新服务器的目录权限可能与旧服务器不同。

  • 需要设置权限的目录
    • /data/必须可写(755或777,777风险较高,先试755)。
    • /uploads/必须可写(755或777)。
    • /templets/:如果开启了模板缓存,需要可写(755)。
    • /special/:专题目录,需要可写(755)。
    • /html/:生成静态文件的目录,需要可写(755)。
    • /a/目录,需要可写(755)。
  • 如何设置
    • 通过FTP软件:右键点击目录 -> “文件权限” -> 输入 755
    • 通过Linux命令行(SSH登录服务器):chmod -R 755 /path/to/your/dede/dir/data

检查 .htaccess 文件

如果你的网站使用Apache服务器,根目录下的 .htaccess 文件可能包含旧服务器的路径信息。

  • 找到文件:网站根目录下的 .htaccess
  • :查看里面是否有类似 RewriteBase /old_site_path/ 这样的行,如果有,修改为新的路径,RewriteBase /
  • 如果网站使用Nginx:则检查 nginx.conf 或虚拟主机配置文件,看是否有包含旧路径的 rewrite 规则。

检查PHP版本和扩展

新旧服务器的PHP版本或开启的扩展可能不同,导致某些函数不兼容。

  • 检查PHP版本:在网站根目录创建一个 info.php 文件,内容为 <?php phpinfo(); ?>,然后在浏览器访问它,查看PHP版本是否与旧站一致(建议使用7.x版本,避免使用8.0以上版本,可能会有兼容性问题)。
  • 检查关键扩展:确保以下PHP扩展已开启:
    • mysqlimysql (Dede主要使用mysqli)
    • gd (处理图片)
    • curl (远程请求)
    • zip (压缩)

数据库前缀问题

如果你在搬家时修改了数据库表前缀,或者新服务器的数据库前缀与旧站不同,除了修改 common.inc.php,你还需要确保数据库里的所有表名都已更新。

  • 检查方法:登录你的新数据库管理工具(如phpMyAdmin),查看表前缀是否和你 common.inc.php 里设置的一致。
  • 修正方法:如果不一致,需要手动修改所有表的名称,或者在导入数据库前就使用 sed 命令或在phpMyAdmin中批量替换前缀。

第三步:使用DedeCMS自带的“系统基本参数”进行修正

数据库里的一些系统参数也需要更新。

  1. 登录你的DedeCMS后台:http://你的新域名/dede/
  2. 进入“系统” -> “系统基本参数”。
  3. 在左侧菜单选择“核心设置”。
  4. 检查并修改以下几项,确保它们指向新的域名和路径:
    • 网站主页http://你的新域名/
    • 网站根目录/home/你的用户名/public_html/ (填写你的网站在服务器上的绝对路径)
    • CMS安装目录: (如果你的网站就在根目录)
    • 附件目录/uploads/
  5. 保存后,建议去“系统” -> “一键更新网站” -> “更新主页HTML”,看看首页是否能正常生成。

第四步:终极解决方案——使用官方搬家工具

DedeCMS官方提供了一个专门用于搬家的SQL文件,可以自动化地修正数据库中的大部分路径问题。

  1. 下载工具:访问DedeCMS官网或相关资源站,下载“DedeCMS搬家修正工具”,通常是一个SQL文件。
  2. 执行SQL
    • 登录你的新服务器数据库管理工具(phpMyAdmin)。
    • 选择你的数据库。
    • 点击“导入”选项卡。
    • 选择你下载的搬家SQL文件,然后执行。
  3. 工具作用:这个SQL文件会批量更新数据库中所有包含旧域名和旧路径的记录,将其替换为新的信息,这比手动一个个修改要高效和准确得多。

总结与排查清单

如果遇到问题,请按以下清单逐一排查:

  1. [ ] 核心配置:确认 /data/common.inc.php 中的数据库信息100%正确
  2. [ ] 目录权限:确认 /data, /uploads, /html 等关键目录权限为 755
  3. [ ] .htaccess 文件:检查并修正其中的路径规则。
  4. [ ] 数据库前缀:确认数据库表前缀与配置文件中的一致。
  5. [ ] 系统参数:登录后台,检查“系统基本参数”中的网站路径和域名。
  6. [ ] 执行SQL**:运行官方的“搬家修正工具”SQL文件。
  7. [ ] PHP环境**:检查PHP版本和所需扩展是否正常。

按照这个流程,99%的DedeCMS搬家问题都可以得到解决,如果问题依旧存在,请提供具体的错误提示信息,这样我们可以更精准地定位问题。

-- 展开阅读全文 --
头像
织梦如何调用前几篇文章?
« 上一篇 04-24
char加减运算如何实现字符处理?
下一篇 » 04-24

相关文章

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

目录[+]