MyBB 1.8.41 配置参数详解

MyBB 1.8.41 三层配置体系详解:inc/config.php 全参数(数据库/后台安全/缓存后端/日志修剪)、ACP Settings 30 组 300 项核心设置实测值、php.ini 与 .htaccess 联动,附 2GB 内存单机生产配置模板与设置失效类 FAQ。

MyBBMyBBPHP2026/10/30

MyBB 1.8.41 配置参数详解

目标:系统梳理 MyBB 1.8.41 的三层配置体系——部署层 inc/config.php、设置层 ACP Settings Editor(mybb_settings 表 + inc/settings.php 缓存)与运行环境层(php.ini/.htaccess),逐项解释核心参数含义、默认值与改动影响,并给出可直接套用的生产配置模板。全部参数均从 Ubuntu 22.04 实测环境(安装向导完成后)实际采集。

一、环境信息

  • 操作系统:Ubuntu 22.04 LTS(x86_64)
  • Web 服务器:Apache 2.4.52(mod_php 运行 PHP 8.1.2)
  • 数据库:MariaDB 10.6.23
  • 论坛软件:MyBB 1.8.41(安装向导默认值基础上实测修改)
  • 站点根目录:/var/www/mybb
  • 配置文件:/var/www/mybb/inc/config.php、/var/www/mybb/inc/settings.php
  • 实测设置规模:30 个设置分组、共 300 项后台设置、安装后 75 张数据库表

二、前置条件

三、参数查看与修改方式

MyBB 的配置分布在三个层次,作用与修改途径完全不同,先分清层次再动手:

层次位置存什么怎么改
部署层inc/config.php数据库连接、缓存后端、后台目录、超级管理员只能 SSH 手工编辑
设置层(权威)数据库 mybb_settings 表全部 300 项后台设置Admin CP → Settings(推荐)
设置层(缓存)inc/settings.php设置缓存(PHP 数组平铺)系统自动重写,不要手工编辑

3.1 设置项的正规修改路径(实测)

以修改论坛名为例:Admin CP → Configuration → Site Details → Board Name,保存后生效。后台每保存一次设置,MyBB 做两件事(源码 inc/functions.php 的 update_settings() 实现):把值写入 mybb_settings 表,并重写 inc/settings.php 缓存文件。文件头部实测内容:

<?php
/*********************************\
  DO NOT EDIT THIS FILE, PLEASE USE
  THE SETTINGS EDITOR
\*********************************/

$settings['load'] = "0";
$settings['showownunapproved'] = "0";
$settings['purgespammerbanip'] = "1";
$settings['mail_message_id'] = "1";
$settings['adminemail'] = "admin@example.com";
$settings['avataruploadpath'] = "./uploads/avatars";
$settings['uploadspath'] = "./uploads";

⚠️ 这就是"手工改了 settings.php 一保存设置就被覆盖"的原因:该文件只是缓存镜像,权威数据在数据库表。

3.2 直接查数据库确认设置值(实测)

批量核对设置值时可直查数据库(设置名与后台设置项一一对应):

mysql -u mybb -pq1w2e3r4 mybbdb -e "SELECT name,value FROM mybb_settings WHERE name IN ('bbname','bburl','boardclosed');"

实测回显:

name            value
boardclosed     0
bbname          MyBB Demo Forum
bburl           http://localhost:8136

⚠️ 说明:以上为实测环境采集值——实验部署经端口映射对外服务,向导自动探测的 bburl 带端口 8136;标准 80 端口部署下该值为 http://<服务器地址或域名>,读者以自己后台的值为准。

四、参数总览

4.1 inc/config.php 全参数清单(实测)

安装完成后 inc/config.php 的全部配置键(实测 grep 采集,已含本文实测值):

配置键实测值作用
$config['database']['type']mysqli数据库驱动(可选 mysqli/mysql_pdo/pgsql/pgsql_pdo/sqlite)
$config['database']['database']mybbdb数据库名(SQLite 时为库文件路径)
$config['database']['table_prefix']mybb_表前缀
$config['database']['hostname']localhost数据库主机
$config['database']['username']mybb数据库用户
$config['database']['password']q1w2e3r4数据库密码
$config['database']['encoding']utf8mb4连接字符集
$config['admin_dir']adminAdmin CP 目录名
$config['hide_admin_links']0是否隐藏前台指向后台的链接
$config['cache_store']db缓存存储后端(db/memcache/redis)
$config['memcache']['host']localhostMemcache 主机(cache_store=memcache 时生效)
$config['memcache']['port']11211Memcache 端口
$config['redis']['host']localhostRedis 主机(cache_store=redis 时生效)
$config['redis']['port']6379Redis 端口
$config['super_admins']1超级管理员 uid 列表(逗号分隔)
$config['secret_pin']''ACP 额外 PIN 口令(空=不启用)
$config['log_pruning']array(...)各类日志保留天数(见 5.4)
$config['disallowed_remote_hosts']array()禁止远程连接的主机黑名单
$config['disallowed_remote_addresses']array()禁止远程连接的地址黑名单

