Flarum:简洁而强大的开源论坛软件

Flarum简介

Flarum是一款开源论坛软件,以其简洁、快速和易用性而闻名。它继承了esoTalk和FluxBB的优良传统,旨在提供一个不复杂、不臃肿的论坛体验。Flarum的核心优势在于:

  • 快速、简单: Flarum使用PHP构建,易于部署,界面采用高性能的JavaScript框架Mithril,确保了论坛的响应速度和简洁性。
  • 漂亮、响应式: 以人为本的设计哲学让Flarum在不同设备和平台上都能提供一致且直观的用户体验。
  • 强大、可扩展: Flarum允许你根据社区需求进行定制、扩展或集成,基于MIT协议发布,保证了其灵活性和自由度。
  • 免费、开源: Flarum以MIT许可证发布,意味着你可以自由使用、修改和分发。

Flarum的哲学和价值观深深植根于其开源社区,它鼓励并依赖社区的贡献来不断改进和扩展。无论是开发者、技术写作者、翻译者还是普通用户,每个人都可以为Flarum项目贡献自己的力量。

接下来,我将详细介绍如何在Linux上部署Flarum,并提供一些基本的使用教程,让你能够快速上手并充分利用Flarum的强大功能。

环境准备

服务器准备

必要前提:

  • 一台有公网 IP 的 Linux 服务器,可以选择腾讯云,阿里云,或者雨云等。
  • 本文以 雨云 为例。
    你可以点击此链接 https://www.rainyun.com/NTEzMTM1_?s=blog 注册账号。
    注册完毕后,可以按照以下步骤创建一台自己的云服务器。

创建云服务器

点击 云产品云服务器立即购买

选择距离你较近的区域,以保证低延迟。

带宽建议选择上传和下载大于 30M 即可。

处理器和内存建议选择 2 核 4G。当然,如果想要部署好的的论坛运行更流畅,还是需要配上更好的配置。

选择 Ubuntu 22.04 版本,并勾选预装 Docker,接下来的教程会用到 Docker。

最后点击 立即购买 ,并按照提示进行购买。

购买后等待机器部署完毕,点击购买的服务器,进入管理面板,找到远程连接相关信息。

使用 PowerShell 进行远程连接。

输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。

到此为止,我们的云服务器就创建好了。

使用命令安装

接下来,我会带大家一步一步安装。

更新和升级系统

bash 复制代码
apt update -y
apt upgrade -y

安装 LAMP 堆栈和其他依赖项

安装 Apache、MariaDB、PHP 和其他所需的依赖项:

shell 复制代码
apt install apache2 mariadb-server php php-common php-mysql libapache2-mod-php php-gd php-curl php-json php-xmlrpc php-intl php-bcmath php-zip php-apcu php-mbstring php-fileinfo php-xml php-soap php-tokenizer composer git -y

检查 Apache、MariaDB 和 PHP 状态

确保 Apache 和 MariaDB 已启用并运行:

bash 复制代码
systemctl is-enabled apache2
systemctl status apache2

systemctl is-enabled mariadb
systemctl status mariadb


验证 PHP 和 Composer 版本:

bash 复制代码
php -v
sudo -u www-data composer -v

配置防火墙

允许通过 UFW 防火墙访问 Apache:

bash 复制代码
ufw allow 'Apache Full'
ufw allow ssh
ufw enable

配置 PHP 设置

编辑php.ini文件以符合你的环境要求:

bash 复制代码
nano /etc/php/8.3/apache2/php.ini

更新以下设置:

bash 复制代码
memory_limit = 512M
upload_max_filesize = 150M
max_execution_time = 600
date.timezone = Asia/Shanghai

重新启动 Apache 以应用更改:

bash 复制代码
systemctl restart apache2

保护 MariaDB

运行mariadb-secure-installation命令移除匿名用户,禁用远程root登录,并确保MariaDB的安全:

bash 复制代码
mariadb-secure-installation

创建新数据库和用户

登录 MariaDB 并创建数据库和用户:

bash 复制代码
mariadb -u root -p

运行以下 SQL 查询:

bash 复制代码
CREATE DATABASE flarum;
CREATE USER 'flarum'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON flarum.* TO 'flarum'@'localhost';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'flarum'@'localhost';

现在键入 quit 退出 MariaDB 服务器。

设置目录并安装 Flarum

创建必要的目录,并将所有权更改为 www-data

bash 复制代码
mkdir -p /var/www/{.cache,.config,flarum}
chown -R www-data:www-data /var/www/{.cache,.config,flarum}

