dede如何设置自动更新?

99ANYc3cd6
预计阅读时长 13 分钟
位置: 首页 DEDE建站 正文
  1. 自动更新网站内容:比如定时采集外部网站的文章、自动发布待审核文章等。
  2. 自动更新 DedeCMS 程序本身:即检查并下载官方的最新版本进行升级。

我会分别对这两种情况进行详细说明。

dede 设置自动更新
(图片来源网络,侵删)

重要提示:操作前务必备份!

在进行任何涉及文件修改或数据库操作之前,请务必备份你的网站:

  • 全站文件备份:下载整个网站目录。
  • 数据库备份:在 DedeCMS 后台 -> 系统 -> 数据库备份/恢复 中进行备份。

这是防止操作失误导致网站崩溃的最后防线。


自动更新网站内容(内容自动化)

这是最常见的“自动更新”需求,通常通过 DedeCMS 的“采集”和“任务计划”功能来实现。

场景1:定时采集外部网站内容

这是 DedeCMS 的核心功能之一,可以让你设置一个定时任务,自动抓取其他网站(需有授权)的文章、图片等,并发布到自己的网站上。

dede 设置自动更新
(图片来源网络,侵删)

操作步骤:

  1. 创建采集节点

    • 登录 DedeCMS 后台。
    • 进入 采集 -> 采集管理 -> 增加采集节点
    • 填写节点信息
      • 节点名称:给你的采集任务起个名字,方便识别。
      • 目标网址:你要采集的网站列表页或栏目页的 URL。
      • 列表规则:使用规则向导或手动填写,告诉 DedeCMS 如何从目标网页中找到文章链接列表。
      • 内容规则:同样使用规则向导或手动填写,告诉 DedeCMS 如何从文章页中提取标题、正文、作者、来源等信息。
    • 保存节点:成功创建后,你可以先“测试采集”一下,看看是否能正确抓取内容。
  2. 设置任务计划

    • 进入 系统 -> 任务计划
    • 点击 新增任务计划
    • 填写任务信息
      • 任务名称:每日自动采集新闻”。
      • 执行文件:选择你刚刚创建的采集节点对应的文件,通常它会显示为 index.php?m=catalog&d=collect&a=run&nodeid=你的节点ID
      • 执行级别:建议选择“管理员”级别,更安全。
      • 循环执行:这是最关键的部分!
        • 周期类型:选择“按天”。
        • 开始时间:设置一个你希望任务开始执行的时间,02:00:00(凌晨2点,网站访问量小,对服务器压力小)。
        • 间隔时间24,表示每隔24小时执行一次,也就是每天执行一次。
    • 保存任务:保存后,任务计划就创建成功了。

工作原理: DedeCMS 会有一个 task.php 文件,它会被服务器按一定频率(通常是每分钟)调用一次。task.php 会检查数据库中设置的任务计划,如果发现某个任务到了执行时间,就会调用对应的 index.php 文件来执行采集任务。

场景2:自动发布待审核内容

如果你有文章是“待审核”状态,可以通过任务计划来自动审核并发布。

操作步骤:

  1. 找到发布脚本

    • 在 DedeCMS 程序目录中,找到 dede/archives_do.php 文件,这个文件处理文章的各种操作,包括“审核”。
    • 我们需要构造一个 URL 来调用它的审核功能,URL 格式通常为: 你的网站域名/dede/archives_do.php?dopost=audit&aid=文章ID
    • 我们不可能提前知道所有待审核文章的ID,我们需要一个能批量处理的URL,DedeCMS 内置了一个处理批量操作的脚本:dede/archives_batchup.php,我们可以用它来批量审核所有“待审核”状态的文章。
    • URL 格式为:你的网站域名/dede/archives_batchup.php?dopost=auditall
  2. 设置任务计划

    • 进入 系统 -> 任务计划 -> 新增任务计划
    • 任务名称:每小时自动审核文章”。
    • 执行文件:填写上面构造的 URL:/dede/archives_batchup.php?dopost=auditall
    • 执行级别:选择“管理员”。
    • 循环执行
      • 周期类型:选择“按小时”。
      • 开始时间00:00:00
      • 间隔时间1,表示每隔1小时执行一次。
    • 保存任务

