这个问题主要出现在 DedeCMS V5.7 及其后续版本中,因为这些版本开始使用 PHP 的 mysqli 扩展来连接数据库,而不是旧的 mysql 扩展。

(图片来源网络,侵删)
下面我将按照可能性从高到低的顺序,为您提供详细的排查和解决方案。
核心原因分析
用户管理页面需要从数据库中读取用户数据并进行展示,页面空白通常意味着在执行这个操作时,程序发生了错误,但错误信息被隐藏了,导致页面无法正常渲染。
解决方案(请按顺序逐一尝试)
检查 PHP 数据库扩展(最常见原因)
这是导致 V5.7 及以上版本用户管理页面空白的 首要原因。
-
检查
php.ini文件:
(图片来源网络,侵删)- 找到您的服务器上
php.ini文件的路径,您可以通过在网站根目录创建一个phpinfo.php文件,内容为<?php phpinfo(); ?>,然后在浏览器中访问它来查看。 - 打开
php.ini文件,找到以下两行:;extension=php_mysqli.dll ;extension=php_mysql.dll
- 确保
php_mysqli.dll这一行是启用的(即去掉前面的分号 ):extension=php_mysqli.dll
- 确认
php_mysql.dll这一行是禁用的(DedeCMS V5.7+ 不再需要它,保留它可能会引起冲突):;extension=php_mysql.dll
- 保存
php.ini文件。
- 找到您的服务器上
-
重启您的 Web 服务器:
- 如果您使用的是 Apache,请重启 Apache 服务。
- 如果您使用的是 Nginx(通常配合 PHP-FPM),请重启 PHP-FPM 服务。
- 重启后,再次尝试访问用户管理页面。 这个方案能解决 80% 以上的问题。
检查数据库配置文件
如果方案一无效,可能是数据库连接信息本身有问题。
-
找到配置文件:
- 登录您的网站 FTP 或文件管理器。
- 进入
data目录,找到common.inc.php文件,这是 DedeCMS 的核心配置文件。
-
检查数据库连接信息:
(图片来源网络,侵删)- 用文本编辑器(如 Notepad++、VS Code)打开
common.inc.php文件。 - 找到以下几行,确保您的数据库信息是正确的:
$cfg_dbhost = 'localhost'; // 数据库主机,通常是 localhost $cfg_dbname = 'your_database_name'; // 您的数据库名称 $cfg_dbuser = 'your_database_user'; // 您的数据库用户名 $cfg_dbpwd = 'your_database_password'; // 您的数据库密码 $cfg_dbprefix = 'dede_'; // 数据库表前缀,请确认与您的一致
- 特别注意:
$cfg_dbprefix(表前缀)必须和您数据库中的表前缀完全一致,否则查询会失败,导致页面空白。
- 用文本编辑器(如 Notepad++、VS Code)打开
-
保存文件并测试。
开启 PHP 错误提示(用于定位具体错误)
如果以上方案都无效,我们需要让 PHP 显示出具体的错误信息,才能知道问题出在哪里。
-
修改
common.inc.php:- 在文件开头找到这行:
@set_time_limit(0);
- 在它下面添加以下几行代码,以开启所有级别的错误报告:
error_reporting(E_ALL); ini_set('display_errors', '1'); - 保存文件。
- 在文件开头找到这行:
-
访问用户管理页面:
- 现在刷新用户管理页面,您应该能看到具体的错误提示信息了。
- 常见的错误信息可能包括:
Fatal error: Uncaught Error: Call to undefined function mysql_connect():这再次确认是方案一的问题,mysqli扩展未启用。Access denied for user '...'@'...' (using password: YES):数据库用户名或密码错误。Table 'your_database_name.dede_admin' doesn't exist:数据库名或表前缀错误,或者数据库未正确导入。- 其他 PHP 语法错误或警告。
-
解决问题后:
- 务必记得,在问题解决后,将
common.inc.php中添加的error_reporting和ini_set两行代码删除或注释掉,以避免向普通用户暴露服务器信息,造成安全隐患。
- 务必记得,在问题解决后,将
检查文件权限
虽然不常见,但有时文件权限问题也可能导致无法读取或写入必要的数据。
-
检查目录和文件权限:
- 通过 FTP 或服务器控制面板,检查以下目录和文件的权限是否正确:
/data/目录:权限建议设置为755或777(777有安全风险,仅在排查问题时临时使用)。/data/common.inc.php文件:权限建议设置为644。/dede/目录及其下所有文件:权限建议设置为755。
- 通过 FTP 或服务器控制面板,检查以下目录和文件的权限是否正确:
-
修复权限后测试。
检查数据库表是否存在
如果您的网站是新安装的,或者数据库是从其他地方迁移过来的,可能数据库表没有完全导入。
-
登录数据库管理工具:
使用 phpMyAdmin 或其他数据库管理工具登录您的数据库。
-
检查表是否存在:
- 在左侧选择您的数据库名。
- 在右侧的列表中,查看是否存在以
dede_(或您自定义的前缀)开头的表,dede_admin,dede_arctype,dede_member等。 - 如果发现大量表缺失,说明您没有正确导入 DedeCMS 的数据库结构文件(
dede.sql)。
-
重新导入数据库:
- 如果表缺失,请重新下载您版本的 DedeCMS 程序,找到
/data/dede.sql文件,并在 phpMyAdmin 中选择您的数据库,使用“导入”功能重新执行该 SQL 文件。
- 如果表缺失,请重新下载您版本的 DedeCMS 程序,找到
总结与排查步骤建议
当遇到 DedeCMS 用户管理页面空白时,请按以下顺序进行排查:
- 首选方案:检查并启用 PHP 的
mysqli扩展,然后重启服务器,这是最可能的原因。 - 次选方案:检查
data/common.inc.php中的数据库连接信息(主机、用户名、密码、数据库名、表前缀)是否正确。 - 诊断方案:在
common.inc.php中临时开启错误提示,根据具体的错误信息来定位问题。 - 兜底方案:检查文件/目录权限,或确认数据库表是否完整导入。
按照这个流程,您有很大概率可以解决这个问题,如果问题依然存在,请提供您开启错误提示后看到的具体错误信息,这将有助于更精确地定位问题。
