
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
2月27日合并的代码中需跟进数据库修改,否则会导致用户首次可登录、第二次无法登录!
存量X3.5网站更新代码后,需执行以下SQL进行数据库升级(uc_可能为pre_ucenter_,具体参照站点设置):
sqlALTER TABLE uc_members MODIFY COLUMN password varchar(255) NOT NULL DEFAULT '', MODIFY COLUMN salt varchar(20) NOT NULL DEFAULT ''
在生产环境盲目使用及更新Discuz! X3.5(开发中版本)可能造成:
包括但不限于以上严重后果,请确认技术能力足以驾驭后再使用!
3.5的数据库结构会随时更新,已有用户每次更新代码时务必同步安装目录下sql文件的所有变更!
shelldocker pull tencentci/discuz
Discuz! X3.5项目代码位于容器中/var/www/html,可将此目录代码复制到宿主机后映射至容器完成持久化挂载,步骤如下:
1. 运行临时容器
shelldocker run --rm --name discuz -it -p 80:80 -d tencentci/discuz
2. 复制代码到宿主机
shelldocker cp discuz:/var/www/html/ $PWD/
完成后执行
docker stop discuz销毁临时容器
3. 运行并使用容器
shelldocker run -it --name discuz -p 80:80 -p 443:443 -v /var/www/html/:$PWD/html/ -d tencentci/discuz
3.5版本支持InnoDB与MyISAM两种数据库引擎,均不再支持utf8编码,转而支持utf8mb4编码。
1.1 数据库表结构变更
参考 https://gitee.com/oldhuhu/DiscuzX34235/blob/master/scheme/scheme-change-without-data-loss.sql%EF%BC%9A
1.2 InnoDB引擎相关变更
参考 https://gitee.com/oldhuhu/DiscuzX34235/blob/master/scheme/scheme-change-innodb.sql%EF%BC%9A
配置文件新增数据库引擎配置项,升级用户需正确设置,否则可能导致发帖功能异常:
php/* * 数据库引擎,根据实际数据库引擎设置,3.5默认innodb,之前版本为myisam * 从3.4升级且未转换引擎的用户需设为myisam */ $_config['db']['common']['engine'] = 'innodb';
1.3 utf8mb4相关变更
为支持IPv6,3.5版本做了以下调整:
2.1 IP地址库
系统支持多地址库,通过配置文件选择:
php$_config['ipdb']['setting']['fullstack'] = ''; // 全栈IP库,优先级最高 $_config['ipdb']['setting']['default'] = ''; // 默认IP库,优先级最低 $_config['ipdb']['setting']['ipv4'] = 'tiny'; // IPv4库,留空使用默认 $_config['ipdb']['setting']['ipv6'] = 'v6wry'; // IPv6库,留空使用默认
地址库对应class为ip_<地址库名称>,位于source/class/ip目录,可自定义扩展配置:
php// 扩展IP库配置格式 $_config['ipdb']['扩展ip库名称']['设置项名称'] = '值'; // 示例 $_config['ipdb']['redis_ip']['server'] = '172.16.1.8';
系统内置IPv4和IPv6库。
2.2 IP封禁
*作为通配符,改用子网掩码(CIDR)指定封禁范围php$_config['security']['useipban'] = 1; // 是否开启IP允许/禁止功能,高负载站点建议疏解至HTTP Server/CDN等
2.3 IP地址获取
默认仅信任REMOTE_ADDR,可通过配置扩展获取方式:
php/** * IP获取扩展 * 为空使用默认体系,非空调用source/class/ip/getter_值.php的get方法 * 系统提供dnslist(IP反解析域名白名单)、serverlist(IP白名单,支持CIDR)、header扩展 * 扩展配置格式:$_config['ipgetter']['IP获取扩展名称']['设置项名称'] = '值' */ $_config['ipgetter']['setting'] = ''; $_config['ipgetter']['header']['header'] = 'HTTP_X_FORWARDED_FOR'; $_config['ipgetter']['iplist']['header'] = 'HTTP_X_FORWARDED_FOR'; $_config['ipgetter']['iplist']['list']['0'] = '127.0.0.1'; $_config['ipgetter']['dnslist']['header'] = 'HTTP_X_FORWARDED_FOR'; $_config['ipgetter']['dnslist']['list']['0'] = 'comsenz.com';
3.5增强了Redis缓存支持,使用Redis时完全消除内存表依赖:
提示:PHP认为实现ArrayAccess接口的对象不等同于数组,原有依赖array_key_exists的插件或二次开发需取消依赖。
注:以上增强对memcached无效。
支持几乎所有功能开关,管理员可关闭论坛仅使用门户,详见https://gitee.com/Discuz/DiscuzX/pulls/291%E3%80%82
upload/tests,测试用例可在upload/tests/class添加$_config['debug'] = 1开启安全提示:建议使用仍在支持期内的软件,避免安全隐患。
性能提示:MySQL < 5.7或MariaDB < 10.2时InnoDB性能下降,生产环境建议升级至MySQL >= 5.7或MariaDB >= 10.2。
| 软件名称 | 最低要求 | 推荐版本 | 其他事项 |
|---|---|---|---|
| PHP | >= 5.6.0 | 7.3 - 8.1 | 依赖XML、JSON、GD扩展(>=1.0),PHP 8.0-8.1为测试性支持 |
| MySQL | >= 5.5.3 | 5.7 - 8.0 | 使用MariaDB推荐版本 >= 10.2 |
您可以Fork本站代码,但未经许可禁止在本产品整体或任何部分基础上发展派生版本、修改版本或第三方版本用于重新分发。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务