织梦搬家后 不能更新

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

第一步:检查最核心的配置文件

这是90%以上搬家问题的根源,织梦的核心配置文件是 data/common.inc.php

  1. 找到并下载 data/common.inc.php 文件

    • 这个文件通常位于你的网站根目录下的 data 文件夹里。
  2. 检查并修改以下关键配置

    • 数据库连接信息:这是最需要检查的地方,打开文件,找到类似下面的代码,并确保你的新服务器信息完全正确。

      //数据库连接信息
      $cfg_dbhost = 'localhost'; // 数据库主机,通常是 localhost,如果不是,请填写你的数据库地址
      $cfg_dbname = '你的数据库名'; // 你在新服务器上创建的数据库名
      $cfg_dbuser = '你的数据库用户名'; // 你在新服务器上的数据库用户名
      $cfg_dbpwd = '你的数据库密码'; // 你在新服务器上的数据库密码
      $cfg_dbprefix = 'dede_'; // 数据库表前缀,确保和旧服务器上的一样,如果改了,这里也要改

      特别注意

    • $cfg_dbhost:有些虚拟主机或云服务器不使用 localhost,而是提供一个具体的数据库IP地址或域名,请务必从你的新服务器服务商那里获取正确的值。

    • 数据库名、用户名、密码:这些是你在新服务器上创建数据库和用户时填写的,必须完全匹配。

    • $cfg_dbprefix:如果你在搬家时修改了表前缀,这里必须同步修改,如果没改,就保持和原来一样。

    • 网站根目录路径:织梦需要知道它安装在服务器的哪个位置,检查下面这个变量是否正确。

      $cfg_cmspath = '/你的网站根目录'; // /home/wwwroot/yourdomain.com 或 /public_html

      如何获取正确路径?

    • 通过FTP/SFTP登录:登录你的新服务器,查看你当前所在的文件夹路径,通常就是网站的根目录。

    • 通过服务器控制面板:如 cPanel、宝塔面板等,在文件管理器里可以看到当前路径。

    • 通过PHP探针:如果你有安装PHP探针(如phpinfo.php),它通常会显示 DOCUMENT_ROOT,这就是你的网站根目录。

    • 网站URL:确保网站地址指向了新的域名。

      $cfg_basehost = 'http://www.yourdomain.com'; // 你的新网站域名,请包含 http:// 或 https://
      $cfg_indexurl = 'http://www.yourdomain.com/';
  3. 保存并上传:修改完毕后,保存文件,并通过FTP/SFTP重新上传到服务器的 /data/ 目录下,覆盖原文件


第二步:检查文件和目录权限

织梦在更新、生成HTML、上传附件等操作时,需要写入服务器上的文件和目录,如果权限不正确,就会失败。

  1. 通过FTP/SFTP连接服务器

  2. 设置以下目录和文件的权限为 755 或 777(如果755不行,可以尝试777,但777有安全风险,操作后记得改回755)。

    • 整个网站根目录
    • /data/ 目录(非常重要!)
    • /templets/ 目录
    • /uploads/ 目录
    • /special/ 目录
    • /html/ 目录
    • /a/ 目录
    • /plus/ 目录
    • /include/ 目录
    • /static/ 目录
    • 以及这些目录下的所有子目录和文件。

    宝塔面板用户:可以在“文件”管理器中右键点击目录,选择“权限”,然后输入数字即可。 Linux命令行用户:可以使用 chmod -R 755 目录名 命令。


第三步:检查数据库

如果你只是把程序文件传了过去,但没有把旧服务器的数据库导入到新服务器,那网站是无法运行的。

  1. 确认数据库已导入:登录你的新服务器数据库管理工具(如phpMyAdmin),确认你之前导出的数据库文件已经成功导入,并且里面的数据是完整的。
  2. 检查数据表前缀:在phpMyAdmin中,浏览你的数据库,确认所有数据表的前缀(如 dede_archives, dede_arctype)和你修改的 $cfg_dbprefix 是否一致,如果不一致,要么修改配置文件,要么重新导入一个已经修改过前缀的数据库备份。

第四步:检查服务器环境差异

新旧服务器的PHP版本、函数支持、安全设置(如open_basedirsafe_mode)不同,也会导致问题。

  1. PHP版本:检查旧服务器和新服务器的PHP版本是否一致,如果旧服务器是PHP 7.0,新服务器是PHP 8.0,可能会有不兼容的函数。
  2. 禁用函数:联系你的主机商,确认新服务器没有禁用织梦更新所需的PHP函数,常见的有 fsockopen, pfsockopen, curl_exec 等,你可以在网站根目录创建一个 phpinfo.php 文件,内容为 <?php phpinfo(); ?>,然后访问它来查看详细的环境信息。
  3. open_basedir 限制:这个设置会限制PHP脚本只能访问特定目录,如果设置不当,织梦可能无法读取或写入某些文件,检查phpinfo.php的输出中是否有 open_basedir 项,确保它包含了你的网站根目录。

第五步:清除缓存和重新生成

即使以上都正确,旧的缓存文件也可能导致程序行为异常。

  1. 清空 /data/cache/ 目录:通过FTP删除这个目录下的所有缓存文件(如 ~cfg_cache.inc.php, ~index_top.inc.php 等),这个目录可以清空,但不要删除目录本身。
  2. 后台重新生成:登录织梦后台,在“生成”菜单下,选择“一键更新网站”,重新生成首页、栏目页和内容页。

第六步:检查程序文件完整性

如果以上步骤都无法解决,可能是上传文件时出现了遗漏或损坏。

  1. 对比文件:如果你的旧服务器还在,可以对比一下新旧服务器上关键文件的大小和修改时间,看是否有遗漏。
  2. 重新上传:最稳妥但最麻烦的方法是:清空新服务器上的所有文件,然后从旧服务器完整地重新下载一份最新的织梦程序,再上传到新服务器,上传时注意使用二进制模式(Binary mode)。

总结与排查流程建议

遇到“搬家后不能更新”的问题,请按以下顺序进行排查,这能帮你最高效地找到问题所在:

  1. 首要检查data/common.inc.php 文件中的 数据库信息网站路径 是否100%正确。
  2. 其次检查:所有相关目录的 文件权限 是否设置为 755 或 777。
  3. 然后检查数据库 是否已成功导入,且 表前缀 是否匹配。
  4. 再次检查服务器环境(PHP版本、禁用函数)是否有变化。
  5. 最后手段清空缓存,甚至 重新上传完整程序

绝大多数情况下,问题都出在前三步,希望这些步骤能帮助你成功解决问题!

-- 展开阅读全文 --
头像
dede文章点击次数如何实时统计与显示?
« 上一篇 今天
织梦5.7后台响应慢
下一篇 » 今天

相关文章

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

目录[+]