织梦DedeCMS 计划任务使用教程
什么是计划任务?为什么需要它?
计划任务,顾名思义,就是预先设定好一个计划,让系统在指定的时间自动执行某个或某些任务。

在DedeCMS中,计划任务主要用于处理一些周期性、耗时性的后台操作,
- 更新网站首页/栏目页/列表页/内容页:定时生成静态HTML文件,减轻服务器压力,提升用户访问速度。
- 更新网站地图:定时生成
sitemap.xml文件,便于搜索引擎抓取。 - 清理缓存:定时清理过期的缓存文件,释放服务器空间。
- 内容处理:定时将草稿状态的稿件发布,或者将过期的内容归档。
- 数据统计:定时生成网站流量统计报表等。
核心优势:自动化,你不需要每天手动去点击“更新主页”、“更新栏目”等按钮,系统会自动完成,大大提高了网站维护的效率。
准备工作:服务器环境支持
在开始之前,请务必确认你的服务器环境是否支持计划任务,DedeCMS的计划任务功能依赖于服务器的 Cron (Linux/Unix系统) 或 计划任务程序 (Windows系统)。
如何检查?

最简单的方法是登录你的网站后台,进入 【系统】->【计划任务】,如果页面正常显示,并且有任务列表,说明后台接口是正常的,如果服务器无法执行,你将无法看到任务被成功运行的日志。
对于虚拟主机用户: 大多数虚拟主机都支持计划任务功能,你通常需要登录你的虚拟主机控制面板(如cPanel、宝塔面板等),找到“计划任务”或“Cron Jobs”选项,然后添加一个任务,并指向DedeCMS的执行脚本。
对于VPS/独立服务器用户:
你需要手动配置服务器的Cron任务,通常使用 crontab -e 命令来编辑。
详细操作步骤
步骤1:登录后台并进入计划任务管理
- 使用管理员账号登录你的DedeCMS网站后台。
- 在顶部菜单栏中,找到并点击
【系统】。 - 在下拉菜单中,选择
【计划任务】,进入计划任务管理页面。
步骤2:添加新的计划任务
在计划任务列表页面,点击右上角的 【增加新任务】 按钮,进入任务添加页面。

