Discuz! X3.5在phpEnv下安装需手动启用xml、mbstring、curl、gd、json、openssl、zip等PHP扩展,关闭内置MySQL并单独安装MySQL 8.0,数据库地址填127.0.0.1:3306,upload目录全量复制至www根目录并赋予data/写权限,伪静态按Apache或Nginx模式分别配置,安装后立即删除install目录。

phpEnv 是 Windows 下轻量级 PHP 开发环境(类似 phpStudy),但它不自带 MySQL 服务管理界面,也不默认启用 XML、mbstring 等 Discuz! 强依赖扩展——直接解压丢进 www 目录跑安装向导,90% 会卡在「环境检测失败」或「数据库连接错误」。
确认 phpEnv 中 PHP 实际启用的扩展是否完整
Discuz! X3.5 要求必须启用:xml、mbstring、curl、gd、json、mysqlnd(不是 mysql)、openssl、zip。phpEnv 默认只开 mysqli 和 pdo_mysql,其他多数是注释掉的。
操作建议:
- 打开
phpEnv\php\php.ini(注意:不是phpEnv\php\phpdev.ini,后者只是快捷配置) - 搜索
;extension=,逐行取消以下行前的分号:extension=php_mbstring.dll、extension=php_xml.dll、extension=php_curl.dll、extension=php_gd2.dll、extension=php_openssl.dll、extension=php_zip.dll -
mysqlnd是编译进 PHP 的驱动,无需单独开启;但务必确认extension=php_mysqli.dll和extension=php_pdo_mysql.dll已启用 - 改完保存,重启
phpEnv的 Apache/Nginx 服务(右键托盘图标 → 重启) - 访问
http://localhost/phpinfo.php(若没有,手动建一个<?php phpinfo(); ?>),搜索mbstring、xml确认已加载
MySQL 服务必须独立运行且监听 127.0.0.1:3306
phpEnv 自带的 MySQL 是阉割版:无初始化脚本、无 root 密码设置入口、默认绑定 127.0.0.1 但可能未启动。
立即学习“PHP免费学习笔记(深入)”;
常见错误现象:
- 安装向导提示「无法连接数据库」,但
localhost能 ping 通 - 用 Navicat 连不上,报错
Can't connect to MySQL server on '127.0.0.1' (10061)
实操建议:
- 先关闭
phpEnv内置 MySQL(托盘 → MySQL → Stop) - 单独安装 MySQL 8.0(推荐官方 MSI 版),安装时勾选「Add MySQL to PATH」,并设 root 密码为简单值(如
root),避免特殊字符引发连接异常 - 确保服务名为
MySQL80或mysqld,且状态为 Running(services.msc查看) - Discuz! 安装时数据库地址填
127.0.0.1:3306,不要填localhost(Windows 下localhost可能走 socket,而phpEnv的 PHP 编译默认不支持)
upload 目录必须整体复制到网站根目录,且权限不能靠“继承”
Discuz! X3.5 的 upload 目录里含 config/、data/、uc_server/ 等关键子目录,其中 data/ 和 uc_server/data/ 需要写入权限。
容易踩的坑:
- 只复制
upload/*里的文件,漏掉隐藏的.htaccess(Apache 下影响伪静态)或.user.ini(Nginx+PHP-FPM 下影响上传限制) - 用资源管理器“复制粘贴”,导致
data/子目录权限仍是只读(尤其从 ZIP 解压后) - 误删
install/目录前就点「下一步」,导致二次安装失败
正确做法:
- 解压 Discuz_X3.5_SC_UTF8.zip 后,进入
upload文件夹,全选(Ctrl+A),剪切(Ctrl+X) - 粘贴到
phpEnv\www\(或你自定义的站点根目录),**不要嵌套多一层 upload/** - 右键
data/→ 属性 → 安全 → 编辑 → 添加IIS_IUSRS(IIS)或Users(Apache)用户,并勾选「修改」「写入」 - 安装完成、后台可登录后,立即手动删除
install/目录(不是重命名!)
伪静态规则必须手动适配 phpEnv 的 Web 服务器类型
phpEnv 可切换 Apache 或 Nginx,但 Discuz! 官方提供的 .htaccess 或 nginx.conf 样例不能直接套用。
关键差异:
- Apache 模式下:
.htaccess必须放在www/根目录,且httpd.conf中需有AllowOverride All(phpEnv\apache\conf\httpd.conf搜索该行并取消注释) - Nginx 模式下:不能直接用 Discuz! 提供的
nginx.conf片段,要插入到phpEnv\nginx\conf\vhost\default.conf的location / { ... }块内,且需把root路径明确指向www - 无论哪种,伪静态生效前必须重启对应服务
Discuz! X3.5 在 phpEnv 下最脆弱的环节其实是 PHP 扩展加载状态和 MySQL 连接方式——这两处出问题,安装向导连第一步都过不去。别信“解压即用”,每个扩展名、每个端口号、每个斜杠方向,都得亲手核对。



















