织梦CMS换服务器,数据如何无缝迁移?

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

核心原则

  1. 备份!备份!备份! 在进行任何操作前,请务必备份所有数据,这是防止灾难性错误的最重要一步。
  2. 先在新环境测试 如果条件允许,先在新服务器上完成所有配置和测试,确认无误后再切换域名解析。
  3. 记录环境信息 清晰记录原服务器的PHP版本、MySQL版本、以及PHP开启的扩展(特别是mysqligdcurl等织梦依赖的扩展),以便在新服务器上配置一致的环境。

第一阶段:原服务器准备

步骤 1:备份网站文件

  1. 通过FTP或SSH登录到原服务器。
  2. 将整个网站根目录(通常是 public_html, www, 或 htdocs)下载到你的本地电脑,确保下载了所有文件和文件夹,包括 .htaccess 文件。

步骤 2:备份数据库

这是最关键的一步。

织梦cms换服务器
(图片来源网络,侵删)

使用织梦后台自带的备份功能(推荐)

  1. 登录织梦CMS后台。
  2. 进入 “系统” -> “数据备份/还原”
  3. 点击 “选择数据表”,通常全选即可。
  4. 点击 “开始备份”,织梦会生成一个 .sql 文件,并提供下载链接,请务必下载这个文件。
  5. 额外重要: 在同一页面,找到 “一键还原数据” 下面的 “备份还原的数据”,点击 “下载”,这个文件包含了网站的基本配置信息(如网站名称、URL等),有时在迁移后非常有用。

