问题分析:为什么会空白?
当您点击“已发布文章”时,DedeCMS需要执行以下几个步骤:

(图片来源网络,侵删)
- 连接数据库:从
data/common.inc.php文件中读取数据库连接信息。 - 执行SQL查询:向数据库发送一个查询语句,通常是
SELECT * FROMdede_archivesWHERE arcrank > -1 ORDER BY id DESC。 - 处理结果:获取数据库返回的文章列表数据。
- 渲染模板:将数据填充到后台的列表模板文件中,并显示在浏览器上。
任何一个环节出错,都可能导致最终显示为空白页。
解决方案:一步步排查
请按照以下顺序进行排查,大概率能找到问题所在。
第一步:检查PHP和数据库连接(最常见原因)
这是最核心的部分,90%的空白问题都与此有关。
检查 data/common.inc.php 文件
这个文件是DedeCMS的数据库连接配置文件,请确保它的存在且内容正确。

(图片来源网络,侵删)
- 文件是否存在:登录您的FTP或服务器控制台,检查
/data/common.inc.php文件是否存在,如果不存在,请从您的网站安装包中找回一个并上传。 - 文件权限:确保该文件的权限是
644(Linux/Unix系统),或者在Windows服务器上确保IIS/IISExpress用户有读取权限。 - 内容是否正确:用文本编辑器打开该文件,检查以下几项:
- 数据库主机:
$cfg_dbhost = 'localhost';通常是localhost,但如果您的数据库在另一台服务器,这里需要填写正确的IP或域名。 - 数据库用户名:
$cfg_dbuser = 'your_username';确保正确。 - 数据库密码:
$cfg_dbpwd = 'your_password';确保正确。 - 数据库名:
$cfg_dbname = 'your_database_name';确保正确。 - 数据库前缀:
$cfg_dbprefix = 'dede_';确保与您数据库中的表前缀一致。
- 数据库主机:
检查数据库连接是否正常
- 方法A(推荐):在DedeCMS后台,点击“系统” -> “数据库备份/还原” -> “数据库连接信息”,系统会自动检测并显示连接状态,如果失败,会提示错误信息,这是最直观的判断方式。
- 方法B:直接在浏览器中访问
http://您的域名/data/common.inc.php,如果显示一堆乱码或数据库配置信息,说明文件可以被正常读取,如果提示404错误或直接空白,说明文件路径或权限有问题。
第二步:检查PHP版本和兼容性
如果您最近升级了PHP版本,可能会导致问题。
- 检查PHP版本:在DedeCMS后台的“系统” -> “系统基本参数” -> “核心设置”中,可以查看到当前服务器环境信息,包括PHP版本。
- 版本兼容性:
- DedeCMS 5.7 系列对 PHP 7.x 有较好的兼容性,但对 PHP 8.0+ 可能会出现不兼容的情况。
- 如果您的PHP版本过高(如PHP 8.1+),可能会导致某些函数被弃用,从而引发空白页。
- 解决方案:
- 降级PHP:将您的PHP版本降级到 7.4,这是目前兼容性最好的选择。
- 修复代码:如果您不想降级,需要联系开发者或自行修改不兼容的代码,但这对于普通用户来说比较困难。
第三步:检查PHP错误日志
空白页通常是PHP致命错误导致的,但为了安全,PHP配置中会隐藏这些错误信息,我们需要让它显示出来。
-
临时显示错误:
(图片来源网络,侵删)- 打开
/data/common.inc.php文件,在文件开头添加以下代码:ini_set('display_errors', 'On'); error_reporting(E_ALL); - 保存后,刷新后台文章管理页面,现在您应该能看到具体的错误提示了(
Fatal error: Uncaught Error: Call to undefined function...)。 - 解决完问题后,请务必删除这两行代码,以免暴露网站安全信息。
- 打开
-
查看服务器错误日志:
- 如果页面依然空白,说明错误可能在执行
include之前,这时需要查看服务器的错误日志。 - cPanel/Plesk面板:通常在“错误日志”(Error Log)中可以找到。
- VPS/服务器:错误日志通常位于
/var/log/php_errors.log或/var/log/nginx/error.log//var/log/apache2/error.log(根据您的Web服务器类型而定)。
- 如果页面依然空白,说明错误可能在执行
第四步:检查目录权限
DedeCMS需要写入一些缓存文件,如果目录权限不正确,可能会导致程序无法正常运行。
- 使用FTP工具(如FileZilla),将以下目录的权限设置为
755(Linux/Unix):/data/data/cache/data/tplcache/uploads/images
- 注意:不要将整个网站目录设置为
777,这会带来巨大的安全风险。
第五步:检查数据库表和前缀
- 检查表前缀:登录您的phpMyAdmin,查看数据库中的表名前缀是否与
common.inc.php中的$cfg_dbprefix一致,如果不一致,请修改配置文件以匹配数据库。 - 检查数据表:检查
dede_archives(文章主表)、dede_arctype(栏目表)等核心表是否存在,如果表丢失,可能是误删除或数据库导入不完整。
第六步:清除缓存
缓存文件损坏也会导致后台显示异常。
- 删除
/data/cache/目录下的所有文件(但不要删除目录本身)。 - 删除
/data/tplcache/目录下的所有文件。 - 清理完毕后,重新登录后台试试。
第七步:检查核心文件是否被修改
如果您最近手动修改过核心文件,或者网站被黑客篡改,也可能导致此问题。
- 对比文件:将您的DedeCMS程序文件(特别是
/dede/目录下的文件)与一个完整的、干净的官方安装包进行对比,看看是否有缺失或被修改的文件。 - 重新上传:如果发现问题文件,可以从官方安装包中找到对应文件,重新上传到服务器上(注意:覆盖前最好备份一下)。
总结与快速排查流程
如果问题紧急,可以按照这个快速流程来排查:
- 第一步:访问
http://您的域名/data/common.inc.php,看是否报404或空白,如果是,检查文件和权限。 - 第二步:在后台“数据库备份”里测试连接,看是否成功。
- 第三步:在
common.inc.php开头临时加上ini_set('display_errors', 'On');,刷新页面看具体错误信息。 - 第四步:清空
/data/cache和/data/tplcache目录。 - 第五步:检查PHP版本,如果高于7.4,尝试降级到7.4。
通过以上步骤,绝大多数“已发布文章管理空白”的问题都能得到解决,如果问题依然存在,请提供您在错误日志中看到的具体错误信息,这将有助于更精确地定位问题。
