- 自动更新网站内容:比如定时采集外部网站的文章、自动发布待审核文章等。
- 自动更新 DedeCMS 程序本身:即检查并下载官方的最新版本进行升级。
我会分别对这两种情况进行详细说明。

重要提示:操作前务必备份!
在进行任何涉及文件修改或数据库操作之前,请务必备份你的网站:
- 全站文件备份:下载整个网站目录。
- 数据库备份:在 DedeCMS 后台 -> 系统 -> 数据库备份/恢复 中进行备份。
这是防止操作失误导致网站崩溃的最后防线。
自动更新网站内容(内容自动化)
这是最常见的“自动更新”需求,通常通过 DedeCMS 的“采集”和“任务计划”功能来实现。
场景1:定时采集外部网站内容
这是 DedeCMS 的核心功能之一,可以让你设置一个定时任务,自动抓取其他网站(需有授权)的文章、图片等,并发布到自己的网站上。

操作步骤:
-
创建采集节点
- 登录 DedeCMS 后台。
- 进入 采集 -> 采集管理 -> 增加采集节点。
- 填写节点信息:
- 节点名称:给你的采集任务起个名字,方便识别。
- 目标网址:你要采集的网站列表页或栏目页的 URL。
- 列表规则:使用规则向导或手动填写,告诉 DedeCMS 如何从目标网页中找到文章链接列表。
- 内容规则:同样使用规则向导或手动填写,告诉 DedeCMS 如何从文章页中提取标题、正文、作者、来源等信息。
- 保存节点:成功创建后,你可以先“测试采集”一下,看看是否能正确抓取内容。
-
设置任务计划
- 进入 系统 -> 任务计划。
- 点击 新增任务计划。
- 填写任务信息:
- 任务名称:每日自动采集新闻”。
- 执行文件:选择你刚刚创建的采集节点对应的文件,通常它会显示为
index.php?m=catalog&d=collect&a=run&nodeid=你的节点ID。 - 执行级别:建议选择“管理员”级别,更安全。
- 循环执行:这是最关键的部分!
- 周期类型:选择“按天”。
- 开始时间:设置一个你希望任务开始执行的时间,
02:00:00(凌晨2点,网站访问量小,对服务器压力小)。 - 间隔时间:
24,表示每隔24小时执行一次,也就是每天执行一次。
- 保存任务:保存后,任务计划就创建成功了。
工作原理:
DedeCMS 会有一个 task.php 文件,它会被服务器按一定频率(通常是每分钟)调用一次。task.php 会检查数据库中设置的任务计划,如果发现某个任务到了执行时间,就会调用对应的 index.php 文件来执行采集任务。
场景2:自动发布待审核内容
如果你有文章是“待审核”状态,可以通过任务计划来自动审核并发布。
操作步骤:
-
找到发布脚本
- 在 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
- 在 DedeCMS 程序目录中,找到
-
设置任务计划
- 进入 系统 -> 任务计划 -> 新增任务计划。
- 任务名称:每小时自动审核文章”。
- 执行文件:填写上面构造的 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 那样的一键自动更新功能,官方的更新方式是:
- 到官网下载最新版本的压缩包。
- 用 FTP 上传覆盖旧文件(或通过控制面板文件管理器操作)。
- 访问网站后台的更新程序页面,执行数据库更新。
我们可以通过编写脚本和任务计划来模拟这个过程,实现半自动更新。
⚠️ 高风险警告: 自动更新程序本身非常危险,容易导致网站文件损坏、功能异常。强烈建议不熟悉代码和服务器操作的用户不要尝试此方法。 如果一定要尝试,请务必在本地环境或测试服务器上充分测试。
实现思路(仅作技术探讨):
-
编写更新脚本
auto_update_dede.php- 这个脚本需要具备以下功能:
- 检查 DedeCMS 官方发布的最新版本号(可能需要解析官网页面或提供一个版本号配置)。
- 与当前网站安装的版本号进行比较。
- 如果需要更新,则通过
cURL或file_get_contents下载官方的最新版压缩包。 - 解压压缩包。
- 遍历解压后的文件,用新文件覆盖网站旧文件(跳过
data和uploads等用户数据目录)。 - 访问
dede/upgrade.php脚本,触发数据库更新。 - 删除下载的临时文件。
- 记录更新日志。
- 这个脚本需要具备以下功能:
-
设置任务计划
- 进入 系统 -> 任务计划 -> 新增任务计划。
- 任务名称:每周检查 DedeCMS 更新”。
- 执行文件:
/auto_update_dede.php - 执行级别:选择“管理员”。
- 循环执行:
- 周期类型:选择“按周”。
- 间隔时间:
7。
由于这个过程极其复杂且风险高,最稳妥、最推荐的方式永远是:手动更新。
总结与推荐
| 更新类型 | 推荐方法 | 难度 | 风险 | 说明 | | :--- | :--- | :--- | :--- | :--- |自动更新使用“采集” + “任务计划” | 低 | 低 | DedeCMS 官方支持,功能稳定,是最佳实践。 |自动发布 | 使用“任务计划”调用后台脚本 | 中 | 中 | 需要构造URL,注意安全。 | | 程序自动更新 | 不推荐,建议手动更新 | 极高 | 极高 | 官方不支持,自行编写脚本极易出错,可能导致网站崩溃。 |
对于绝大多数用户来说,方案一 中的“定时采集”已经能满足“自动更新内容”的需求,并且是安全、可靠的,请优先使用这个官方功能。