4.2 设置分组总览(实测 30 组)

后台 Settings 的全部分组(gid/name/title 与各组设置项数量,实测采集):

gidnametitle项数
1onlineofflineBoard Online / Offline2
2detailsSite Details16
3generalGeneral Configuration24
4serverServer and Optimization Options19
5datetimeDate and Time Formats6
6forumhomeForum Home Options10
7forumdisplayForum Display Options9
8showthreadShow Thread Options17
9memberLogin and Registration Options25
10profileProfile Options20
11postingPosting25
12attachmentsAttachments5
13memberlistMember List5
14reputationReputation9
15warningWarning System Settings5
16privatemessagingPrivate Messaging10
17calendarCalendar1
18whosonlineWho's Online5
19userpruningUser Pruning8
20portalPortal Settings11
21searchSearch System5
22clickablecodeClickable Smilies and BB Code19
23cpprefsControl Panel Preferences (Global)4
24mailsettingsMail Settings10
25contactsettingsContact Settings6
26purgespammerPurge Spammer7
27stopforumspamStop Forum Spam10
28statspageStatistics Page4
29forumteamForum Team3
30helloHello World!2

合计 300 项(各组项数实测加总与全表 COUNT(*) 一致)。第 30 组 hello 是激活内置 Hello World! 插件后新增的分组(实测:未激活插件时为 29 组 298 项)。

五、核心参数分类详解

5.1 数据库连接参数(config.php)

$config['database']['type'] = 'mysqli';
$config['database']['database'] = 'mybbdb';
$config['database']['table_prefix'] = 'mybb_';

$config['database']['hostname'] = 'localhost';
$config['database']['username'] = 'mybb';
$config['database']['password'] = 'q1w2e3r4';
$config['database']['encoding'] = 'utf8mb4';
  • type:驱动选择。mysqli 为默认推荐;同机异构场景可换 mysql_pdo/pgsql_pdo;sqlite 时 database 键填库文件路径而非库名。
  • table_prefix:一库多站(同一数据库装两套 MyBB)时区分表组;改它等于逻辑上换一套表,已装站点改前缀会导致全部表"失踪",切勿随意改。
  • encoding:连接字符集。必须填字符集名(utf8mb4),不能填排序规则名——实测填 utf8mb4_general_ci 会在连接阶段抛出 mysqli_sql_exception: Invalid character set was provided(inc/db_mysqli.php:307,实测排障实录见《Ubuntu 22.04 安装 MyBB 指南》 9.2 节)。
  • 改连接参数无需重启服务(每次请求都会重读 config.php),保存文件即生效。

5.2 后台安全参数(config.php)

$config['admin_dir'] = 'admin';
$config['hide_admin_links'] = 0;
$config['secret_pin'] = '';
$config['super_admins'] = '1';
  • admin_dir:后台目录名。改为随机串(如 admin_9x2k1)是官方推荐的后台加固手段;改名需同步重命名磁盘目录,否则后台 404。
  • hide_admin_links:置 1 后前台页脚不再显示后台入口链接(只是隐藏入口提示,后台地址本身仍可被访问,需配合 admin_dir 改名)。
  • secret_pin:非空时登录 Admin CP 除账号密码外还需输入此 PIN(登录页多一道口令)。生产环境建议启用。
  • super_admins:超级管理员 uid 清单(如 '1,5')。超级管理员不受普通管理员组权限限制(如不能被其他管理员编辑),uid 对应 mybb_users.uid(实测安装向导创建的 admin 为 uid=1)。

5.3 缓存存储参数(config.php)

$config['cache_store'] = 'db';
$config['memcache']['host'] = 'localhost';
$config['memcache']['port'] = 11211;
$config['redis']['host'] = 'localhost';
$config['redis']['port'] = 6379;

💡 技术拓展:MyBB 的数据缓存后端可选 db / memcache / redis 三种。db(默认)把序列化缓存存 mybb_datacache 表——零额外依赖,单机够用;memcache/redis 把热点缓存外移内存,适合多机部署或高并发站点,但需 PHP 装对应扩展且服务可达。实测环境使用默认 db。缓存内容(权限矩阵、版块树等)可通过后台 Cache Manager 重载,实操见《MyBB 1.8.41 常用运维命令与排障详解》。

5.4 日志修剪参数(config.php)