⚠️ 安全警告: 直接暴露 archives_batchup.php 这样的后台文件给定时任务有潜在风险,更安全的方式是:

  • 在网站根目录创建一个新文件,auto_audit.php

  • 在这个文件中,包含 DedeCMS 的核心文件,并模拟登录执行操作,代码示例:

    <?php
    // 引入DedeCMS配置
    require_once (dirname(__FILE__) . "/include/config.php");
    require_once DEDEINC."/userlogin.class.php";
    // 模拟登录
    $cuserLogin = new userLogin();
    if($cuserLogin->userLogin('你的管理员账号', '你的密码', '') == 1) {
        // 登录成功,执行批量审核
        $dopost = 'auditall';
        require_once(DEDEADMIN.'/archives_batchup.php');
    } else {
        // 登录失败
        echo "登录失败,无法执行任务";
    }
    ?>
  • 然后在任务计划中,将“执行文件”设置为 /auto_audit.php


自动更新 DedeCMS 程序本身

官方 DedeCMS 没有提供像 WordPress 那样的一键自动更新功能,官方的更新方式是:

  1. 到官网下载最新版本的压缩包。
  2. 用 FTP 上传覆盖旧文件(或通过控制面板文件管理器操作)。
  3. 访问网站后台的更新程序页面,执行数据库更新。

我们可以通过编写脚本和任务计划来模拟这个过程,实现半自动更新。

⚠️ 高风险警告: 自动更新程序本身非常危险,容易导致网站文件损坏、功能异常。强烈建议不熟悉代码和服务器操作的用户不要尝试此方法。 如果一定要尝试,请务必在本地环境或测试服务器上充分测试。

实现思路(仅作技术探讨):

  1. 编写更新脚本 auto_update_dede.php

    • 这个脚本需要具备以下功能:
      • 检查 DedeCMS 官方发布的最新版本号(可能需要解析官网页面或提供一个版本号配置)。
      • 与当前网站安装的版本号进行比较。
      • 如果需要更新,则通过 cURLfile_get_contents 下载官方的最新版压缩包。
      • 解压压缩包。
      • 遍历解压后的文件,用新文件覆盖网站旧文件(跳过 datauploads 等用户数据目录)。
      • 访问 dede/upgrade.php 脚本,触发数据库更新。
      • 删除下载的临时文件。
      • 记录更新日志。
  2. 设置任务计划

    • 进入 系统 -> 任务计划 -> 新增任务计划
    • 任务名称:每周检查 DedeCMS 更新”。
    • 执行文件/auto_update_dede.php
    • 执行级别:选择“管理员”。
    • 循环执行
      • 周期类型:选择“按周”。
      • 间隔时间7

由于这个过程极其复杂且风险高,最稳妥、最推荐的方式永远是:手动更新。


总结与推荐

| 更新类型 | 推荐方法 | 难度 | 风险 | 说明 | | :--- | :--- | :--- | :--- | :--- |自动更新使用“采集” + “任务计划” | 低 | 低 | DedeCMS 官方支持,功能稳定,是最佳实践。 |自动发布 | 使用“任务计划”调用后台脚本 | 中 | 中 | 需要构造URL,注意安全。 | | 程序自动更新 | 不推荐,建议手动更新 | 极高 | 极高 | 官方不支持,自行编写脚本极易出错,可能导致网站崩溃。 |

对于绝大多数用户来说,方案一 中的“定时采集”已经能满足“自动更新内容”的需求,并且是安全、可靠的,请优先使用这个官方功能。

-- 展开阅读全文 --
头像
织梦简约模板免费下载
« 上一篇 今天
strcpy函数在哪个头文件中定义?
下一篇 » 今天

相关文章

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

目录[+]