前言
在信息交流越来越依赖在线社区的今天,一个轻量、美观、可扩展的论坛系统能帮助个人或企业快速构建属于自己的用户社区。
Flarum 作为一款新一代开源论坛系统,以“轻快、优雅、可扩展”著称。它拥有简洁的界面、灵活的插件体系、活跃的开发者社区,并且可以轻松通过 Docker 实现快速部署。
1. 项目
Flarum 是由 Toby Zerner 与 Franz Liedke 领衔开发的开源 PHP 论坛系统。它以极简核心 + 扩展生态的方式提供标签、@ 提及、搜索、私信、SEO 等功能,并通过 Composer 管理依赖,前端采用快速的单页应用架构,移动端体验也很出色。
1.1 项目特点
💡 轻量级核心:仅保留最基础功能,其余功能由扩展提供;
⚙️ 高度模块化:官方与社区扩展丰富,如 SEO、上传、私信、标签系统;
🎨 现代化界面:响应式设计,支持移动端;
🌐 多语言支持:包括简体中文、繁体中文等;
🔒 安全可靠:基于 Composer 管理依赖,更新方便。
1.2 项目展示




2.相关地址
gitHub开源项目:https://github.com/mondediefr/docker-flarum
3.搭建环境
- 服务器:这里为了方便搭建项目使用的是莱卡云的境外香港云服务器。(国内用户连接建议使用国内的服务器(需备案域名或者IP+端口)延迟会更低)
- 莱卡云服务器促销活动性价比会更高。查看官网购买链接:https://www.lcayun.com
- 资源配置:2核2G 30G硬盘
由于国内服务器访问海外源较慢,这边为了方便演示直接使用海外服务器搭建。 - 服务器系统:Debian-12
- 【必需】安装Docker:安装好 Docker、Docker-compose
- 【非必需】域名一枚,可用于解析到服务器上使用域名访问

4.搭建视频
哔哩哔哩:
5.搭建方式
5.1 安装docker和docker-compose
安装教程:服务器上安装docker和docker-compose教程
5.2 拉取flarum镜像
#拉取flarum镜像
docker pull mondedie/flarum:stable
#拉取MariaDB 10.5镜像
docker pull mariadb:10.5
5.3 创建配置文件和目录
sudo mkdir -p /mnt/docker/flarum/{assets,extensions,storage/logs,nginx}
sudo mkdir -p /mnt/docker/mysql/db
📂 /mnt/docker/flarum/
目录说明
子目录 | 挂载路径 | 作用 |
---|---|---|
assets | /flarum/app/public/assets | 存放上传的图片、附件、CSS 缓存等 |
extensions | /flarum/app/extensions | 存放 Flarum 安装的扩展插件 |
storage/logs | /flarum/app/storage/logs | 存放系统日志(PHP/Nginx 报错) |
nginx | /etc/nginx/flarum | 存放 Nginx 虚拟主机配置文件(容器内) |
📦 /mnt/docker/mysql/db
目录说明
- 这个目录会挂载到
/var/lib/mysql
,用于保存数据库文件。 - 即使容器删除,数据库内容也不会丢失。
5.4 写环境文件
#安装nano编辑
apt install nano
#写入文件
sudo nano /mnt/docker/flarum/flarum.env
#根据自己需求修改以下内容粘贴
# 是否启用调试模式(安装失败或白屏时可改成 true)
DEBUG=false
# 论坛访问地址(必须与实际访问完全一致)
# 如果你映射的是 80:8888,用 http://你的服务器IP
# 如果是 8080:8888,用 http://你的服务器IP:8080
FORUM_URL=http://IP
# 数据库配置
DB_HOST=mariadb
DB_NAME=flarum
DB_USER=flarum
DB_PASS=xxxxxxxxxx # ← 改成你自己的数据库密码
DB_PREF=flarum_
DB_PORT=3306
# Flarum 首次安装时自动创建的管理员账号信息
# ⚠️ 密码必须 ≥ 8 位
FLARUM_ADMIN_USER=admin
FLARUM_ADMIN_PASS=YourStrongP@ssw0rd
FLARUM_ADMIN_MAIL=admin@example.com
# 论坛标题
FLARUM_TITLE=My Flarum Forum
# 时区设置(推荐 Asia/Shanghai)
TZ=Asia/Shanghai
粘贴上面的内容,修改:
FORUM_URL=
→ 你的真实访问地址(例如http://IP
)DB_PASS=
→ 改成你数据库密码FLARUM_ADMIN_PASS=
→ 改成你想设置的管理员密码(≥8位)
保存退出(Ctrl + O
→ 回车 → Ctrl + X
)。
5.5 写 Compose 文件
#写入docker-compose.yml
nano /mnt/docker/flarum/docker-compose.yml
#根据自己需求修改
services:
flarum:
image: mondedie/flarum:stable
container_name: flarum
restart: unless-stopped
env_file:
- /mnt/docker/flarum/flarum.env
volumes:
- /mnt/docker/flarum/assets:/flarum/app/public/assets
- /mnt/docker/flarum/extensions:/flarum/app/extensions
- /mnt/docker/flarum/storage/logs:/flarum/app/storage/logs
- /mnt/docker/flarum/nginx:/etc/nginx/flarum
# 如果 80 已被占用,改成 "8080:8888" 并同步修改 FORUM_URL
ports:
- "80:8888"
depends_on:
mariadb:
condition: service_healthy
mariadb:
image: mariadb:10.5
container_name: mariadb
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=改成你的数据库密码
- MYSQL_DATABASE=flarum
- MYSQL_USER=flarum
- MYSQL_PASSWORD=改成你的数据库密码
command:
- mysqld
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- /mnt/docker/mysql/db:/var/lib/mysql
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -u$${MYSQL_USER} -p$${MYSQL_PASSWORD} --silent"]
interval: 5s
timeout: 3s
retries: 15
5.6 启动docker访问flarum
#启动数据库
docker compose up -d mariadb
#启动flarum
docker compose up -d flarum
#安装中文包
docker compose exec flarum sh -lc "cd /flarum/app && composer require flarum-lang/chinese-simplified -W && php flarum cache:clear"
访问
- 你映射的是
80:8888
→ 在浏览器打开:http://<你的服务器IP>/
- 如果改成了
8080:8888
→http://<你的服务器IP>:8080/
用 .env
里设置的账号登录(admin / 你的密码)。

后台可以自己设置站点



6. 结尾
数据库与应用分离、数据可持久化、上线与维护都更可控。接下来可以按需完善:
- 功能扩展:安装中文语言包、
fof/upload
(上传)、fof/seo
(SEO)、sitemap
、fof/recaptcha
(防垃圾)、fof/redis
(缓存)等。 - 生产加固:启用 HTTPS(反向代理 + Let’s Encrypt)、开启 OPcache/Redis、限制注册来源、配置 CDN/防火墙/Fail2ban。
- 备份与升级:定期导出数据库与
assets/
、extensions/
,升级遵循:composer update -a && php flarum migrate && php flarum cache:clear
。 - 可观测性:关注
storage/logs
、反代访问日志与性能监控,及时清理缓存与冗余扩展。
一个好的社区不只在于技术栈,更在于内容与运营。建议尽早规范标签与权限,设置新手指引与版规,鼓励优质内容与互动,让你的论坛从“能用”走向“好用、常用”。祝你搭建顺利,社区长红!