$config['log_pruning'] = array(
    'admin_logs' => 365,       // 后台日志保留天数
    'mod_logs' => 365,         // 版主日志保留天数
    'task_logs' => 30,         // 任务计划运行日志保留天数
    'mail_logs' => 180,        // 邮件日志保留天数
    'user_mail_logs' => 180,   // 用户邮件日志
    'promotion_logs' => 180    // 用户组晋升日志
);

(以上为 1.8.41 默认结构,键值可按合规要求调整;日志表实测为 mybb_adminlog、mybb_modlog、mybb_tasks 的 tasklog 与 mybb_maillogs 等。)

5.5 站点基础设置(Site Details / Board Online / Offline)

设置项实测值说明
bbnameMyBB Demo Forum论坛名称,出现在标题、页头与邮件中
bburlhttp://localhost:8136(实测环境)论坛访问地址。改错会导致样式丢失/登录异常,见 7.3
boardclosed01=全站关闭(仅管理员可看),维护窗口用
boardclosed_reasonThese forums are currently closed for maintenance...关闭页提示文案
adminemailadmin@example.com站长邮箱,论坛发信的发件地址
cookiedomain(空)Cookie 作用域;跨子域共享登录才需设(如 .example.com)
cookiepath/Cookie 路径;论坛挂在子目录时设 /forums/

5.6 注册与登录(Login and Registration Options)

设置项实测值说明
regtypeverify注册激活方式:verify(邮件验证)/randompass(随机密码)/admin(管理员审核)/instant(即时激活)
disableregs01=停止接受新注册
betweenregstime24同 IP 注册间隔小时数
maxregsbetweentime2上述间隔窗口内允许的最大注册数(反批量灌水)
failedlogincount10连续登录失败次数阈值(超过触发锁定/验证码,实测关联项 failedcaptchalogincount=3 为触发验证码阈值)
failedlogintime15锁定时长(分钟),另有关联项 loginattemptstimeout=15(失败计数窗口)
wolcutoffmins15在线判定时长(分钟):超过该时间无动作即从在线列表消失

5.7 发帖与版面(Posting / Show Thread / Forum Display)

设置项实测值说明
postsperpage10每页帖子数(用户可在个人设置覆盖)
userpppoptions5,10,15,20,25,30,40,50用户可自选的每页帖数档位
maxmessagelength65535帖子最大长度(字节),0=不限
postfloodcheck1发帖防灌水开关
postfloodsecs60发帖防灌水间隔(秒):两次发帖最小间隔
postmergemins60连续跟帖自动合并窗口(分钟),实测配合 postmergesep=[hr] 分隔
maxpostimages10每帖图片标签上限
maxpostvideos1每帖视频标签上限
polltimelimit12发帖后可补投投票的时限(小时),0=不可补
hottopic20热帖阈值:回复数达 20 标记热点
hottopicviews150热帖阈值:浏览数达 150 标记热点
threadreadcut7已读标记保留天数(超期视为未读,减小 tracking 开销)

5.8 附件与头像(Attachments / Profile)

设置项实测值说明
uploadspath./uploads附件存储目录(相对站点根;可改站外绝对路径)
avataruploadpath./uploads/avatars头像存储目录
avatarsize25上传头像大小上限(KB)
maxavatardims100x100头像最大尺寸(宽x高像素),配 avatarresizing=auto 自动缩放
allowremoteavatars1允许用户填远程 URL 头像(1=允许,安全要求高时可关闭)
maxattachments5每帖附件数上限
attachthumbnailsyes图片附件自动缩略图(配 attachthumbh/attachthumbw=96 实测值)

单扩展名附件大小上限不在 Settings 里,而是按扩展名存于 mybb_attachtypes 表(实测采样:zip=1024KB、jpg=500KB、png=500KB、doc=1024KB、txt=200KB;groups=-1 表示对全部用户组生效)。后台 Attachments → Attachment Types 可按类型调整。

5.9 搜索与统计(Search System)

设置项实测值说明
searchtypestandard搜索后端:standard(LIKE,零依赖)或 fulltext(MySQL 全文索引,大站推荐)
minsearchword0搜索词最小长度,0=用默认(约 4 字符);LIKE 搜索下过小会拖库
statslimit15首页统计(Most Online 等)保留条数

5.10 邮件(Mail Settings)

设置项实测值说明
mail_handlermail发信方式:mail(PHP mail())或 smtp;生产建议 SMTP
smtp_host(空)SMTP 主机(mail_handler=smtp 时生效)
smtp_port(空)SMTP 端口(25/465/587 视服务商)
mail_message_id1生成 Message-ID 头(提升到达率,保持开启)

5.11 运行环境联动参数(php.ini / .htaccess)

MyBB 自身参数之外,三项 PHP 参数直接约束论坛行为(Ubuntu 下文件为 /etc/php/8.1/apache2/php.ini,实测路径):

