基于 Discuz! 6.0.0 官方版本,面向 PHP 8 与 MySQL 8 环境重构并精简。
演示网址:https://sobbs.cn
如果用于生产站请注意安全问题,虽然已经全面检测过,但不能保证安全。

一、环境要求

项目要求
PHP8.0 及以上(已在 8.0.2 / 8.2.9 验证)
MySQL5.7 / 8.0(表引擎 InnoDB,字符集 utf8mb4 / utf8mb4\_unicode\_ci)
WebNginx / Apache / IIS 均可
扩展mysqli、gd、json(PHP 8 内置)

二、安装步骤

  1. 将本目录全部文件上传到网站根目录(或子目录)。
  2. 确保 forumdata/、attachments/、customavatars/ 可写(Linux 下一般 777)。
  3. 访问 install/index.php,按向导填写数据库信息(支持非 3306 端口)。
  4. 安装过程中 SQL 采用分片导入并显示进度,无需担心请求超时。
  5. 安装成功后删除 install/ 目录,并确认生成 config.inc.php。
  6. 登录后台,进入「界面风格」点一次“更新 CSS 文件缓存”。

安装失败时不会写入 install.lock,可修正环境后直接重装。

三、从旧版升级(已有数据的站点)

不要重新安装,直接覆盖文件即可,数据库无需改动:

  1. 备份数据库与 config.inc.php。
  2. 覆盖本包中的程序文件,不要覆盖你原有的 config.inc.php。
  3. 删除服务器上的旧文件 admin/discuzdb.md5(该功能已移除)。
  4. 删除 forumdata/templates/ 下所有 *.tpl.php(模板编译缓存)。
  5. 后台 →「界面风格」→“更新 CSS 文件缓存”。
  6. 完成。若页面仍是旧样式,重启 PHP 或等待 1 分钟(opcache 周期)。

四、本次修改概要

1\. PHP 8 兼容

  • 修复 PHP 8 下的致命错误与警告:字符串被当作数组追加、count() 传入非数组、未定义变量与未定义数组键、未加引号的数组键被识别为常量等。
  • 覆盖范围:全站前后台 PHP 文件,重点为 admin/*.inc.php、include/*.php、*.php 入口文件。
  • 模板编译函数统一使用完整 <?php 标签,避免短标签在 PHP 8.2 下失效导致白屏。

2\. 功能精简

  • 移除后台「数据库校验」功能(含菜单、入口、语言包、md5 校验文件)。
  • 移除插件系统、SupeSite 相关残留、Flash 验证码 / Flash 广告 / Flash 站点 Logo(统一改为原生图片渲染)。
  • 清理已废弃功能对应的入口文件、模板、路由、后台菜单与语言包词条,不留无效访问路径。

3\. 数据库

  • 表引擎统一 InnoDB,字符集 utf8mb4 / utf8mb4\_unicode\_ci。
  • 精简冗余表与无用字段;安装脚本同步更新。
  • 安装时自动设置 sql_mode='',兼容旧版 SQL 写法。
  • 安装向导支持数据库端口配置并写入 config.inc.php。

4\. 界面与前台修复

  • 恢复完整的前台 CSS(下拉菜单白色背景、版块列表 1320px 宽度、帖子页回帖区样式等)。
  • 版块列表页“收藏本版 / 我的话题”调整为与面包屑导航同一行、位于右侧。
  • 修复验证码图片无法显示、警告文本混入图片流的问题。
  • 修复投票功能在 PHP 8 下 [] operator not supported for strings 的致命错误。
  • 修复统计排行、版块列表等页面因数据不足导致的未定义数组键问题。
  • 页脚版权信息更新为当前维护标识。

5\. 后台修复

  • 统一修复各页面提交时的未定义变量、未定义数组键、类型错误,涉及:论坛编辑、主题分类、信息类别/模型、界面风格、模板编辑、审核、批量删帖、词语过滤、表情、主题图标、附件类型、公告、勋章、广告、联盟论坛、计划任务、论坛帮助、统计重建、短信清理、论坛方案、用户编辑、数据库备份等。
  • 修复 recommendupdate() 收到字符串导致的致命类型错误。
  • 修复编辑论坛、编辑用户时对已精简表单字段的残留引用。

五、其他说明

  • 后台「数据库校验」已彻底移除,服务器上残留的 discuzdb.md5 请手动删除。
  • 若修改代码后立即看不到效果,请清除浏览器缓存(Ctrl + F5),并确认 PHP opcache 已刷新。
  • 本包不含 config.inc.php、install.lock、运行时缓存与日志,属正常情况。

Powered by Discuz! 6.0.0 (PHP 8 Refactored) | Slimmed & Maintained by FlintHub Team.
Discuz_6.0_PHP8_FlintHub_20261024.zip

主楼