第一步:检查最常见的原因(90%的问题出在这里)
在深入排查之前,请先检查以下两个最核心、最常见的问题:

(图片来源网络,侵删)
伪静态规则未正确配置或未开启
这是导致Dede文章无法生成最最常见的原因,DedeCMS默认使用动态URL(如 plus/view.php?aid=123),但为了SEO和用户体验,我们通常会开启伪静态,生成静态HTML文件(如 a/123.html),如果伪静态规则不正确,服务器就无法正确处理这些请求,导致页面无法访问。
如何排查和解决:
-
检查是否开启伪静态:
- 进入Dede后台 -> 系统 -> 系统基本参数 -> 核心设置。
- 找到 “是否使用伪静态” 选项,确保它选择的是 “是”。
- 保存。
-
检查并上传伪静态规则文件:
(图片来源网络,侵删)- Apache服务器: 你需要将
.htaccess文件上传到网站的根目录。- 这个文件通常位于
DedeCMS安装包的/data/目录下,或者网上可以找到标准版本。 - 关键点: 检查文件里的
RewriteBase /是否正确,如果你的网站在子目录(如http://www.yourdomain.com/dede/),则需要修改为RewriteBase /dede/。
- 这个文件通常位于
- Nginx服务器: 你需要修改Nginx的配置文件(通常是
nginx.conf或站点配置文件)。- 将DedeCMS官方提供的Nginx伪静态规则代码添加到你的
server块中。 - 关键点: 修改后,必须执行
nginx -s reload命令重新加载配置,才能生效。
- 将DedeCMS官方提供的Nginx伪静态规则代码添加到你的
- Apache服务器: 你需要将
-
检查服务器是否支持伪静态:
确认你的虚拟主机或云服务器是否开启了伪静态功能,有些廉价主机默认是关闭的,需要联系服务商开启。
目录或文件权限不足
DedeCMS在生成文章时,需要向服务器上的目录写入HTML文件,如果这些目录的权限不正确,就会导致生成失败。
如何排查和解决:

(图片来源网络,侵删)
- 使用FTP工具(如FileZilla)连接你的服务器。
- 检查并修改以下目录的权限为 755:
- (网站根目录)
/a/(存放文章的目录)/special/(专题目录)/html/(默认生成目录)/data/(缓存等数据目录)/uploads/(上传目录)
- 特别注意:
/data目录的权限非常重要,它包含了缓存文件和配置信息,确保其权限为 755,并且里面的cache目录等子目录也有正确的写入权限(通常也是755)。 - 如果你的服务器是Linux系统,可以使用
chmod -R 755 /path/to/your/dede命令来递归修改权限。
第二步:检查Dede后台的常规设置
如果第一步没有解决问题,那么请检查后台的设置。
检查“文档HTML默认保存目录”
- 进入Dede后台 -> 系统 -> 系统基本参数 -> 核心设置。
- 找到 “文档HTML默认保存目录”。
- 确认这个路径是正确的,并且你已经在FTP工具中确认了该目录存在且有755权限。
- 常见错误: 有人会修改这个路径,但忘记在服务器上创建对应的目录,或者目录权限不对。
检查“arclist标签调用默认”
- 在 核心设置 中找到 “arclist标签调用默认”。
- 确保 “栏目ID” 和 “排序类型” 等没有填写错误的值,有时候一个错误的ID会导致调用失败,从而影响后续操作。
检查“发布文章”页面的设置
- 在发布文章或编辑文章时,检查 “选择目录” 是否正确。
- 检查文章是否选择了 “生成HTML”,虽然默认是勾选的,但有时可能会被取消。
- 检查文章的 “文章属性”,头条”、“推荐”等,这些不会导致无法生成,但可以排除一些干扰。
第三步:检查服务器环境和软件冲突
如果以上设置都正确,那么问题可能出在服务器环境上。
PHP版本或配置问题
- PHP版本过低: DedeCMS 5.7版本通常需要PHP 5.3或更高版本,如果你的服务器PHP版本过低,可能会导致某些函数不兼容。
- PHP安全模式: 检查PHP是否开启了安全模式(
safe_mode = On),安全模式会限制很多文件操作,很可能导致Dede无法生成文件,联系你的服务器提供商将其关闭。 - PHP禁用函数: 检查
php.ini文件中是否禁用了Dede需要的关键函数,如exec(),shell_exec(),passthru()等,虽然Dede不常用这些,但某些情况下可能会用到。
缓存问题
- Dede有很强的缓存机制,有时候缓存文件损坏也会导致奇怪的问题。
- 解决方案: 进入Dede后台 -> 系统 -> 数据备份/恢复 -> 一键更新网站缓存,尝试更新缓存看看是否能解决问题。
插件或模板冲突
- 你是否最近安装了新的插件或更换了新的模板?新程序可能与现有系统产生冲突。
- 解决方案:
- 尝试 禁用所有插件,然后重新生成一篇文章,看是否成功,如果成功了,再逐个启用插件,找到是哪个插件导致的问题。
- 切换回 默认模板,然后生成文章,如果成功了,说明是你的模板文件(通常是
article_article.htm)里有错误代码,需要检查模板文件。
第四步:查看错误信息,精准定位
这是最有效的方法,但很多人会忽略它。
- 生成文章时的页面提示: 在后台点击“生成”按钮后,页面通常会显示“成功”或“失败”,并可能附带一些错误信息。请仔细阅读这些提示,它们是直接线索。
- 查看服务器错误日志:
- 如果网站直接打不开,或者生成后出现500错误,你需要查看服务器的错误日志。
- Apache: 错误日志通常在
cPanel后台的 "Error Log" 里,或者在/var/log/httpd/error_log路径下。 - Nginx: 错误日志通常在
/var/log/nginx/error.log路径下。 - 这些日志会记录下PHP执行时的致命错误,
Fatal error: Allowed memory size...(内存不足) 或Call to undefined function...(函数未定义),能帮你快速定位到具体是哪个文件或哪行代码出了问题。
总结与排查流程建议
遇到“Dede文章不能生成”的问题,请按照以下顺序进行排查:
-
首要检查:
- 后台 “是否使用伪静态” 是否为“是”?
- 服务器(Apache/Nginx)的 伪静态规则 是否正确配置并生效?
- 网站 关键目录(/a/, /data/, /html/等)的权限 是否为755?
-
后台设置检查:
- “文档HTML默认保存目录” 路径是否正确且目录存在?
- 发布文章时是否正确选择了栏目并勾选了“生成HTML”?
-
环境与冲突检查:
- 是否最近安装了插件或更换了模板?尝试禁用/切换它们来测试。
- 尝试在后台 “一键更新网站缓存”。
-
终极手段:
- 仔细阅读后台生成页面的错误提示。
- 查看服务器的错误日志,寻找PHP级别的致命错误。
按照这个流程,90%以上的问题都能被解决,如果问题依然存在,请提供更详细的信息,
- 具体的错误提示是什么?
- 是所有栏目都不能生成,还是某个特定栏目?
- 你的服务器环境是什么(Apache/Nginx,PHP版本)?
这样能更精准地帮助你找到问题所在。