php.ini 参数默认值与 MyBB 的关系
upload_max_filesize2M附件实际上传上限 = min(attachsize, upload_max_filesize)
post_max_size8M整个 POST 上限,需略大于 upload_max_filesize
memory_limit128M后台数据库备份(Database Backups)、计数重建的内存保障

.htaccess(包内自带,实测关键规则):Options -MultiViews +FollowSymlinks -Indexes 与 18 条 RewriteRule(forum-N.html、thread-N.html 等友好 URL 映射),依赖 Apache 站点配置 AllowOverride All 生效;admin/backups/.htaccess 内置 Deny from all 保护备份目录。

六、生产配置模板

适用场景:2GB 内存 VPS、单机 LAMP、中小社区(注册用户数千级、日活数百级)。以下为在实测环境基础上调整的生产建议值(改动处加注释):

// inc/config.php 生产模板(2GB 内存单机)
$config['database']['type'] = 'mysqli';
$config['database']['database'] = 'mybbdb';
$config['database']['table_prefix'] = 'mybb_';
$config['database']['hostname'] = 'localhost';
$config['database']['username'] = 'mybb';
$config['database']['password'] = 'q1w2e3r4';   // 换成你的强口令
$config['database']['encoding'] = 'utf8mb4';

$config['admin_dir'] = 'myadmin';        // 后台目录改名(同步 mv /var/www/mybb/admin)
$config['hide_admin_links'] = 1;         // 隐藏前台后台入口
$config['secret_pin'] = 'q1w2e3r4';      // ACP 登录附加口令
$config['super_admins'] = '1';
$config['cache_store'] = 'db';           // 单机保持 db;多机/高并发换 redis
$config['log_pruning'] = array(
    'admin_logs' => 180,               // 按合规要求缩短
    'mod_logs' => 180,
    'task_logs' => 14,
    'mail_logs' => 90,
    'user_mail_logs' => 90,
    'promotion_logs' => 90
);

配套后台设置建议(ACP Settings 中逐项修改):

设置项默认值生产建议理由
boardclosed00平时保持开放,维护时临时置 1
searchtypestandardfulltext帖量过万后 LIKE 搜索拖库,切 MySQL 全文索引
postfloodsecs6030社区活跃度与反灌水平衡
loginattempts/loginlocked5 / 155 / 30收紧口令猜测窗口
mail_handlermailsmtpPHP mail() 易进垃圾箱且排障困难
threadreadcut77保持默认即可,勿设过大

配套 php.ini(附件型论坛):

upload_max_filesize = 8M
post_max_size = 10M
memory_limit = 256M
max_execution_time = 120

⚠️ 修改 php.ini 后必须 systemctl reload apache2 生效;memory_limit 给足 256M 是为了保证后台整库备份与 Recount & Rebuild 不中途 OOM。

七、常见问题(FAQ)

7.1 手工改了 inc/settings.php 为什么被改回?

settings.php 是设置缓存镜像,权威数据在 mybb_settings 表。任何一次后台保存设置都会触发 update_settings() 重写该文件(文件头实测印有 "DO NOT EDIT THIS FILE, PLEASE USE THE SETTINGS EDITOR")。改设置请走 ACP → Settings;批量改可直更数据库后到后台 Cache Manager 重载相关缓存。

7.2 改了 bburl 后样式丢失/登录失效?

bburl 是生成全部链接与 Cookie 的基准。填错(如 http/https 不符、多斜杠、端口缺失)会出现页面无样式(CSS 地址错)或登录后立即被踢(Cookie 域路径不匹配)。解决:直接更数据库核对再进后台修正:

mysql -u mybb -pq1w2e3r4 mybbdb -e "SELECT name,value FROM mybb_settings WHERE name IN ('bburl','cookiedomain','cookiepath');"

实测回显(修正前):

name          value
bburl         http://localhost:8136
cookiedomain
cookiepath    /

把 bburl 改成实际访问地址后,还需到 Cache Manager 重载 settings 相关缓存并清浏览器 Cookie。

单域名部署保持 cookiedomain 空、cookiepath 为 /;跨子域共享登录(forum.example.com 与 www.example.com)时 cookiedomain 设 .example.com(前导点)。若曾在错误域名下登录过,改后必须清浏览器 Cookie 再验证。

7.4 数据库密码改了之后论坛报连接错误?

数据库侧改完用户口令,必须同步改 inc/config.php 的 $config['database']['password'](部署层参数不会从后台同步)。实测改后立即生效,无需重启服务;如连接池报错可 systemctl reload apache2 复位。

7.5 后台设置项太多找不到目标项?

Settings 页按 30 个分组折叠展示(分组清单见 4.2);ACP 设置页右上角有组内搜索;亦可按 3.2 的 SQL 方式直查 mybb_settings(WHERE name LIKE '%关键词%')定位设置名再回后台改。

八、参考链接