Discuz! X3.5 Release 20250901 是目前最稳定的版本。要在 AWS 部署一套高性能的社区系统,环境的选型至关重要。以下是基于最新技术栈的部署建议。
官方推荐基础配置:
- PHP:5.6+ / 7.0+ / 8.0~8.2.x
- 数据库:MySQL 5.5+ / 8.0.x、MariaDB 10.2.x
一、 核心组件版本澄清
在实际操作中,我们需要对版本号有精确的理解:
- PHP 8.2.x: 建议使用当前的最高子版本,目前是 8.2.30。需注意,PHP 8.2 计划于 2026 年 12 月 31 日停止安全维护,建议定期关注后续 X3.5 对 PHP 8.3/8.4 的兼容性。
- MySQL 8.0.x: 指代所有 8.0 系列版本,目前最高子版本是 8.0.45。目前 MySQL 8.0 虽临近标准支持期限,但在现有生态中仍是最稳妥的选择。
- MariaDB 10.2.x:当前最高版本是 10.2.44。官方文档提及的 10.2 已于 2022 年 EOL。在现代 Linux 发行版中,建议跳过此版本。
二、 操作系统与 Web 服务器选型
由于部署在 AWS 环境,目前 Ubuntu 24.04 LTS (Noble Numbat) 是首选,其自带的软件包非常成熟:
1. Nginx 1.24.0 + PHP-FPM
Nginx 1.24.0 是 Ubuntu 24.04 LTS 的默认版本,它在处理多域名访问同一数据库的高并发场景下,具有明显优势。必须配合 PHP-FPM (FastCGI Process Manager) 使用,这种模式相比传统的 PHP-CGI 能够更高效地管理进程池,显著提升并发处理能力。
2. Apache 2.4.58 (Event MPM)
Apache 2.4.58 是 Ubuntu 24.04 LTS 的默认版本。如果习惯使用 Apache,严禁使用 Prefork 或 Worker 模式,必须启用 Event MPM。Event 模式解决了 Keep-Alive 链接长时间占用进程的问题,性能表现非常接近 Nginx。
三、 性能优化与特性配置
为充分发挥 Discuz! X3.5 的优势,必须配置以下核心特性:
- 存储引擎: 统一使用 InnoDB,支持事务处理和行级锁,适合高频读写的社区环境。
- 字符集: 务必使用 utf8mb4,这是支持 Emoji 表情和完整 Unicode 字符的基础。
- 内存缓存: 强烈推荐配置 Redis。对于中大型社区,缓存能分担 70% 以上的数据库读取压力。
- HTTPS: 必须全站强制 HTTPS,X3.5 已经完美适配 SSL 协议。
四、 PHP 关键扩展清单
编译或安装 PHP 时,请确保以下模块已启用:
| 扩展名称 | 核心用途 |
|---|---|
mysqli / pdo_mysql |
数据库高性能连接 |
gd |
图像处理(缩略图、水印、验证码) |
curl |
云端接口通信、第三方授权登录 |
mbstring |
多字节字符串处理(中文环境必需) |
五、 部署方案建议
- 小微型站点: 1核 / 2G内存 / 1M带宽 (如 AWS t3.small)。
- 中大型站点: 4核 / 8G内存以上 / 5M+带宽,配合 CloudFront (CDN) 加速静态资源。
- 数据库决策: 考虑到成本控制,不建议在 RDS 上运行行将 EOL 的 MySQL 8.0 以避免昂贵的“延伸支持费”。建议在 EC2 上自建数据库,并配合 EBS 高性能云盘 (gp3) 以获得更好的 IOPS 控制。
本文更新于 2026 年 1 月 28 日。
Discuz! X3.5 部署进阶:解决 Ubuntu 24.04 下 MySQL 8.0 的 GLIBC 兼容问题
在最新的 Ubuntu 24.04 (Noble Numbat) 上部署 Discuz! X3.5 时,由于系统自带的 MySQL 版本过高,而手动安装 MySQL 8.0 官方包又会频繁遭遇 GLIBC 依赖版本警告,这已经成为了社区运维的一个痛点。
1. 为什么官方 .deb 包会报错?
Ubuntu 24.04 采用了非常新的 GLIBC 库(2.39+),而 MySQL 8.0 的发行包主要是针对旧版系统(如 Ubuntu 22.04)编译的。这导致 DPKG 校验失败,无法通过常规 apt install 完成安装。
2. 终极解决方案:使用 Generic Linux 二进制包
为了绕开系统的依赖锁死,建议放弃使用 .deb 安装包,改用 MySQL Generic Linux (x86, 64-bit) 二进制版本。这种方式将 MySQL 运行环境相对独立化,能有效避开 GLIBC 校验冲突。
1. 下载 mysql-8.0.x-linux-glibc2.x-x86_64.tar.xz
2. 解压至 /usr/local/mysql
3. 创建 mysql 用户并初始化 data 目录
4. 手动关联 libaio1 等基础库
3. 生产环境的优化配置
即便解决了安装问题,针对 Discuz! X3.5 的特性,在 AWS 上仍需注意:
- 禁用严格模式: MySQL 8.0 默认开启了严格模式,有时会导致旧插件插入数据失败。建议在
my.cnf中将sql_mode调整为较宽松的设置。或者,通常没问题,如果以后碰到某个老插件/老 SQL 报 group by 相关错误,再单独处理即可。 - 调整用户认证: Discuz! X3.5 虽然支持了新的加密方式 caching_sha2_password,但为了稳妥,建议创建数据库用户时指定
IDENTIFIED WITH mysql_native_password。或者,当后面看到 Discuz/PHP 连接报认证相关错误时再改成 mysql_native_password。
4. 架构总结
- OS: Ubuntu 24.04 LTS
- Web: Nginx 1.24.0 (PHP-FPM) / Apache 2.4.58 (Event MPM)
- PHP: 8.2.30 (必须手动加载 php-xml 和 php-gd)
- DB: MySQL 8.0.45 (手动安装,部署在 EBS 上)
作者注:本文针对常用的 AWS EC2 实例进行了实测。