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 注册账号。
    注册完毕后,可以按照以下步骤创建一台自己的云服务器。

创建云服务器

点击 云产品云服务器立即购买
创建云服务器-1
选择距离你较近的区域,以保证低延迟。
选择区域
带宽建议选择上传和下载大于 30M 即可。
处理器和内存建议选择 2 核 4G。当然,如果想要部署好的的论坛运行更流畅,还是需要配上更好的配置。
配置选择和带宽大小
选择 Ubuntu 22.04 版本,并勾选预装 Docker,接下来的教程会用到 Docker。
选择系统和预装 docker
最后点击 立即购买,并按照提示进行购买。
购买后等待机器部署完毕,点击购买的服务器,进入管理面板,找到远程连接相关信息。
进入服务器管理界面
服务器用户名以及密码
使用 PowerShell 进行远程连接。
打开powershell
输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。
ssh连接
到此为止,我们的云服务器就创建好了。

使用命令安装

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

更新和升级系统

apt update -y
apt upgrade -y

img

安装 LAMP 堆栈和其他依赖项

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

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

img

检查 Apache、MariaDB 和 PHP 状态

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

systemctl is-enabled apache2
systemctl status apache2

systemctl is-enabled mariadb
systemctl status mariadb

img
img
验证 PHP 和 Composer 版本:

php -v
sudo -u www-data composer -v

img

配置防火墙

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

ufw allow 'Apache Full'
ufw allow ssh
ufw enable

img

配置 PHP 设置

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

nano /etc/php/8.3/apache2/php.ini

更新以下设置:

memory_limit = 512M
upload_max_filesize = 150M
max_execution_time = 600
date.timezone = Asia/Shanghai

重新启动 Apache 以应用更改:

systemctl restart apache2

img

保护 MariaDB

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

mariadb-secure-installation

img
img

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

mariadb -u root -p

运行以下 SQL 查询:

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';

img

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

设置目录并安装 Flarum

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

mkdir -p /var/www/{.cache,.config,flarum}
chown -R www-data:www-data /var/www/{.cache,.config,flarum}

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

cd /var/www/flarum/
sudo -u www-data composer create-project flarum/flarum .

img
img
验证文件:

ls -ah

img

为 Flarum 配置 Apache

启用 Apache 模块:

a2enmod ssl rewrite headers

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

nano /etc/apache2/sites-available/flarum.conf

插入以下配置:

<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>

img

启用虚拟主机并重启 Apache

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

a2ensite flarum.conf
apachectl configtest

img
重新启动 Apache 以应用更改:

systemctl restart apache2

在这里插入图片描述


使用 Certbot 安装 SSL 证书

安装 Certbot 和 Apache 插件:

apt install certbot python3-certbot-apache

在这里插入图片描述

生成 SSL 证书:

certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email contact@example.com -d example.com

在这里插入图片描述


从浏览器访问 Flarum

打开浏览器,转到

https://example.com/

你会看到 Flarum 安装向导。按照说明设置论坛。
在这里插入图片描述

安装完成后,你将看到如下所示的 Flarum 管理面板:
在这里插入图片描述

点击用户图标,选择管理。这将显示 Flarum 安装的详细信息。
在这里插入图片描述

Docker 方式部署

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

拉取Flarum Docker镜像

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

# 从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数据库服务:

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和数据库的必要信息:

# 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容器:

docker-compose up -d mariadb
# 等待数据库创建
docker-compose up -d flarum

到这里,你就可以快速地使用Docker部署Flarum论坛。这种方法不仅简化了安装过程,还提高了论坛的可移植性和安全性。
如果你想查看更多高级的使用,可以继续看下面的内容。

安装其他 php 扩展

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
在这里插入图片描述

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/908388.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

独立开发的个人品牌打造:个人IP与独立开发的结合

引言 个人品牌程序员也需要打造。在当今的创意经济中&#xff0c;个人IP与独立开发的结合成为了一种趋势&#xff0c;为个体带来了前所未有的机会和可能性。本文将探讨如何通过打造个人IP来增强独立开发的影响力&#xff0c;并探索这种结合为个人带来的潜在价值。 个人IP的重…

