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

相关推荐
Oliver_LaVine19 分钟前
linux搭建Gray
运维
gobeyye27 分钟前
Docker 用法详解
运维·docker·容器
VVVVWeiYee1 小时前
Mesh路由组网
运维·网络·智能路由器·信息与通信
IT枫斗者2 小时前
如何解决Java EasyExcel 导出报内存溢出
java·服务器·开发语言·网络·分布式·物联网
北'辰2 小时前
使用ENSP实现DHCP+动态路由
运维·网络
air_7292 小时前
实验四:构建园区网(OSPF 动态路由)
服务器·网络·智能路由器
雪碧聊技术2 小时前
Docker3:docker基础1
运维·docker·容器·docker常见命令
懒笑翻2 小时前
Python 使用 Selenuim进行自动化点击入门,谷歌驱动,以百度为例
运维·selenium·自动化
n***85942 小时前
Github 开源 10K Stars 自动化 API、后台作业、工作流和 UI 的开发平台
运维·自动化
夜色呦2 小时前
中小企业人事管理自动化:SpringBoot实践
运维·spring boot·自动化