Ubuntu 22.04 安装 MyBB 指南
Ubuntu 22.04 从零安装 MyBB 1.8.41:apt LAMP 环境与官方 zip 部署、离线 deb 方案、Apache 站点配置、浏览器安装向导十步全流程(含实测回显)与三则排障实录,已在 Apache 2.4.52 + PHP 8.1.2 + MariaDB 10.6.23 完整实测。
Ubuntu 22.04 安装 MyBB 指南
目标:在 Ubuntu 22.04 服务器上从零完成 MyBB 1.8.41 的安装部署——LAMP 基础环境、官方源码包部署、Apache 站点配置、浏览器安装向导与安装后验证。已在 Ubuntu 22.04(Apache 2.4.52 + PHP 8.1.2 + MariaDB 10.6.23)环境完整实测,含在线与离线两种安装方案与三则实测排障实录。
一、环境信息
- 操作系统:Ubuntu 22.04 LTS(x86_64)
- Web 服务器:Apache 2.4.52(
apache2 2.4.52-1ubuntu4.25) - PHP:8.1.2(
php 2:8.1+92ubuntu1,Ubuntu 22.04 官方仓库 8.1 系) - 数据库:MariaDB 10.6.23(
mariadb-server 1:10.6.23-0ubuntu0.22.04.1) - 论坛软件:MyBB 1.8.41(官方 zip 包,2,332,135 字节,SHA-256
48cc76e9e1146ea052756575991f43f51a634f125eea06d05ce9041b03eedeaa,实测) - 站点根目录:
/var/www/mybb - 数据库:库名
mybbdb、专用用户mybb、表前缀mybb_ - 安装完成后数据库表数量:75 张(实测)
MyBB 是纯 PHP 应用,无独立守护进程、无 JVM,进程形态就是 Apache 的 mod_php worker 与 MariaDB 服务,无需额外常驻服务。
二、前置条件
安装开始前需要具备:
- 一台 Ubuntu 22.04 服务器,拥有 sudo 权限的账户(本文以 root 示例);
- 服务器可访问 Ubuntu 官方 apt 源(在线方案);或已有内网 apt 镜像/离线 deb 包(离线方案);
- 浏览器(安装向导是 Web 表单,最后一步必须在浏览器中完成);
- 磁盘空间:MyBB 源码包约 2.3 MB、解压后约 12 MB、数据库初始约 1 MB,1 GB 可用空间即绰绰有余。
确认系统版本的实测回显:
cat /etc/os-release | grep PRETTY
PRETTY_NAME="Ubuntu 22.04.5 LTS"
VERSION="22.04.5 LTS (Jammy Jellyfish)"
三、版本选型说明
- MyBB 版本:本文安装当前最新稳定版 1.8.41(2026-09-16 发布,官方下载页实查于 2026-10-30)。下载地址固定为
https://resources.mybb.com/downloads/mybb_1841.zip(文件名内嵌版本号);如需最新版 URL,可用https://www.mybb.com/download/latest跳转。版本与安全公告可在 https://www.mybb.com/versions/ 核对。 - PHP 版本:Ubuntu 22.04 官方仓库自带 PHP 8.1。MyBB 官方最低要求 PHP ≥ 5.2 并推荐最新版 PHP;本文 8.1.2 实测安装向导、前台发帖、后台管理全流程正常,无兼容性报错。
- 数据库版本:MariaDB 10.6(Ubuntu 22.04 仓库默认),满足官方 MariaDB ≥ 5.1 的最低要求。
- Web 服务器:Apache 2.4(Ubuntu 默认,mod_php 部署最简单)。MyBB 官方同支持 nginx/lighttpd/IIS,本文以 Apache 为主线。
四、在线安装方案(A:apt 仓库 + 官方 zip)
本方案从 Ubuntu 官方 apt 仓库安装 LAMP 组件,再从 MyBB 官方源下载源码包部署,是官方推荐的标准路径,全程约 10 分钟。
4.1 安装 LAMP 基础组件
一条命令装齐 Apache、PHP 及 MyBB 必需扩展(SimpleXML 在 php-xml 包内)、MariaDB 与解压工具:
apt-get update
apt-get install -y apache2 php php-mysql php-gd php-xml php-mbstring mariadb-server mariadb-client unzip curl
输出节选(实测,依赖解析较多,此处节选关键行):
Setting up apache2 (2.4.52-1ubuntu4.25) ...
Setting up php8.1-mysql (8.1.2-1ubuntu2.28) ...
Setting up mariadb-server-10.6 (1:10.6.23-0ubuntu0.22.04.1) ...
Processing triggers for libapache2-mod-php8.1 (8.1:8.1.2-1ubuntu2.28) ...
安装完成后逐一验证版本(实测回显):
php -v | head -1
PHP 8.1.2-1ubuntu2.28 (cli) (built: Oct 19 2026 18:54:45) (NTS)
apache2 -v | head -1
Server version: Apache/2.4.52 (Ubuntu)
mariadb --version
mariadb Ver 15.1 Distrib 10.6.23-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
确认 MyBB 必需 PHP 扩展全部就位(实测回显):
php -m | grep -iE 'mysqli|gd|mbstring|simplexml|curl' | tr '\n' ' '; echo
curl gd mbstring mysqli SimpleXML
⚠️ 若
php -m中缺少SimpleXML/gd/mbstring任一项,说明php-xml/php-gd/php-mbstring未装全,安装向导的 Requirements Check 步骤会亮红失败——补装对应包后重启 Apache 即可。
4.2 启动服务并设置开机自启
systemd 托管 Apache 与 MariaDB(每行一个单元,便于逐项核对状态):
systemctl enable --now apache2
systemctl enable --now mariadb
验证服务状态(实测回显):
systemctl is-active apache2
systemctl is-active mariadb
active
active
4.3 创建数据库与专用账户
登录 MariaDB 管理控制台,创建 MyBB 专用库与账户(密码使用演示口令 q1w2e3r4):
mysql -e "CREATE DATABASE mybbdb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER 'mybb'@'localhost' IDENTIFIED BY 'q1w2e3r4'; GRANT ALL PRIVILEGES ON mybbdb.* TO 'mybb'@'localhost'; FLUSH PRIVILEGES; SHOW DATABASES;"
实测回显:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mybbdb |
| mysql |
| performance_schema |
| sys |
+--------------------+
💡 技术拓展:MySQL 中新建库的字符集策略不止一种。
utf8mb4是完整的 4 字节 UTF-8(支持 emoji 表情),utf8(utf8mb3)是 3 字节历史遗留实现。论坛内容常含 emoji,一律建库用utf8mb4;MyBB 安装向导的数据库编码项也保持utf8mb4即可。
4.4 下载 MyBB 官方源码包
从 MyBB 官方源直连下载(⚠️ 网络说明:本环境实测官方源 resources.mybb.com 直连可用,未发生降级;若你的服务器访问官方源超时,可改走国内镜像加速或代理渠道,下载后务必用 SHA-256 核对文件完整性):
cd /tmp
curl -L https://resources.mybb.com/downloads/mybb_1841.zip -o mybb_1841.zip
ls -la mybb_1841.zip
sha256sum mybb_1841.zip
实测回显:
-rw-r--r-- 1 root root 2332135 Oct 30 12:12 mybb_1841.zip
48cc76e9e1146ea052756575991f43f51a634f125eea06d05ce9041b03eedeaa mybb_1841.zip
解压验证包结构(官方 zip 内含 Documentation/ 与 Upload/ 两个目录,只需部署 Upload/ 的内容):
unzip -q mybb_1841.zip -d /opt/mybb_pkg
ls /opt/mybb_pkg
Documentation
Upload
4.5 部署站点文件并设置权限
将 Upload/ 内容部署到站点根目录,并按官方要求完成两处改名与三组权限:
mkdir -p /var/www/mybb
cp -a /opt/mybb_pkg/Upload/. /var/www/mybb/
cd /var/www/mybb
mv htaccess.txt .htaccess
mv inc/config.default.php inc/config.php
设置可写权限(官方安装指南的 chmod 清单,实测执行):
chmod 666 inc/config.php inc/settings.php
chmod 777 cache/ cache/themes/ uploads/ uploads/avatars/ admin/backups/
逐项说明:
inc/config.php:部署配置(数据库连接等),安装向导会写入数据库参数,需可写;inc/settings.php:设置缓存文件(由后台设置编辑器生成与重写),需可写;cache/、cache/themes/:数据缓存与主题 CSS 缓存目录;uploads/、uploads/avatars/:附件与头像上传目录;admin/backups/:后台数据库备份落盘目录(包内自带.htaccess拒绝外部访问,实测其内容含Deny from all规则)。
部署结果确认(实测回显):
ls /var/www/mybb | head -8
admin
announcements.php
archive
attachment.php
calendar.php
captcha.php
contact.php
css.php
4.6 配置 Apache 站点
启用 rewrite 模块并创建 MyBB 站点配置:
a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
systemctl restart apache2
创建站点配置文件 /etc/apache2/sites-available/mybb.conf:
<VirtualHost *:80>
ServerName mybb.example.com
DocumentRoot /var/www/mybb
<Directory /var/www/mybb>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/mybb_error.log
CustomLog ${APACHE_LOG_DIR}/mybb_access.log combined
</VirtualHost>
逐项说明:
ServerName:替换为你的域名或服务器 IP;不设此行 Apache 启动会有AH00558提示(见 9.3 排障实录);DocumentRoot:指向 MyBB 部署目录;AllowOverride All:允许.htaccess生效——MyBB 的友好 URL(thread-1.html形态)全靠包内.htaccess的 RewriteRule 驱动,此项必须开启;Options -Indexes:禁止目录列表,防目录结构暴露。
启用站点、关闭默认站点并重载:
a2dissite 000-default
a2ensite mybb
apachectl configtest
systemctl reload apache2
实测回显:
Site 000-default disabled.
Enabling site mybb.
Syntax OK
验证安装入口可访问(实测回显):
curl -sI http://localhost/install/ | head -3
HTTP/1.1 200 OK
Date: Fri, 30 Oct 2026 12:12:30 GMT
Server: Apache/2.4.52 (Ubuntu)
五、离线安装方案(B:deb 离线包 + zip 预置)
内网隔离服务器无法访问 apt 源与 MyBB 官方源时,可在任一台同版本(Ubuntu 22.04、x86_64)联网机上收集安装介质,拷贝到内网机离线安装。
5.1 联网机:收集 deb 离线包
在联网机创建收集目录,用 apt-get download 下载 MyBB 依赖的关键 deb(LAMP 全量依赖较多,核心包如下;依赖递归包可用 apt-get install --download-only 一并拉取到 /var/cache/apt/archives/):
mkdir -p /opt/mybb-offline && cd /opt/mybb-offline
apt-get download apache2 apache2-bin libapache2-mod-php8.1 php8.1 php8.1-mysql php8.1-gd php8.1-xml php8.1-mbstring mariadb-server mariadb-server-core-10.6 mariadb-client-core-10.6 unzip
输出节选(实测):
Fetched 131 kB in 2s (83.1 kB/s)
W: Download is performed unsandboxed as root as file '/opt/mybb-offline/php8.1-mysql_8.1.2-1ubuntu2.28_amd64.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
⚠️ 实测提示:
apt-get download以 root 运行时会输出_apt用户无权访问的警告(如上),不影响下载结果,deb 文件正常落盘。更稳妥的收集方式是apt-get install --download-only -y <包名列表>,依赖解析完整、全部落在/var/cache/apt/archives/。
确认收集结果:
ls /opt/mybb-offline/*.deb | wc -l
12
同时把 MyBB 官方 zip 一并放入收集目录,整体打包:
cp /tmp/mybb_1841.zip /opt/mybb-offline/
tar czf mybb-offline.tar.gz -C /opt mybb-offline
将 mybb-offline.tar.gz 通过内网文件通道拷贝到目标服务器。
5.2 内网机:安装 deb 离线包
解包后一次性 dpkg 安装(先装基础依赖再装服务包;如个别依赖缺失,apt-get install -f --no-download 会利用已装缓存补齐):
tar xzf mybb-offline.tar.gz -C /opt
cd /opt/mybb-offline
dpkg -i unzip_*.deb
dpkg -i php8.1-gd_*.deb php8.1-xml_*.deb php8.1-mbstring_*.deb php8.1-mysql_*.deb
dpkg -i libapache2-mod-php8.1_*.deb apache2-bin_*.deb apache2_*.deb
dpkg -i mariadb-server-core-10.6_*.deb mariadb-server_*.deb mariadb-client-core-10.6_*.deb
⚠️ dpkg 不会自动解依赖,多包同批安装(一条
dpkg -i带多个通配)通常可相互满足;若报依赖缺失,优先改用apt-get install /opt/mybb-offline/*.deb(apt 2.0+ 支持本地 deb 路径安装,自动解依赖)。
安装后的服务启用、建库、zip 部署与权限设置与 4.2~4.5 完全一致,此处不再重复。
5.3 离线方案验证
php -v | head -1
systemctl is-active apache2
systemctl is-active mariadb
三项输出应与 4.1/4.2 的实测回显一致(PHP 8.1.2-...、active、active)。
六、方案对比与选择建议
| 维度 | 方案 A:在线安装 | 方案 B:离线安装 |
|---|---|---|
| 是否需联网 | 需(apt 源 + resources.mybb.com) | 不需(介质预收集) |
| 依赖解析 | apt 自动 | 手工 dpkg 或本地 apt |
| 版本一致性 | 仓库当前版本 | 收集时冻结版本 |
| 适用场景 | 普通云服务器/IDC 主机 | 内网隔离、等保环境 |
| 升级便利性 | 高(apt + 新 zip) | 需重新收集介质 |
关键差异在于依赖解析:方案 A 全程 apt 自动;方案 B 的 LAMP 依赖树较深,推荐 apt-get install --download-only 收集或在内网机配置本地 apt 镜像源,再逐包 dpkg 兜底。MyBB 源码包本体两方案相同(均为官方 zip)。可联网环境首选方案 A。
七、安装向导全流程
浏览器访问 http://<服务器地址>/install/ 进入官方安装向导。1.8.41 向导共 10 步,全部为 Web 表单;以下逐步说明各步操作要点与本文实测所填值。
7.1 Welcome 与 License Agreement
第 1 步 Welcome 页直接点击 Next;第 2 步为 GNU LGPL 许可协议页,阅读后点击 Next 同意。
7.2 Requirements Check
第 3 步环境检查页逐项列出 PHP 版本、扩展(SimpleXML/mbstring/gd/数据库扩展)、数据库连接能力等检查项。本文环境实测全部绿色通过(若此处亮红,回到 4.1 补装 PHP 扩展后重试)。点击 Next。
7.3 Database Configuration
第 4 步填数据库连接参数,本文实测填写值:
| 向导字段 | 实测填写值 | 说明 |
|---|---|---|
| Database Engine | MySQL Improved (mysqli) | 有 MySQL 与 MySQL Improved 可选时官方建议选 Improved |
| Database Server / Host | localhost | 数据库与 Web 同机 |
| Database Username | mybb | 4.3 创建的专用账户 |
| Database Password | q1w2e3r4 | 对应口令 |
| Database Name | mybbdb | 4.3 创建的库 |
| Table Prefix | mybb_ | 保持默认 |
| Database Encoding / Table Encoding | utf8mb4 | 4 字节 UTF-8,支持 emoji |
⚠️ 排障实录 1(编码项传错值导致 500):实测中若向导的编码项填成排序规则名(如
utf8mb4_general_ci)而非字符集名,提交建表时 PHP 直接 Fatal error:Uncaught mysqli_sql_exception: Invalid character set was provided in /var/www/mybb/inc/db_mysqli.php:307(Apache error log 实录)。修正为字符集名utf8mb4后重新提交即可建表成功。
点击 Next 进入第 5 步 Table Creation(自动建 75 张表,页面可能停顿数秒),随后第 6 步 Data Insertion(写入默认数据)、第 7 步 Theme Installation(载入默认主题),三步均无需输入,依次点击 Next。
7.4 Board Configuration
第 8 步填写站点基本参数,实测填写值:
| 向导字段 | 实测填写值 | 说明 |
|---|---|---|
| Forum Name | MyBB Demo Forum | 论坛名称 |
| Forum URL | http://192.168.1.10 | 向导自动探测填入,务必核对为用户实际访问地址(域名或 IP),不要带末尾斜杠 |
| Website Name / Website URL | MyBB Demo / 与论坛一致 | 页脚"Your Website"链接 |
| Cookie Domain | (留空) | 单域名部署留空即可 |
| Cookie Path | / | 保持默认 |
| Contact Email | admin@example.com | 站长联系邮箱 |
⚠️ Forum URL 填错(如填成 localhost)会导致后续从其他机器访问时 CSS 样式丢失、链接跳转异常;该值后续可在后台 Settings 里改,但装前核对更省事。
7.5 Administrator User 与完成
第 9 步创建管理员账号(实测填写:Username admin、Password 与 Retype q1w2e3r4、Email admin@example.com),第 10 步显示 Congratulations 完成页。完成后立即删除 install/ 目录(官方推荐方式):
rm -rf /var/www/mybb/install
(如需保留安装器供日后升级,官方替代做法是在 install/ 内创建空文件 lock 锁定向导。)
7.6 安装结果验证
前台访问验证(实测回显):
curl -s -o /dev/null -w '%{http_code}\n' http://localhost/index.php
curl -s http://localhost/ | grep -oE '<title>[^<]+</title>'
200
<title>MyBB Demo Forum</title>
数据库层验证(实测回显):
mysql -u mybb -pq1w2e3r4 mybbdb -e "SELECT COUNT(*) AS tables_cnt FROM information_schema.tables WHERE table_schema='mybbdb'; SELECT uid,username,usergroup FROM mybb_users ORDER BY uid LIMIT 1;"
tables_cnt
75
uid username usergroup
1 admin 4
后台验证:浏览器访问 http://<服务器地址>/admin/,用 admin / q1w2e3r4 登录 Admin CP,可见 Dashboard 仪表盘。至此安装完成。
八、配置说明
安装涉及的关键配置文件与位置汇总:
| 文件 | 作用 | 安装后建议动作 |
|---|---|---|
/etc/apache2/sites-available/mybb.conf | Apache 站点定义(DocumentRoot/rewrite/日志) | 核对 ServerName 与访问地址 |
/var/www/mybb/inc/config.php | MyBB 部署配置(数据库连接、后台目录名) | 安装后权限应收紧为 640/644(见下) |
/var/www/mybb/inc/settings.php | 设置缓存(由后台设置编辑器自动重写) | 不手工编辑,改后台 Settings |
/var/www/mybb/.htaccess | URL 重写与访问保护规则 | 保持 AllowOverride All 生效 |
/etc/php/8.1/apache2/php.ini | PHP 运行参数(上传大小/内存/超时) | 按附件需求调整 upload_max_filesize |
安装完成后第一时间收紧两处安装期权限(安装向导写完配置后 666 不再必要):
chmod 644 /var/www/mybb/inc/config.php /var/www/mybb/inc/settings.php
各项配置参数的逐项详解($config 数组、300 项后台设置、cookie 与附件相关参数)见《MyBB 1.8.41 配置参数详解》。
九、常见问题(FAQ)
9.1 打开论坛显示 Internal Error,提示 MyBB Error (43)
现象:安装完成后访问前台报 503,页面提示"The install directory (install/) still exists on your server and is not locked"(实测完整回显)。
原因与解决:MyBB 的安全保护机制——install/ 未删除也未锁定时全站拒绝服务。执行 rm -rf /var/www/mybb/install(或在 install/ 内建空文件 lock)后恢复正常(实测删除后前台立即从 503 变为 200)。
9.2 建表步骤报 500,日志出现 Invalid character set was provided
现象:向导 Database Configuration 提交后 HTTP 500,/var/log/apache2/mybb_error.log 出现 PHP Fatal error: Uncaught mysqli_sql_exception: Invalid character set was provided in /var/www/mybb/inc/db_mysqli.php:307(实录见 7.3)。
原因与解决:向导编码项填了排序规则(utf8mb4_general_ci)而非字符集(utf8mb4)。返回向导把 Database Encoding 改为 utf8mb4 重新提交。
9.3 Apache 启动/重载时提示 AH00558
现象:apachectl configtest 或 reload 时输出 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.89.x.x. Set the 'ServerName' directive globally to suppress this message(实测)。
原因与解决:Apache 无法反解服务器 FQDN 的提示性警告(配置语法本身 Syntax OK)。全局补一行 ServerName 消除:
echo 'ServerName localhost' > /etc/apache2/conf-available/servername.conf
a2enconf servername
systemctl reload apache2
9.4 后台新建版块后连管理员也无法进入/发帖
现象:Admin CP 建新版块后,前台进入该版块提示"You do not have permission to access this page"。
原因与解决:建版块请求若未带全权限相关字段,MyBB 会为新版块写入一套全 0 的显式权限行(mybb_forumpermissions 表,实测出现 7 组 canview=0 记录),覆盖用户组默认值。修复:SQL 清掉该版块显式权限行后,到后台 Tools & Maintenance → Cache Manager 重载 forumpermissions 缓存(实测重载后缓存恢复为空、权限回落用户组默认,前台立即可访问)。详细操作见《MyBB 1.8.41 常用运维命令与排障详解》。
十、卸载与清理
完全移除 MyBB 及其运行环境(数据库备份请先导出,见《MyBB 1.8.41 常用运维命令与排障详解》):
systemctl stop apache2
systemctl stop mariadb
rm -rf /var/www/mybb /opt/mybb_pkg /tmp/mybb_1841.zip
a2dissite mybb
rm -f /etc/apache2/sites-available/mybb.conf
mysql -e "DROP DATABASE mybbdb; DROP USER 'mybb'@'localhost';"
如需连运行环境一并卸载:
apt-get purge -y apache2 mariadb-server php*
apt-get autoremove -y
十一、参考链接
- MyBB 官方安装指南(文件权限与向导步骤依据):https://docs.mybb.com/1.8/install/
- MyBB 官方环境要求:https://docs.mybb.com/1.8/install/requirements/
- MyBB 官方下载页:https://www.mybb.com/download/
- MyBB 版本历史:https://www.mybb.com/versions/
- MyBB 官方数据库错误 FAQ:https://docs.mybb.com/1.8/faq/database-errors/
- 本站姊妹篇:《MyBB 1.8.41 介绍与选型指南》、《MyBB 1.8.41 配置参数详解》、《MyBB 1.8.41 常用运维命令与排障详解》