细说STM32单片机USART中断收发RTC实时时间并改善其鲁棒性的方法

目录 一、工程目的 1、 目标 2、通讯协议及应对错误指令的处理目标 二、工程设置 三、程序改进 四、下载与调试 1、合规的指令 2、 proBuffer[0]不是# 3、proBuffer[4]不是; 4、指令长度小于5 5、指令长度大于5 6、proBuffer[2]或proBuffer[3]不是数字 7、;位于p…

AI助力医疗:未来的医生会是机器人吗?

内容概要 在这一场医疗科技的新浪潮中&#xff0c;AI医疗正以前所未有的速度渗透到各个角落。随着技术的飞速进步&#xff0c;人工智能成为了推动医疗领域革新的重要力量。从精准诊断到个性化治疗&#xff0c;AI正在帮助医生们更快速、准确地分析患者的病情&#xff0c;提高了…

数据结构 ——— 向上调整建堆和向下调整建堆的区别

目录 前言 向下调整算法&#xff08;默认小堆&#xff09; 利用向下调整算法对数组建堆 向上调整建堆和向下调整建堆的区别​编辑 向下调整建堆的时间复杂度&#xff1a; 向上调整建堆的时间复杂度&#xff1a; 结论 前言 在上一章讲解到了利用向上调整算法对数组进行…

图数据库 2 | 大数据的演进和数据库的进阶——从数据到大数据、快数据,再到深数据

时至今日&#xff0c;大数据已无处不在&#xff0c;所有行业都在经受大数据的洗礼。但同时我们也发现&#xff0c;不同于传统关系型数据库的表模型&#xff0c;现实世界是非常丰富、高维且相互关联的。此外&#xff0c;我们一旦理解了大数据的演进历程以及对数据库进阶的强需求…

java版询价采购系统 招投标询价竞标投标系统 招投标公告系统源码

在数字化时代&#xff0c;企业需要借助先进的数字化技术来提高工程管理效率和质量。招投标管理系统作为企业内部业务项目管理的重要应用平台&#xff0c;涵盖了门户管理、立项管理、采购项目管理、采购公告管理、考核管理、报表管理、评审管理、企业管理、采购管理和系统管理等…

golang通用后台管理系统02(RSA加密解密,登录密码加密解密)

参考&#xff1a;https://blog.csdn.net/lady_killer9/article/details/118026802 1.加密解密工具类PasswordUtil.go package utilimport ("crypto/rand""crypto/rsa""crypto/x509""encoding/pem""fmt""log"&qu…

性能小钢炮,核显玩3A,最值得买的 8745HS 迷你主机『零刻SER8』,2099的价格是真的香

性能小钢炮&#xff0c;核显玩3A&#xff0c;最值得买的 8745HS 迷你主机『零刻SER8』&#xff0c;2099的价格是真的香 哈喽小伙伴们好&#xff0c;我是Stark-C~ 前一个多月的时候我评测了零刻最新最强大的迷你主机『零刻 SER9』的时候&#xff0c;评论区很多小伙伴都说贵。 …

采购退料单集成方案:从旺店通到金蝶云的API实现

14-采购退料单集成方案&#xff1a;旺店通旗舰奇门数据集成到金蝶云星空 在企业的供应链管理中&#xff0c;采购退料单的高效处理至关重要。为了实现这一目标&#xff0c;我们采用了轻易云数据集成平台&#xff0c;将旺店通旗舰奇门的数据无缝对接到金蝶云星空。本次分享的案例…

Java设计模式(代理模式整理中ing)

一、代理模式 1、代理模式定义&#xff1a; 代理模式&#xff1a;由于某些原因要给某对象提供一个代理以控制对该对象的访问&#xff0c;这时访问对象不适合或者不能够直接引用目标对象&#xff0c;代理对象作为访问对象与目标对象之间的中介进行连接调控调用。 2、代理模式的…

大模型的常用指令格式 --> ShareGPT 和 Alpaca (以 llama-factory 里的设置为例)

