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 完整实测。

MyBBMyBBUbuntu 22.04ApacheMariaDB2026/10/30

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 EngineMySQL Improved (mysqli)有 MySQL 与 MySQL Improved 可选时官方建议选 Improved
Database Server / Hostlocalhost数据库与 Web 同机
Database Usernamemybb4.3 创建的专用账户
Database Passwordq1w2e3r4对应口令
Database Namemybbdb4.3 创建的库
Table Prefixmybb_保持默认
Database Encoding / Table Encodingutf8mb44 字节 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 NameMyBB Demo Forum论坛名称
Forum URLhttp://192.168.1.10向导自动探测填入,务必核对为用户实际访问地址(域名或 IP),不要带末尾斜杠
Website Name / Website URLMyBB Demo / 与论坛一致页脚"Your Website"链接
Cookie Domain(留空)单域名部署留空即可
Cookie Path/保持默认
Contact Emailadmin@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.confApache 站点定义(DocumentRoot/rewrite/日志)核对 ServerName 与访问地址
/var/www/mybb/inc/config.phpMyBB 部署配置(数据库连接、后台目录名)安装后权限应收紧为 640/644(见下)
/var/www/mybb/inc/settings.php设置缓存(由后台设置编辑器自动重写)不手工编辑,改后台 Settings
/var/www/mybb/.htaccessURL 重写与访问保护规则保持 AllowOverride All 生效
/etc/php/8.1/apache2/php.iniPHP 运行参数(上传大小/内存/超时)按附件需求调整 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

十一、参考链接