【实用github项目】利用宝塔Linux安装一个现代化的的论坛程序—— Flarum
本文最后更新于 2024-04-22,
若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益, 请联系我 删除。
本站只有Telegram群组为唯一交流群组, 点击加入
文章内容有误?申请成为本站文章修订者或作者? 向站长提出申请
前言
Flarum 是esoTalk和FluxBB的联合继承者。它的设计目的是:
- 快速而简单。没有混乱,没有臃肿,没有复杂的依赖关系。 Flarum 使用 PHP 构建,因此部署起来既快速又简单。该界面由Mithril提供支持,这是一个占用空间很小的高性能 JavaScript 框架。
- 美丽且反应灵敏。这是人类的论坛软件。 Flarum 经过精心设计,跨平台一致且直观,开箱即用。
- 功能强大且可扩展。定制、扩展和集成 Flarum 以适合您的社区。 Flarum 的架构非常灵活,具有强大的扩展 API。
- 免费且开放。 Flarum 是在MIT 许可下发布的。
他们的目标是定义未来10年的论坛发展模式,在大陆内可以取代传统的Discuz论坛程序。
准备
本次使用宝塔国际版(aapanel)此版本宝塔无需登录,即开即用,安装脚本
URL=https://www.aapanel.com/script/install_6.0_en.sh && if [ -f /usr/bin/curl ];then curl -ksSO "$URL" ;else wget --no-check-certificate -O install_6.0_en.sh "$URL";fi;bash install_6.0_en.sh aapanel
需要安装好以下的软件和拓展,以及函数解禁
- Apache和Nginx可以选择一个安装,我这里使用Apache
- 选择扩展 必装:
opcache
,fileinfo
,curl
,gd
,pdo_mysql
,mysqli
,bz2
,exif
。 - 选择扩展 选装:
yaf
,imap
,redis
。 - 确认并安装环境,等待运行环境状态变为可用。
打开 PHP 设置,在 【禁用函数】 中,删除 putenv
、 pcntl_signal
以及 proc_open
。
安装 Composer
安装 Composer使用 SSH 依次执行以下命令:
更新服务器软件包(非必需,视情况选择)
apt update
CD 服务器根目录,全局安装 composer
cd ~
将安装程序下载到当前目录
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
运行安装程序
php composer-setup.php
删除安装程序
php -r "unlink('composer-setup.php');"
将 composer.phar 移至默认目录
mv composer.phar /usr/local/bin/composer
安装 Flarum
新建网站
前往宝塔面板 – 【网站】 – 【添加站点】,同时创建用于 Flarum 的数据库。最后提交。
清空网站目录
删除网站根目录下的所有文件,网站设置—>网站目录—>去掉勾选防跨站攻击
删除里面的所有文件
下载安装 Flarum
在网站根目录点击终端进入根目录命令行输入代码下载安装flarum
composer create-project flarum/flarum . --stability=beta
在安装完之后,你还需要回到网站配置中,将运行目录设置为 /public
配置运行
上面其实就已经安装好了 Flarum,但是还需要进一步配置才能正确运行。
配置ssl证书
使用let's Encrypt自动申请证书并且续签(使用前必须要将你的IP绑定到DNS的域名解析上,否则无法签发证书)
修改代理配置
Apache无需配置代理设置
Nginx引入 Flarum 提供的配置,在**root /www/wwwroot/xxx/public;**下方加
上include /www/wwwroot/xxx/.nginx.conf;,xxx为网站目录名。
比如我的是 include /www/wwwroot/flarum.poiblog.com/.nginx.conf;
那么在nginx配置的第9行和第10行应该为
root /www/wwwroot/flarum.poiblog.com/public;
include /www/wwwroot/flarum.poiblog.com/.nginx.conf;
配置完后回到软件商店重载nginx配置
网站目录写入权限
进入网站根目录上级wwwroot目录,更改网站文件夹的目录权限为775,所有者www,应用到子文件夹
安装插件
默认系统语言是English,可以通过安装插件的方式来增加功能。安装插件需要进入到域名根目录 /www/wwwroot/你的网站域名
可以去这个网站查找你需要的插件https://extiverse.com/
插件安装
中文汉化插件
composer require littlegolden/flarum-lang-simplified-chinese
繁体中文语言包
composer require csineneo/lang-traditional-chinese
编辑器 Emoji 表情选择框
composer require clarkwinkelmann/flarum-ext-emojionearea
导航栏菜单插件
composer require fof/links
显示帖子阅读次数
composer require michaelbelgium/flarum-discussion-views
生成静态页面
composer require fof/pages
上传文件
composer require fof/upload
站点地图 生成器
composer require flagrow/sitemap
Fancybox 插件
composer require squeevee/flarum-ext-fancybox
插件推荐
请去网站搜索对应的安装指令https://extiverse.com/
ACG Embed
嵌入 Bilibili 、AcFun 的视频
Analytics
给论坛加入 谷歌统计
和 Piwik 统计
服务截图
Author Change
允许版主或管理员变更主题、帖子的作者(发布者)。
Dashboard
在论坛后台,将 Flarum 原生的插件页面整合进“概览”页面,并添加一个表格,统计会员数、主题数、回复数。
Doorman
看门人。邀请码机制。拥有邀请码才可以注册论坛。
Flagrow Direct Links
主要功能:可以通过 URL 链接 打开“登陆”“注册”“文本编辑器”界面。
Flagrow Sitemap
生成论坛的站点地图。
FoF Default User Preferences
启用后,新用户注册完成时,自动开启他的“有人回复了我”“有人@我”时发送邮件的通知。
FoF Filter
保存出错的问题已修复
敏感词过滤器。发帖时检测帖子内是否存在敏感词、违规词。若有,暂时隐藏该贴,管理员审核通过后才会公开显示截图
FoF Formatting
自动识别图片、视频等链接,转换为易于阅读的嵌入式内容。
FoF Linguist
自定义翻译论坛的各个元素。在论坛后台增加“翻译”页面,在其中可以搜索论坛中的元素,修改它们在不同语言下的翻译。
FoF Pages
自定义 HTML 页面,可以配合 FoF Links 插件使用。
FoF Pretty Mail
自定义邮件模板。允许站长在论坛后台修改三种邮件样式。
FoF Prevent Necrobumping
防止挖坟。当一个主题长达 n 天没有被回复,则在有人想要回复此主题时,提醒用户“这个主题已经很久没人讨论了,确定要回复吗?”。
FoF Spamblock
标记垃圾用户。
FoF Subscribed
给管理员增加两个通知选项。分别是“当有人发布了新主题”“当有新用户注册”。
PWA
渐进式 Web 应用。允许用户将网页以 APP 的形式安装到桌面。支持所有支持 PWA 的浏览器(不限平台)。
SEO
搜索引擎优化。
Web Push Notification
OneSignal Web 通知推送。
Announce
在论坛网页顶部,或左侧空白处添加一个“扩音器”公告按钮,用户点击这个按钮,会展示站长自定义的文本通知内容。
Back to Top
在论坛右下角添加一个“返回顶部”的按钮,按钮位置、大小自适应屏幕。
Color Circles
如果一个用户加入了一个用户组,则在该用户的头像外围增加一圈与其用户组颜色相同的描边。
Diff
编辑记录功能,开启后,可以查看每个帖子的编辑记录(每次编辑都有哪些地方有修改)。
Discussion views
主题浏览记录。一是在首页信息流中,每个主题标题右边显示这个主题被浏览了多少次。
二是在每个主题中,添加一个列表,展示有哪些人浏览了主题。
Emoji Picker
Emoji 选择器。需要原生选择器支持。拥有更多功能的 Emoji 表情选择器,可以替换掉文本编辑器中 Flarum 原生的 Emoji 表情按钮。
FancyBox
可以放大、平移帖子中的图片,另外也增加了几个不痛不痒的图片排版。
Flagrow Ads
在论坛三个地方添加广告位,分别是首页左侧侧边栏、首页页眉、帖子中的每个楼层之间。
FoF Best Answer
类似于百度知道的“被采纳答案”功能,允许每个主题的发布者在所有回复中选择一个“最佳回复”。
FoF Byōbu
私密主题,只有选定的人才能查看、参与讨论。
FoF Drafts
草稿功能,发布、回复帖子时,可以将内容暂存至草稿箱。不用担心不小心关掉网页后码的字丢失。
FoF Follow Tags
允许用户订阅标签,当标签下有新主题或回复时,通知用户。
FoF Forum Statistics Widget
在论坛首页左侧侧边栏展示论坛统计信息:主题数、用户数、回复数等。
FoF Gamification
替换点赞按钮,增加投票功能,可以给帖子点击“踩”。在主页添加点赞排名页面等。
FoF GeoIP
记录每个帖子发帖时的 ip 地址。
FoF Links
在论坛左上角 LOGO 右边添加自定义链接。
FoF Merge Discussions
允许将一个主题合并到另一个主题。
FoF Night Mode
在论坛右上角用户菜单栏中添加“夜间模式/日间模式”的切换按钮。
FoF Polls
可以在发布主题时增加投票。
FoF Profile Image Crop
上传头像时,增加裁剪功能
FoF Reactions
戳表情。在点赞按钮左侧添加表情按钮,用户可以选择一个表情,表达看到该帖子的心情。
FoF Share Social
分享按钮。在主题页面中,添加分享按钮。
.FoF Social Profile
允许用户在资料卡片上添加社交媒体按钮。
FoF Split
拆分帖子。可以将一个主题内多个帖子拆分出来,组成一个新主题。
FoF Terms
添加用户条款。在注册窗口中,添加条款选项。
FoF Upload
允许用户上传图片、视频、文件等。
FoF User Bio
个性签名。
FoF User Directory
论坛用户名单。在主页添加一个页面,列出论坛所有的注册用户。
FoF Username Request
允许用户申请修改用户名。
FoF reCAPTCHA
在注册窗口中,加入谷歌验证码。和“用户条款”插件配合使用,可以特别有效的防止恶意注册。
Link Decisions
外链打开方式。当用户单击论坛中的外链时,弹出窗口提示用户选择“在当前页面打开链接”或“在新标签页中打开链接”。
Mailing
邮件群发功能。
Money
用户资产。发帖、回复时可获得一定的论坛金钱奖励。
Online Users
在线用户。在侧边栏显示当前在线的用户。
Password Strength Indicator
密码强度检测。在用户注册时提示密码的强度。
Post Date
发布日期修改。修改帖子的发布、编辑日期。
Profile views
最近访客。在用户资料卡中显示其访客数量、在用户主页显示最近的访客具体有那些人。
ReFlar Cookie Consent
Cookie 同意横幅。
ReFlar Level Ranks
经验条。增加等级经验条,发帖、回复可获得经验。
Realtime Chat
在线聊天室。需要开启 Pusher 插件使用。
Show Last Posts
显示最新回复。在论坛首页的信息流中,每个主题都展示出最新回复,字数自定。
Show Password
显示密码。注册或登陆时,可以选择显示密码。
Sign Up Button
注册按钮。未登录时,将首页发布主题按钮替换为注册按钮。
Status
用户心情。在个性签名下面添加一行描写自定义心情。
BBCode Alerts & Notifications
允许在帖子中插入 提示框、警告框等自定义文本框。
BBCode FA
允许在帖子中插入 FontAwesome 图标。
FoF BBCode Tabs
允许在帖子中插入类似于标签选项卡的表单。
BBBBcode
大美BBCode。增加大量 BBCode 文本样式。
Login 2 See
登录后可见。用户登陆后才可以看见相关内容。
Reply 2 See
回复后可见。用户回复后才可以看见相关内容。
FoF Discord Login
Discord 登录。允许用户通过 Discord 账号登录。
Google Login
谷歌登录。允许用户通过谷歌账号登录。
WeChat Login
微信登录。允许用户通过微信账号登录。5. Steam Login
Steam 登录。允许用户通过 Steam 账号登录。
Stargazing Theme
观星主题。
OXO主题
默认配色:#276bb0
,#6699cc
你可以自由搭配颜色进行切换
composer require yannisme/oxotheme
Asirem
由Afrux用土豆作为燃料制作的 奇怪的Flarum主题。
composer require afrux/asirem
简体中文 by Golden
繁体中文 by Csineneo
日本语
安装完成后去后台启用即可(后台地址:网址/admin)。
请注意!不要一次性安装过多插件,请插件一个一个安装后启用进行测试,有些插件会产生不兼容的现象。会导致无法登陆后台,无法使用系统等bug!
Flarum 使用 Redis cache & queues 实现缓存和队列
使用 composer
安装
composer require blomstra/flarum-redis:\*
在你的 extend.php
文件里修改
return [
new Blomstra\Redis\Extend\Redis([
'host' => '127.0.0.1',
'password' => null,//建议为您的Redis设置密码,此前有很多关于通过Redis入侵服务器的报道
'port' => 6379,
'database' => 1,
])
];
更多详细配置,详见 Github:blomstra/flarum-redis
在PHP配置内启用Redis作为驱动
配置 Supervisor
参考资料:使用 Supervisor 管理 Laravel 队列进程
若你使用宝塔面板,可以进入宝塔控制面板:
步骤:【软件商店】->【Supervisor管理器】->【添加守护进程】
按以下格式添加 php flarum queue:work
命令,并确保进程状态处于 RUNNING