使用phpMyAdmin(更通用)

  1. 登录你的服务器控制面板(如cPanel, Plesk),找到phpMyAdmin。
  2. 选择你的织梦数据库。
  3. 点击顶部的 “导出” 选项卡。
  4. 选择 “快速” 模式,或者 “自定义” -> 确保“添加DROP TABLE/VIEW/PROCEDURE/`FUNCTION””是勾选的,这可以避免新库存在同名表时出错。
  5. 格式选择 “SQL”,然后点击 “执行”
  6. 浏览器会自动下载一个完整的数据库备份文件(.sql)。

第二阶段:新服务器部署

步骤 1:配置服务器环境

确保新服务器的环境与原服务器兼容或更高。

  • Web服务器: Nginx 或 Apache。
  • PHP版本: 推荐 24 之间,织梦DedeCMS 5.7版本对PHP 8.x支持不佳,容易报错,如果使用PHP 8+,需要修改一些代码或使用旧版织梦。
  • MySQL版本: 5.6 或更高。
  • PHP扩展: 必须开启 mysqli, gd, curl, zip, openssl 等。

你可以通过创建一个 info.php 文件(内容为 <?php phpinfo(); ?>)来检查PHP的详细信息和已开启的扩展。

织梦cms换服务器
(图片来源网络,侵删)

步骤 2:上传网站文件

  1. 通过FTP或SSH登录到新服务器。
  2. 将你在第一阶段下载的网站文件上传到新服务器的网站根目录。
  3. 重要:检查文件权限。
    • 整个网站目录的权限通常设置为 755
    • 网站目录下的 data 目录权限必须设置为 777(或 755,但 777 最保险,迁移成功后再改回 755)。
    • templets 目录及其子目录权限也建议设置为 777(同上)。
    • 所有 .php 文件权限设置为 644
    • 你可以通过FTP软件的“文件权限”功能或SSH命令 chmod 来修改。

第三阶段:数据迁移与验证

步骤 1:创建数据库和数据库用户

  1. 登录新服务器的控制面板,找到数据库管理(如MySQL Databases)。
  2. 创建一个新的数据库,记下数据库名称(new_dedecms_db)。
  3. 创建一个新的数据库用户,并为该用户授予对新数据库的“所有权限”。
  4. 记下数据库名、用户名和密码。

步骤 2:导入数据库

  1. 登录新服务器的phpMyAdmin。
  2. 选择你刚刚创建的新数据库。
  3. 点击 “导入” 选项卡。
  4. 点击 “选择文件”,上传你在原服务器导出的 .sql 备份文件。
  5. 点击 “执行”,等待导入完成。

步骤 3:修改配置文件

织梦的核心配置信息存储在两个文件中,这是最容易出错的地方

  1. 打开 /data/common.inc.php 文件

    • 这是最重要的配置文件,里面包含了数据库连接信息。
    • 找到并修改以下几行:
      //数据库连接信息
      $cfg_dbhost = 'localhost'; // 数据库主机,通常是localhost
      $cfg_dbname = 'new_dedecms_db'; // 修改为你新创建的数据库名
      $cfg_dbuser = 'your_new_db_user'; // 修改为你新创建的数据库用户名
      $cfg_dbpwd = 'your_new_db_password'; // 修改为你新创建的数据库密码
      $cfg_dbprefix = 'dede_'; // 数据库表前缀,如果和原来一样就不用改
  2. 打开 /include/config_base.php 文件(可选,但推荐检查)。

    • 这个文件也包含了一些网站的全局配置,比如网站路径。
    • 检查 $cfg_cmspath$cfg_userpath 等变量是否指向了正确的路径(通常是根目录 )。
  3. (重要)修改网站绝对路径

    织梦cms换服务器
    (图片来源网络,侵删)
    • 登录织梦后台,进入 “系统” -> “系统基本参数” -> “核心设置”
    • 找到 “网站根目录”“程序目录” 这两项,确保它们的值是正确的(网站根目录是 ,程序目录是 ),如果路径不对,会导致后台图片、附件等无法上传或显示。

步骤 4:修改数据库中的旧域名

织梦的数据库里很多地方都存储了旧的域名,必须批量替换。

  1. 登录新服务器的phpMyAdmin,选择你的数据库。

  2. 点击 “SQL” 选项卡,执行以下SQL语句(请将 http://www.old-domain.com 替换为你的旧域名,http://www.new-domain.com 替换为新域名):

    -- 替换所有表中的旧域名
    UPDATE dede_archives SET body = REPLACE(body, 'http://www.old-domain.com', 'http://www.new-domain.com');
    UPDATE dede_archives SET description = REPLACE(description, 'http://www.old-domain.com', 'http://www.new-domain.com');
    UPDATE dede_addonarticle SET body = REPLACE(body, 'http://www.old-domain.com', 'http://www.new-domain.com');
    -- 持续添加其他需要替换的表和字段...
    -- 这是一个通用的思路,织梦的表很多,可能需要根据你的实际情况调整。
    -- 更简单的方法是使用一个工具,比如DedeCMS自带的“数据库替换”插件,或者使用phpMyAdmin的“搜索并替换”功能(如果有的话)。

    更推荐的方法(如果原织梦后台有此功能):

    • 登录新织梦后台,进入 “系统” -> “数据库备份/还原”
    • 找到 “数据库内容替换” 功能,输入旧域名和新域名,它会自动扫描所有文本类型的字段并进行替换,这是最安全、最全面的方法。

步骤 5:设置伪静态

如果你的网站使用了URL重写(伪静态),需要在新服务器上重新配置。

  • 如果是Apache服务器
    • 将原服务器上的 .htaccess 文件上传到新服务器的根目录,织梦默认会生成这个文件,通常包含伪静态规则。
  • 如果是Nginx服务器**
    • 你需要手动配置Nginx的虚拟主机配置文件,将以下规则添加到你的server块中(根据织梦版本可能略有不同):
      location / {
        if (!-e $request_filename) {
            rewrite "^/([a-z0-9\-]+)/([a-z0-9\-]+)\.html$" /plus/view.php?aid=$1 last;
            rewrite "^/([a-z0-9\-]+)/([a-z0-9]+)\.html$" /plus/list.php?tid=$1 last;
            rewrite "^/([a-z0-9\-]+)/$" /plus/list.php?tid=$1 last;
            rewrite "^/([a-z0-9\-]+)/([a-z0-9]+)\.html$" /plus/view.php?tid=$1&keyword=$2 last;
        }
      }
    • 修改后,需要重启Nginx服务:sudo systemctl restart nginx

第四阶段:最终验证与切换

  1. 本地Hosts文件测试(可选但推荐)

    • 在你的本地电脑上,找到 hosts 文件(Windows在 C:\Windows\System32\drivers\etc\,Mac/Linux在 /etc/)。
    • 添加一行:新服务器IP www.yourdomain.com
    • 这样你就可以通过访问 www.yourdomain.com 来直接访问新服务器上的网站,而无需等待DNS生效。
  2. 全面测试

    • 访问网站首页,检查是否正常显示。
    • 访问几个栏目页和文章页,检查链接是否正确。
    • 尝试发布一篇新文章,看是否能成功。
    • 尝试上传一张图片,看是否能正常显示。
    • 登录后台,检查各项功能是否正常。
  3. 修改DNS并关闭旧服务器

    • 确认新网站一切正常后,登录你的域名注册商网站,将域名的A记录修改为新服务器的IP地址。
    • DNS生效通常需要几分钟到48小时,在此期间,两个网站可能同时在线。
    • 等待DNS完全生效后,你就可以安全地关闭或删除旧服务器上的所有文件和数据库了。

常见问题与解决方案

  • 问题1:网站首页能打开,但所有栏目页和文章页都404。

    • 原因:伪静态规则未配置或配置错误。
    • 解决:检查新服务器的 .htaccess 文件(Apache)或Nginx配置,确保伪静态规则正确无误,并已重启Web服务。
  • 问题2:后台登录后,页面样式丢失或显示错乱。

    • 原因/data/templets 目录权限不足,导致无法读取CSS和模板文件。
    • 解决:将这两个目录的权限设置为 777,或者至少确保Web服务器运行的用户(如 www-data, nginx, apache)有读写权限。
  • 问题3:数据库连接错误。

    • 原因/data/common.inc.php 文件中的数据库信息(主机、用户名、密码、数据库名)填写错误。
    • 解决:仔细检查并核对 common.inc.php 文件中的每一项配置,确保与你在新服务器上创建的数据库信息完全一致。
  • 问题4:图片和附件无法显示或上传。

    • 原因:网站绝对路径配置错误,或上传目录权限不足。
    • 解决
      1. 进入后台“系统基本参数”检查“网站根目录”是否正确。
      2. 检查 /uploads 等上传目录的权限是否为 777
  • 问题5:迁移后网站非常卡顿。

    • 原因:新服务器性能较差,或PHP配置(如memory_limit)过低。
    • 解决:联系你的VPS/主机提供商,检查服务器资源使用情况,并适当调整PHP的memory_limitmax_execution_time等参数。

遵循以上步骤,你就可以顺利完成织梦CMS的服务器迁移工作,祝你迁移顺利!

-- 展开阅读全文 --
头像
dede如何调用并显示下载次数?
« 上一篇 前天
dede插件调用方法有哪些?
下一篇 » 前天

相关文章

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

目录[+]