导航到 Flarum 目录,使用 Composer 安装:

bash 复制代码
cd /var/www/flarum/
sudo -u www-data composer create-project flarum/flarum .


验证文件:

bash 复制代码
ls -ah

为 Flarum 配置 Apache

启用 Apache 模块:

bash 复制代码
a2enmod ssl rewrite headers

创建一个新的虚拟主机文件:

bash 复制代码
nano /etc/apache2/sites-available/flarum.conf

插入以下配置:

xml 复制代码
<VirtualHost *:80>
 ServerAdmin contact@example.com
 DocumentRoot /var/www/flarum/public
 ServerName example.com

 <Directory /var/www/flarum/public/>
 Options FollowSymlinks
 AllowOverride All
 Require all granted
 </Directory>

 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined

 <Directory /var/www/flarum/public/>
 RewriteEngine on
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*) index.php [PT,L]
 </Directory>
</VirtualHost>

启用虚拟主机并重启 Apache

启用虚拟主机并验证 Apache 配置:

bash 复制代码
a2ensite flarum.conf
apachectl configtest

重新启动 Apache 以应用更改:

bash 复制代码
systemctl restart apache2

使用 Certbot 安装 SSL 证书

安装 Certbot 和 Apache 插件:

bash 复制代码
apt install certbot python3-certbot-apache

生成 SSL 证书:

bash 复制代码
certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email contact@example.com -d example.com

从浏览器访问 Flarum

打开浏览器,转到

bash 复制代码
https://example.com/

你会看到 Flarum 安装向导。按照说明设置论坛。

安装完成后,你将看到如下所示的 Flarum 管理面板:

点击用户图标,选择管理。这将显示 Flarum 安装的详细信息。

Docker 方式部署

也许你会觉得命令方式部署太复杂了,接下来,我会再教给大家如何使用 Docker 方式部署

拉取Flarum Docker镜像

你可以直接从Docker Hub拉取最新的mondedie/flarum镜像,或者从GitHub手动构建它:

bash 复制代码
# 从Docker Hub拉取:
docker pull mondedie/flarum:latest

# 或者从GitHub手动构建:
docker build -t mondedie/flarum:latest https://github.com/mondediefr/docker-flarum.git

配置Docker Compose

创建一个docker-compose.yml文件,配置Flarum服务和相关的MariaDB数据库服务:

yaml 复制代码
version: "3"

services:
  flarum:
    image: mondedie/flarum:stable
    container_name: flarum
    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
    ports:
      - 80:8888
    depends_on:
      - mariadb

  mariadb:
    image: mariadb:10.5
    container_name: mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=xxxxxxxxxx
      - MYSQL_DATABASE=flarum
      - MYSQL_USER=flarum
      - MYSQL_PASSWORD=xxxxxxxxxx
    volumes:
      - /mnt/docker/mysql/db:/var/lib/mysql

设置环境变量

创建一个环境变量文件flarum.env,配置Flarum和数据库的必要信息:

bash 复制代码
# vi /mnt/docker/flarum/flarum.env

DEBUG=false
FORUM_URL=http://domain.tld

# 数据库配置
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=xxxxxxxxxx
FLARUM_ADMIN_MAIL=admin@domain.tld
FLARUM_TITLE=Test flarum

运行Docker Compose

启动MariaDB和Flarum容器:

bash 复制代码
docker-compose up -d mariadb
# 等待数据库创建
docker-compose up -d flarum

到这里,你就可以快速地使用Docker部署Flarum论坛。这种方法不仅简化了安装过程,还提高了论坛的可移植性和安全性。

如果你想查看更多高级的使用,可以继续看下面的内容。

安装其他 php 扩展

yaml 复制代码
version: "3"

services:
  flarum:
    image: mondedie/flarum:stable
    container_name: flarum
    environment:
      - PHP_EXTENSIONS=gmp session brotli
    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

安装自定义扩展

**Flarum扩展列表 😗*https://rob006-software.github.io/flarum-translations/status/zh_Hans.html

安装扩展
bash 复制代码
docker exec -ti flarum extension require some/extension
删除扩展
bash 复制代码
docker exec -ti flarum extension remove some/extension
列出所有扩展
bash 复制代码
docker exec -ti flarum extension list

相关链接
雨云 - 新一代云服务提供商:https://www.rainyun.com/NTEzMTM1_?s=blog
我的博客:https://blog.ivwv.site

相关推荐
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz2 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智2 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_2 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈2 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
施努卡机器视觉2 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
程序猿阿伟2 天前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome