• 技术
  • 如何基于 Flarum 搭建一个优雅简洁论坛?

如果您了解 Flarum,或者使用 Wappalyzer 工具,那您应该很容易了解到,本站(悠然宜想亭)是基于 Flarum 来搭建的;此帖,即与感兴趣的朋友,分享下:"如何基于 Flarum 搭建一个优雅简洁论坛"。

Flarum | 一款优雅简洁论坛软件

Flarum Installation 文档中,颇为清晰的说明 Flarum 该如何安装:

composer create-project flarum/flarum . --stability=beta

但实际操作却有着很多问题;如安装 composer,升级 PHP(PHP 须是 7.2.9+)等等;就升级 PHP 这一项,在 Mac 和两台 Linux 服务器上,都根据 stackoverflow 上的回答,分别做了尝试,却仍有其他各种问题;在耗了蛮长时间后,突然想到,Flarum 这么好的工具,肯定有被集成至 Docker 呀,在 Docker Hub 一经检索,果然存在——mondediefr/docker-flarum💬 🐳 Docker image of Flarum。按照 README 进行操作,很快就搭建完成,并发布上线;在此,跟大家分享下具体操作:

  1. 基于如下方法搭建,须要一个前提,即:安装 Docker 和 docker-compose;
  2. 建议 docker-compose.yml,并做如下配置:
version: "2"

services:
  flarum:
    image: mondedie/flarum:stable
    container_name: flarum
    env_file:
      - ./flarum/flarum.env
    volumes:
      - ./flarum/assets:/flarum/app/public/assets
      - ./flarum/extensions:/flarum/app/extensions
      - ./flarum/nginx:/etc/nginx/flarum
    ports:
      - 8888:8888
    depends_on:
      - mariadb

  mariadb:
    image: mariadb:10.5
    container_name: mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=xxxxxxxxxxx
      - MYSQL_DATABASE=flarum
      - MYSQL_USER=flarum
      - MYSQL_PASSWORD=xxxxxxxxxxx
    volumes:
      - ./mysql/db:/var/lib/mysql
  1. 建立本地目录 flarum 及文件 flarum/flarum.dev,并做配置:
# vim ./flarum/flarum.env

FORUM_URL=https://forum.lovejade.cn

# Database configuration
DB_HOST=mariadb
DB_NAME=flarum
DB_USER=flarum
DB_PASS=xxxxxxxxxxx
DB_PREF=flarum_
DB_PORT=3306

# User admin flarum (environment variable for first installation)
# /!\ admin password must contain at least 8 characters /!\
FLARUM_ADMIN_USER=admin
FLARUM_ADMIN_PASS=xxxxxxxxxxx
FLARUM_ADMIN_MAIL=xyz@xyz.com
FLARUM_TITLE="悠然宜想亭"
  1. 基于 docker-compse 运行命令,启动 Flarum 服务:
docker-compse up -d
  1. 解析域名,配置 Nginx 反代 Flarum 服务(设定为:8888 端口):
    解析域名,这就不在多说了,在域名商处,对想要的域名,添加 A,指定服务器 IP 即可,非常简单;至于 Nginx 配置,也比较简单,即在 nginx/conf.d 目录下,添加了 forum-lovejade-cn.conf 文件,并做了简单配置即可:
upstream forum {
    server 127.0.0.1:8888;
    keepalive 8;
}

server {
    listen 443;
    ssl on;
    ssl_certificate 1_forum.xyz_bundle.crt;
    ssl_certificate_key 2_forum.xyz.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
    ssl_prefer_server_ciphers on;
    server_name forum.lovejade.cn;

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://forum;
   }
}

需要补充说明的是,在 nginx/nginx.conf 文件,原本已经添加 include 命令(如下),因此上面说在 nginx/conf.d 目录下,直接添加新的 *.conf 文件,重启 Nginx 即能生效。

include /etc/nginx/conf.d/*.conf;
  1. 重启 Nginx(nginx -s reload),见证奇迹:浏览器打开域名地址,填写数据库信息以及管理员信息,点击安装即可(如下图)。于是悠然宜想亭就这么搭建了起来,👏

Flarum Install

以上,便是"如何基于 Flarum 搭建一个优雅简洁论坛"的大部分内容,有同欲者,可按照如上方法,搭建属于您的论坛(社区),如有问题,欢迎留言探讨。就使用体验来看,Flarum 有几个明显优点点:

  1. 响应速度,出奇的快,本站未做额外处理,且服务器使用的是 DigitalOcean,朋友们可访问本站,以体验之;
  2. 界面简洁,支持自定义;功能丰富,尤其是后台,支持各种设定;下面就部分功能做了截图,大家可感受下;

Flarum 论坛后台

早些时候倒也想过,手动写一个社区,考虑到所需耗时太长、精力过重,就作罢了;搭建悠然宜想亭,有率先考虑 Discuz!Q88250/symphony 并做尝试,只不过几番操作,却不能快速成事;这才转而折腾 Flarum,深入了解,大感其妙。从 Flarum 的设计哲学,也学到很多:类似工具,须当以简易搭建而始,更多设定,该是在网站后台提供操作;否则,将很多用户绝于道途,这样可不好。

于深圳·福田 2021.03.13,上次修改 2021.03.22。

您可能感兴趣的文章

17 days later

报一个小 bug,英文系统,帐号设置里面,"Change Email" 按钮右边的更改昵称按钮显示为 "flarum-nichnames.forum.settings.change_nickname_button"。

    7 months later

    好厉害,尝试着用 Github Students 的权益去试着搭建一下

      hello 赞呢👍。最近各终云平台厂商推出的云服务器,也可以买来玩一玩儿,相对来讲,蛮优惠的。

      Write a Reply...