欢迎光临
我们一直在努力

教你用服务器Docker搭建一款高性能现代论坛—Flarum

前言

在信息交流越来越依赖在线社区的今天,一个轻量、美观、可扩展的论坛系统能帮助个人或企业快速构建属于自己的用户社区。
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:8888http://<你的服务器IP>:8080/

.env 里设置的账号登录(admin / 你的密码)。

后台可以自己设置站点

6. 结尾

数据库与应用分离、数据可持久化、上线与维护都更可控。接下来可以按需完善:

  • 功能扩展:安装中文语言包、fof/upload(上传)、fof/seo(SEO)、sitemapfof/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、反代访问日志与性能监控,及时清理缓存与冗余扩展。

一个好的社区不只在于技术栈,更在于内容与运营。建议尽早规范标签与权限,设置新手指引与版规,鼓励优质内容与互动,让你的论坛从“能用”走向“好用、常用”。祝你搭建顺利,社区长红!

赞(0)
未经允许不得转载:莱卡云 » 教你用服务器Docker搭建一款高性能现代论坛—Flarum