ShareGPT 格式 提出背景&#xff1a;ShareGPT 格式起初来自于用户在社交平台上分享与聊天模型的对话记录&#xff0c;这些记录涵盖了丰富的多轮对话内容。研究者们意识到&#xff0c;这类真实的对话数据可以帮助模型更好地学习多轮对话的上下文保持、回应生成等能力。因此&…

AI问答:Google Authenticator(谷歌动态口令) / 设置及操作过程记录

Google Authenticator&#xff0c;即谷歌身份验证器&#xff0c;是谷歌推出的一款基于时间的一次性密码&#xff08;Time-based One-time Password&#xff0c;简称TOTP&#xff09;验证工具。以下是关于Google Authenticator验证的详细解释。 一、工作原理 Google Authentic…

PD虚拟机问题:“无法连接到 Parallels 服务” 解决方法

在使用Parallels Desktop 虚拟机的时候&#xff0c;启动时出现以下错误消息&#xff1a; a. Parallels Desktop 无法启动 b. 无法连接至 Parallels服务 c. 在该虚拟机中没有安装操作系统 遇到以上3种问题怎么解决呢&#xff1f;可能的原因如下&#xff1a; 过时的 macO…

干掉复杂的工具类,Hutool 工具库确实香!

Hutool 是一个超全的 Java 工具库&#xff0c;深受国内开发者的喜爱。目前确实是成为了国内使用最广的工具库之一了&#xff0c; Gitee 上的 Star 数也到了 23k 。最近新版本有所改动&#xff0c;这里分享一下最新版本的介绍。 一、Hutool简介 Hutool 真心是一个不错的国产 J…

Rust 力扣 - 2461. 长度为 K 子数组中的最大和

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们遍历长度为k的窗口&#xff0c;用一个哈希表记录窗口内的所有元素&#xff08;用来对窗口内元素去重&#xff09;&#xff0c;我们取哈希表中元素数量等于k的窗口总和的最大值 题解代码 use std::collecti…

LeetCode 684.冗余连接:拓扑排序+哈希表(O(n)) 或 并查集(O(nlog n)-O(nα(n)))

【LetMeFly】684.冗余连接&#xff1a;拓扑排序哈希表&#xff08;O(n)&#xff09; 或 并查集&#xff08;O(nlog n)-O(nα(n))&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/redundant-connection/ 树可以看成是一个连通且 无环 的 无向 图。 给定往…

数字IC后端实现之Innovus Place跑完density爆涨案例分析

下图所示为咱们社区a7core后端训练营学员的floorplan。 数字IC后端实现 | Innovus各个阶段常用命令汇总 该学员跑placement前density是59.467%&#xff0c;但跑完place后density飙升到87.68%。 仔细查看place过程中的log就可以发现Density一路飙升&#xff01; 数字IC后端物…

项目管理软件:5款甘特图工具测评

在项目管理中&#xff0c;甘特图作为一种直观且高效的任务进度展示工具&#xff0c;被广泛应用于各个行业。以下是几款功能强大、易于使用的甘特图工具&#xff0c;它们能够帮助项目经理更好地规划、跟踪和管理项目进度。 1、进度猫 进度猫是国内项目管理新秀&#xff0c;是…

MYSQL 真实高并发下的死锁

https://pan.baidu.com/s/1nM3VQdbkNZhnK-wWboEYxA?pwdvwu6 下面是风控更新语句 ------------------------ LATEST DETECTED DEADLOCK ------------------------ 2023-08-04 01:00:10 140188779017984 *** (1) TRANSACTION: TRANSACTION 895271870, ACTIVE 0 sec starting …

CTFshow之信息收集第11关到20关。详细讲解

得而不惜就该 --小阁老 新篇章的接续&#xff01; 一、实验准备 1、ctf网站&#xff1a;ctf.show 2、工具&#xff1a;chrome浏览器、hackbar插件 3、burpsuite抓包工具 二、实验技巧 &#xff08;一&#xff09;域名与子域名的dns解析记录 &#xff08;二&#xff09…