你会看到以下需要填写的字段:
-
任务名称:
- 作用:给你的任务起一个容易识别的名字,方便管理。
- 建议:使用有意义的名称,如“每日更新首页”、“每周生成sitemap”等。
-
执行脚本:
- 作用:这是任务的核心,指定了要执行的PHP文件路径。
- 如何填写:通常填写DedeCMS系统目录下的文件,格式为
/目录/文件.php。 - 常用脚本路径:
- 更新首页:
/makehtml_homepage.php - 更新栏目:
/makehtml_list.php - 更新文档:
/makehtml_html.php - 生成网站地图:
/makehtml_sitemap.php - 更新软件列表:
/makehtml_soft.php(如果你的网站有软件频道)
- 更新首页:
-
执行时间设置:
- 作用:定义任务的执行频率,这是最关键的一步。
- 如何填写:支持通配符 ,含义如下:
- 代表“每”, 在分钟字段表示“每分钟”。
- 代表“和”,
1,3,5在分钟字段表示“第1、3、5分钟”。 - 代表“从...到...”,
1-5在小时字段表示“从1点到5点”。 - 代表“每隔”,
*/5在分钟字段表示“每隔5分钟”。
- 常用示例:
- 每天凌晨1点执行:
0 1 * * *(分钟 小时 日 月 星期) - 每30分钟执行一次:
*/30 * * * * - 每小时整点执行:
0 * * * * - 每周一凌晨3点执行:
0 3 * * 1
- 每天凌晨1点执行:
-
循环执行设置:
- 作用:控制任务在单次执行中,是处理所有内容还是分批处理。
- 选项:
不循环:一次性处理所有内容,适合数据量不大的操作,如更新首页、生成sitemap。按天循环:每天处理一部分内容,适合数据量非常大的操作,如更新全站文章,避免单次执行时间过长导致超时。
- 循环间隔:如果选择了“按天循环”,可以设置每次循环处理的记录数。
-
最大执行时间:
- 作用:设置脚本的最长运行时间(单位:秒)。
- 建议:默认为
60秒,如果你的任务处理数据量很大,可以适当调大,如300(5分钟),但如果设置过大,可能会影响网站正常访问,建议配合“按天循环”使用。
-
启用状态:
- 作用:控制任务是否生效。
- 建议:在配置完成并测试无误后,再勾选此项。
-
保存:
- 填写完所有信息后,点击
【确定】按钮,任务就会被添加到列表中。
- 填写完所有信息后,点击
步骤3:配置服务器Cron任务(关键步骤!)
在DedeCMS后台添加任务只是“创建”了任务,但还需要服务器“主动去调用”它,任务才会真正执行。
你需要将DedeCMS提供的执行命令,添加到你服务器的计划任务中。
-
获取执行命令:
- 回到
【系统】->【计划任务】列表页面。 - 在你刚刚创建的任务的“操作”列,你会看到一个
【运行】按钮旁边的链接。 - 右键点击这个链接,复制链接地址,这个地址就是你的Cron任务需要执行的命令。
- 回到
-
将命令添加到服务器计划任务:
-
对于宝塔面板用户:
- 登录宝塔面板。
- 点击左侧菜单的
【计划任务】。 - 点击右上角的
【添加任务】。 - 任务类型:选择
访问URL。 - 执行周期:选择或自定义与你任务设置匹配的周期(如每天、每小时)。
- URL地址:粘贴你刚刚从DedeCMS后台复制的链接地址。
- 脚本参数:留空。
- 点击
【确定】保存。
-
对于cPanel面板用户:
- 登录cPanel。
- 找到
Cron Jobs(计划任务) 图标并点击。 - 在
Add New Cron Job(添加新计划任务) 部分。 - Common Settings:选择一个预设的时间,如
0 1 * * *(每天1点)。 - Command:粘贴你从DedeCMS后台复制的链接地址。
- 点击
Add Cron Job(添加计划任务)。
-
对于Linux服务器命令行用户:
- SSH登录你的服务器。
- 输入
crontab -e打开编辑器。 - 在文件末尾添加一行,格式为:
# 每天凌晨1点执行DedeCMS更新首页任务 0 1 * * * /usr/bin/wget -q -O /dev/null "https://www.yourdomain.com/dede/cron.php?upcache=1&taskid=1"0 1 * * *是执行时间。/usr/bin/wget是一个下载工具,-q(quiet) 表示静默模式,-O /dev/null表示将输出丢弃,这是在Cron中执行URL的最佳实践。- 后面的引号内,就是你复制的DedeCMS任务链接。
- 保存并退出编辑器(在vim中是
wq)。
-
如何验证计划任务是否成功执行?
-
查看DedeCMS后台日志:
- 进入
【系统】->【计划任务】,在任务列表中,你可以看到每个任务的“上次运行时间”,如果时间更新了,说明服务器已经调用了。 - 点击任务名称或旁边的
【日志】按钮,可以查看详细的执行记录,包括成功或失败的信息。
- 进入
-
检查网站文件更新:
- 如果任务是更新首页,那么检查你网站的首页静态文件(通常是
/index.html)的修改时间是否已经更新。 - 如果任务是生成sitemap,检查
/sitemap.xml文件是否存在以及是否被更新。
- 如果任务是更新首页,那么检查你网站的首页静态文件(通常是
-
检查服务器Cron日志:
- 如果DedeCMS日志显示失败,可以检查服务器的Cron执行日志来排查问题。
- CentOS/RHEL:
/var/log/cron - Ubuntu/Debian:
/var/log/syslog(使用grep CRON /var/log/syslog查找)
常见问题与解决方案
问题1:计划任务状态显示“未运行”,但时间已过。
- 原因:最常见的原因是服务器没有配置Cron任务去调用DedeCMS的脚本,你只是在DedeCMS后台“创建”了任务,但服务器并不知道要执行它。
- 解决:请严格按照 “步骤三:配置服务器Cron任务” 的说明,在服务器面板或命令行中添加计划任务。
问题2:任务执行失败,日志提示“超时”或“执行时间过长”。
- 原因:任务处理的数据量太大,超过了设定的“最大执行时间”。
- 解决:
- 增加执行时间:在DedeCMS后台的任务设置中,将“最大执行时间”调大一些。
- 启用循环执行:在任务设置中,将“循环执行设置”改为“按天循环”,并设置一个合适的“循环间隔”(如每次处理100篇文档),这样任务会分批次执行,避免单次超时。
问题3:任务执行成功,但网站内容没有更新。
- 原因:
- 目录权限不足:DedeCMS需要写入生成HTML文件的目录(如 根目录、
/a/文章目录等)的权限。 - 脚本路径错误:检查“执行脚本”的路径是否正确。
- 缓存问题:有时浏览器缓存会给你造成“未更新”的假象,请清除浏览器缓存或使用
Ctrl+F5强制刷新。
- 目录权限不足:DedeCMS需要写入生成HTML文件的目录(如 根目录、
- 解决:
- 通过FTP或文件管理器,将网站根目录及子目录(如
a/,images/等)的权限设置为755或777(777有安全风险,测试通过后建议改回755)。 - 仔细核对“执行脚本”的路径。
- 清除缓存。
- 通过FTP或文件管理器,将网站根目录及子目录(如
问题4:使用宝塔面板,任务URL无法访问。
- 原因:宝塔面板的安全策略可能会拦截对
cron.php的直接访问。 - 解决:
- 在宝塔面板的
【安全】->【防火墙】中,确保放行了80和443端口。 - 如果使用的是Nginx,检查网站配置,确保没有对
cron.php做特殊的限制。 - 一个更安全的做法是,将宝塔计划任务的URL指向一个专门用于接收Cron请求的脚本,而不是直接暴露
cron.php,但DedeCMS默认就是通过cron.php来触发的,所以通常直接使用它即可。
- 在宝塔面板的
- 后台创建:在
【系统】->【计划任务】中添加任务,填写名称、脚本、执行时间等。 - 服务器调用:从后台复制任务的URL,到你的服务器(宝塔/cPanel/命令行)创建一个Cron任务来定时访问这个URL。
- 验证与排错:通过DedeCMS日志和文件修改时间来验证执行结果,并根据错误信息(如超时、权限)进行针对性修复。
掌握计划任务,是优化DedeCMS网站性能、实现自动化运维的重要一步,希望本教程对你有帮助!
