dedecms v5.7 默认不兼容 php 7.2+ 和 mysql 8.0+,需降级至 php 5.6/7.1 并将 mysql 认证插件改为 mysql_native_password,同时关闭 magic_quotes_gpc 并正确解压 uploads 目录内容至网站根目录。

织梦 DedeCMS V5.7 默认不兼容 PHP 7.2+ 和 MySQL 8.0+,在新版 XAMPP(如 PHP 8.0/8.1 + MySQL 8.0)上直接运行会报错或安装卡死——这不是你操作错了,是程序底层限制导致的。
PHP 版本必须降级到 7.1 或 5.6
DedeCMS V5.7 的核心代码大量使用已被 PHP 7.2+ 废弃的 mysql_* 函数(如 mysql_connect、mysql_query),而新版 XAMPP 默认启用的是 mysqli 或 pdo_mysql 扩展,且已彻底移除 mysql 扩展。
- 如果你用的是 XAMPP 8.x(含 PHP 8.0+),必须手动切换回旧版 PHP:打开 XAMPP 控制面板 → 点击
Config→ 选择PHP (php.ini)→ 修改前先确认当前 PHP 版本是否显示为 7.1 或 5.6(XAMPP 7.4 及更早版本自带 PHP 7.1;若无,需单独下载并替换xampp\php\目录) - 不建议强行开启
mysql扩展(PHP 7.2+ 已不支持编译) - phpStudy 用户可直接在界面切换 PHP 5.6,比 XAMPP 更省事
MySQL 8.0 连接失败:root 密码认证插件不兼容
MySQL 8.0 默认使用 caching_sha2_password 认证插件,而 DedeCMS 的连接逻辑只认老式的 mysql_native_password,会导致安装时提示“数据库连接失败”或空白页。
- 进入 phpMyAdmin(
http://localhost/phpmyadmin),用 root 登录后执行:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
(密码为空则留空;若设过密码,把BY ''改成BY '123456') - 或者直接编辑
xampp\mysql\bin\my.ini,在[mysqld]下添加一行:default_authentication_plugin=mysql_native_password
,然后重启 MySQL - 别信“修改 config.php 里 host 为 127.0.0.1 就行”——这只是绕开 localhost 域名解析,解决不了认证插件问题
安装前必须关闭 magic_quotes_gpc(PHP 5.4+ 已废弃但 DedeCMS 仍依赖)
DedeCMS V5.7 的 install/index.php 和部分后台逻辑会检查 get_magic_quotes_gpc() 返回值,而该函数在 PHP 5.4+ 中已被移除,调用即报 undefined function 致安装中断。
- 打开
xampp\php\php.ini,搜索magic_quotes_gpc - 确认该行被注释(以分号开头)且值为
Off:; magic_quotes_gpc = Off
- 如果找不到这一行,**手动添加**:
magic_quotes_gpc = Off
(加在[PHP]段落内) - 改完务必重启 Apache,否则不生效
最易被忽略的一点:DedeCMS 安装包解压后,必须把 uploads/ 目录下所有内容复制到网站根目录(如 htdocs/dedecms_test/),而不是把整个压缩包文件夹原样放进去——漏掉 install/ 或 data/ 就会连安装页面都打不开。











