一、服务器环境说明
- 宝塔 7.0.3 或更新版本
- Linux Server(本文用的是 CentOs 7.4.6 64位)
- Apache 或者 Nginx(本文用的是 Nginx 1.16.0)
- MySQL 5.6+(本文使用 MySQL 5.7,原因请看下方引用)
- PHP 7.1+(本文 PHP-7.3)
- phpMyAdmin 4.7
MySQL 自 5.7 开始支持 FULLTEXT 中文搜索,后续方便我们优化 Flarum 论坛的中文关键词搜索。
中文社区网址:https://discuss.flarum.org.cn/
二、安装宝塔 Linux 面板
使用 SSH 工具(查看使用方法),执行命令开始安装(大约2分钟完成面板安装)。
Centos安装宝塔面板命令:
```Plain Text yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
执行安装命令,询问是否安装,回答 “ y ”

[https://s1.ax1x.com/2020/10/15/0ThQjU.png](https://s1.ax1x.com/2020/10/15/0ThQjU.png)
安装完成会打印这些东西(面板 ip 地址、用户名、密码):

[https://s1.ax1x.com/2020/10/15/0Th4KS.png](https://s1.ax1x.com/2020/10/15/0Th4KS.png)
---
## 三、安装 LNMP 环境
浏览器输入宝塔面板的 ip 地址。登陆账号,进入面板。
> 首次进入面板,在弹出的“推荐安装套件”窗口中选择左侧的**「LNMP 极速安装」**
选择好 PHP 等环境的版本号,点击一键安装后,会弹出消息盒子,等待任务执行完毕即可。

[https://s1.ax1x.com/2020/10/15/0T4uad.png](https://s1.ax1x.com/2020/10/15/0T4uad.png)
> 需要注意的是,在 LNMP 安装完成之后,我们还需要安装一些 PHP 的扩展(exif / fileinfo),其中 fileinfo 是必须的,否则下面 Flarum 会安装失败。exif 是图片上传所需的扩展。
进入宝塔面板 – 【软件商店】 – 【已安装】,点击 PHP 设置。

[https://s1.ax1x.com/2020/10/15/0T4NZQ.png](https://s1.ax1x.com/2020/10/15/0T4NZQ.png)
选择【安装扩展】,安装 fileinfo(opcache、exif 非必选)。
等待安装完毕。

[https://s1.ax1x.com/2020/10/15/0T40Gq.png
](https://s1.ax1x.com/2020/10/15/0T40Gq.png)
---
## 四、安装 Composer
### 4.1 更新服务器软件包
使用 SSH 执行下方命令:
Plain Text yum update -y
更新完左下角会提示 “ Complete! ”

[https://s1.ax1x.com/2020/10/15/0T42dJ.png](https://s1.ax1x.com/2020/10/15/0T42dJ.png)
### 4.2 解除 PHP 函数禁用
*此步骤仅适用于宝塔面板用户,如您直接使用 OneinStack 一键安装服务器环境,请**跳过此步**。*
> 宝塔面板默认禁用一些安装 Composer 要用到的 3 个函数 `putenv()` 、 `pcntl_signal()` 、 `proc_open()`,我们需要**解除禁用**,否则导致步骤 4.3 Composer 变更源地址时报错、步骤 5.3 Composer 安装 Flarum 时报错。
如下图所示,进入宝塔面板,打开 PHP 设置,在【禁用函数】中,删除 `putenv` 、 `pcntl_signal` 以及 `proc_open`

[https://s1.ax1x.com/2020/10/15/0T5SQf.png](https://s1.ax1x.com/2020/10/15/0T5SQf.png)
若您不取消这三个函数的禁用,则会出现以下问题:
1.禁用了 `putenv()` 函数,会导致变更 Composer 源地址失败。

2.禁用了 `pcntl_signal()` 函数,会导致无法执行下载 Flarum 命令。

3.禁用了 `proc_open()` 函数,会导致安装 Flarum 报错。

### 4.3 安装 Composer
使用 SSH 依次执行以下命令:
# (此步骤可省略)进入当前用户家目录
7. `cd`
# 将安装脚本下载到当前目录
2.
Plain Text php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
# 运行安装脚本
8. `php composer-setup.php`
# 删除安装脚本
9. `php -r "unlink('composer-setup.php');"`
# 全局安装 composer(配置系统环境变量)
10. `mv composer.phar /usr/local/bin/composer`
> 由于 Composer 的服务器在国外,可能导致下载 Flarum 已经依赖包会很慢,所以我们需要更换一下源地址。至于 Composer 是啥,其实就是 PHP 的一个包管理,类似 Java 的 Maven 和 Gradle 工具。
[——引用自 ryanc.cc](https://ryanc.cc/archives/flarum-install-and-config)
# 变更全局范围内的 Composer 服务器地址:
6.
Plain Text
composer config -g repo.packagist composer https://repo.packagist.org
---
## 五、安装 Flarum
### 5.0 设置设置PHP配置文件:
最大脚本运行时间(max_execution_time):600
脚本内存限制(memory_limit):512M 或 1024M
### 5.1 新建存放 Flarum 的网站
前往宝塔面板 – 【网站】 – 【添加站点】,同时创建用于 Flarum 的数据库。最后提交。
> 务必注意!数据库字符集一定要是 utf8mb4,至于为什么是 utf8mb4,参考:
[https://www.jianshu.com/p/6967ce16a202](https://www.jianshu.com/p/6967ce16a202)
### 5.2 配置 SSL 证书
打开站点设置,进入 SSL 选项卡页面,挑选您想要配置的安全证书方式:
- [宝塔一键 SSL](https://www.bt.cn/ssl)(一年证书免费申请,需要登录宝塔账号并实名认证)
- [Let’s Encrypt 三个月免费证书](https://blog.csdn.net/msllws/article/details/82255078)
- [已有证书文件,上传至宝塔](https://yq.aliyun.com/articles/705391)
配置完成后,请注意开启 “ 强制 HTTPS ”!否则在 6.2 步骤中无法正常访问网站
### 5.3 下载 Flarum
> 因为 Flarum 要求安装目录必须是空目录,因此我们还需要删除刚刚新建的网站目录里的所有文件。
在 SSH 中执行:
# 进入网站目录。注意网站目录每个人都不一样!记得替换!
11. `cd /www/wwwroot/example.com`
# 解除 .user.ini 的文件锁定,否则该文件无法被删除
12. `chattr -i .user.ini`
> 然后在宝塔面板中(或者在 FTP 中)删除网站目录下的所有文件。
# 确保进入网站目录执行([前面也提到了](https://discuss.flarum.org.cn/d/2195#title-4.2),若您禁用了`pcntl_signal()` 函数和 `proc_open()` 函数,此步执行会出错)
13. `composer create-project flarum/flarum .`
执行成功后会下载 Flarum 并更新依赖包。更新依赖包会根据服务器地理位置花费 十几秒 至 三十分钟 不等的时间,请耐心等待。
Flarum 以及对应的依赖安装完成应该是这个样子的:

[https://s1.ax1x.com/2020/10/16/0HJsts.png
](https://s1.ax1x.com/2020/10/16/0HJsts.png)
---
## 六、配置运行
> 上面其实就已经安装好了 Flarum,但是还需要进一步配置才能正确运行。
### 6.1 修改 Nginx 配置
进入宝塔面板,打开站点设置,修改网站配置文件:(可对照下图修改)
14. **root**:需要在路径后面加上 `public`,比如原本是 `root /www/wwwroot/example.com;`,需要修改为 `root /www/wwwroot/example.com/public;`。
15. 引入 Flarum 提供的伪静态配置,在 `server name` 下方加上 `include /www/wwwroot/example.com/.nginx.conf;`,网站目录不要忘记更换成自己的。

[https://s1.ax1x.com/2020/10/29/BG8Nzd.png](https://s1.ax1x.com/2020/10/29/BG8Nzd.png)
修改站点配置,别忘记保存
### 6.2 检查 Nginx 配置
修改完上一步的配置,在点击保存时,宝塔会自动检查,如有错误,会保存失败并弹窗提示。
---
## 七、Flarum 安装引导
在浏览器中访问安装 Flarum 的站点网址。
可以看到出现下面的情况:

[https://s1.ax1x.com/2020/10/15/0T7BKP.png](https://s1.ax1x.com/2020/10/15/0T7BKP.png)
> 这是因为没有给予网站目录写入的权限,我们加一下权限即可:
前往宝塔面板,点击左侧【文件】,(或者使用 SSH 工具)进入 `/www/wwwroot` 目录。
右击您的站点目录,选择【权限】,权限修改为 755 权限并保存。不要忘记勾选 “ 应用到子目录 ”。
接着刷新一下论坛网页就好了,根据图片提示填写好论坛信息。`数据库名`、`数据库用户名`、`数据库密码`都可以在宝塔面板查看。

[https://s1.ax1x.com/2020/10/15/0THoQI.png](https://s1.ax1x.com/2020/10/15/0THoQI.png)
填写完数据库信息、管理员信息,点击安装即可。
安装部署部分到此结束。
---
## 八、常用插件安装
> 安装完成后会发现不支持中文,所以我们需要安装中文语言包。还有一些常用的插件。更多插件,请前往[插件标签](https://iflarum.cn/exts)查看。
# xxx 为网站目录名称,因为安装插件需在 Flarum 根目录执行。
Plain Text cd /data/wwwroot/xxx ```
九、插件
1.主要中文搜索
我已经测试过这是一个可行的解决方案:
MySQL从5.7版本开始支持中文和日文全文索引。使用下面的优化,我相信可以为大多数语言构建全文索引。另外,Flarum开发者表示,未来版本中将使用ElasticSearch分布式全文搜索引擎,但到目前为止,ElasticSearch还没有被使用。另请注意,这种方法会在一定程度上影响数据库性能。
- 找到你的MySQL配置文件(找到数据库配置文件):
The path of my configuration file on the server(我的配置文件在服务器上的路径): /etc/my.cnf
https://i.loli.net/2019/12/23/p6D5E2haWyUcRSQ.png - 在配置文件的“[Mysqld]”下添加以下代码(在配置文件中加入以下内容):
[mysqld] ngram_token_size=2
https://i.loli.net/2019/12/23/dOK1mLVD5Se2cH6.png - 前往 phpMyAdmin 重新索引(前往 phpMyAdmin 重建数据库索引。) 分别执行以下两段(分别执行以下两段):
USE YourFlarumDataBaseName; // 这里替换为你的 Flarum 数据库的名字 ALTER TABLE posts DROP INDEX content; CREATE FULLTEXT INDEX content ON
posts(
content) WITH PARSER ngram;
- https://i.loli.net/2019/12/23/397ok4xz5fdWbFg.png
USE YourFlarumDataBaseName; // 这里替换为你的 Flarum 数据库的名字 ALTER TABLE discussions DROP INDEX title; CREATE FULLTEXT INDEX title ON
discussions(
title) WITH PARSER ngram;
https://i.loli.net/2019/12/23/qhues8A7FRHgCEK.png - 然后我们就完成了!等待一段时间,强制刷新浏览器即可看到效果。(完成!等待一会儿,强制刷新浏览器,查看效果。https://sm.ms/image/JBspQN1D47mjcWo
常见插件
- 简体中文
composer require csineneo/lang-simplified-chinese
- Audio BBCode 视频音乐
composer require zerosonesfun/flarum-bbcode-audio
- Auto Moderator 自动分配用户组
composer require askvortsov/flarum-auto-moderator
- BBCode Download Button 下载链接样式
composer require ramesh-dada/download-button 使用方法:(发贴时下载地址用下面代码,自行修改数据) [down link="https://xaoce.com/" size=2 MB name=逍遥客栈.zip]
- BBCode FA
composer require antoinefr/flarum-ext-bbcode-fa
- Composer Preview 修实时预览
composer require zerosonesfun/composer-preview
- Contactme 联系我
composer require justoverclock/flarum-ext-contactme
8.Diff 贴子修改记录composer require the-turk/flarum-diff
- Discussion Сards 贴子卡片样式
composer require dem13n/discussion-cards
- FREE Forever Realtime Posts 优化php框架,加强站点发布的主题,实现实时刷新
composer require ramesh-dada/realtime
- Fancybox 超好用的图片灯箱
composer require darkle/fancybox
- FoF Default Group 注册自动分配用户组
composer require fof/default-group
- FoF Doorman 邀请码
composer require fof/doorman
- FoF Drafts启用定时发布功能
composer require fof/drafts
- FoF Follow Tags 关注标签
composer require fof/follow-tags
- FoF Formatting 自动识别图片、视频链接,并实时显示图片和视频
composer require fof/formatting
- FoF Links 导航栏链接
composer require fof/links
- FoF Night Mode导航栏显示日夜切换按钮
composer require fof/nightmode
- FoF Pages 自定义静态页面
composer require fof/pages
- FoF Pretty Mail邮件模板
composer require fof/pretty-mail
- FoF Profile Image Crop 用户资料图片允许裁剪
composer require fof/profile-image-crop
- FoF Share Social 分享社交
composer require fof/share-social
- FoF Social Profile 社交网络图标
composer require fof/socialprofile
- FoF terms 注册时同意条款
composer require fof/terms
- FoF Upload 文件上传
composer require fof/upload
- FoF User Bio个性签名字
composer require fof/user-bio
- FoF User Directory会员名录
composer require fof/user-directory
- FoF Username Request申请更改昵称
composer require fof/username-request
- Font Awesome 6 图标字库
composer require blomstra/fontawesome
- Forum Stats Widget首页统计
composer require afrux/forum-stats-widget
- ID Slug by Pipecraft 网页短址
composer require pipecraft/flarum-ext-id-slug
- flarum-ext-bbcode-fa 在帖子中插入FontAwesome图标。
composer require antoinefr/flarum-ext-bbcode-fa
- Login2SeePlus隐藏超过此长度的内容(即登陆可见下载地址)
composer require jslirola/flarum-ext-login2seeplus
- Flarum Moderator Warnings 站务警告
composer require askvortsov/flarum-moderator-warnings
- Money 资产货币
composer require antoinefr/flarum-ext-money
- News Widget 公告
composer require afrux/news-widget
- Online Users Widget 显示在线用户
composer require afrux/online-users-widget
- Predefined Avatars 用户头像
composer require clarkwinkelmann/flarum-ext-predefined-avatars 2023.3.24日在次重装时,在PHP8.1版本,安装此插件,启用就报错!!!
- Popular Discussion* 定义热门条件自动加上热门徽章
该插件有问题,代码清除
- Profile Cover个人资料背景图片
composer require sycho/flarum-profile-cover
- Flarum SEO
composer require v17development/flarum-seo
- Search In Title 中文搜索
composer require ganuonglachanh/flarum-ext-search
- UsernameBlacklist 黑名单
composer require justoverclock/username-blacklist
- User badges 徽章
composer require v17development/flarum-user-badges
- Ziven Daily Check In 签到(需要 antoinefr/flarum-ext-money 扩展)
composer require ziiven/flarum-daily-check-in
- Asirem 样式
composer require afrux/asirem
- Mobile Search 手机端首页搜索
composer require flarumtr/flarum-ext-mobile-search
- Mobile tab 手机端底部导航 (三种样,自用第一种)
composer require acpl/mobile-tab: composer require itnt/flarum-uitab composer require gitzaai/mobile-ui-tab-2
- OXO 样式
composer require yannisme/oxotheme
- Acgembed 视频音乐调用
composer require zequeen/acgembed-remastered
- FoF Best Answer 最佳回复
composer require fof/best-answer
- FoF Merge Discussions 合并主题
composer require fof/merge-discussions
- FoF Split 拆分主题
composer require fof/split
- FoF Drafts 启用定时发布功能 (草稿)
composer require fof/drafts
- FoF FrontPage 精华帖
composer require fof/frontpage
- Hot Discussions 首页右侧热门帖子
composer require justoverclock/hot-discussions
- FoF Default User Preferences 通知,增加用户首选项
composer require fof/default-user-preferences
- FFans Clipboardjs 代码风格
composer require ffans/clipboardjs
- FoF Sitemap 生成网站地图
composer require fof/sitemap
- FoF Ignore Users 屏蔽用户
composer require fof/ignore-users
- FoF Ban IPs* 获取发表者ip
composer require fof/ban-ips
- FoF Subscribed 添加更多的关注事件
composer require fof/subscribed
- FoF Disposable Emails 禁止一次性邮箱
composer require fof/disposable-emails
- FoF Cookie Consent cookie 同意横幅
composer require fof/cookie-consent
- FoF Polls 投票
composer require fof/polls
- FoF Prevent Necrobumping 回复很久以前的贴子发出警告
composer require fof/prevent-necrobumping
- Author Change 修改帖子作者,时间等
composer require clarkwinkelmann/flarum-ext-author-change
- FoF Frontpage精华帖
composer require fof/frontpage
- Stickiest超级置顶
composer require the-turk/flarum-stickiest
- Discussion Bookmarks 帖子书签
composer require clarkwinkelmann/flarum-ext-bookmarks
- emoji Picker Emoji Picker
composer require clarkwinkelmann/flarum-ext-emojionearea
- Fake Data 生成一些虚假数据,例如:用户,帖子
composer require migratetoflarum/fake-data
- FoF Moderator Notes 个人主页留言板
composer require fof/moderator-notes
- FoF Filter 过滤
composer require fof/filter
- FoF BBCode Details 识别更多的BBCode
composer require fof/bbcode-details
- FoF Github Autolink 识别 Github Link
composer require fof/github-autolink
- Who read 谁阅读了
composer require clarkwinkelmann/flarum-ext-who-read
- Color Generator 标签颜色生成
composer require nearata/flarum-ext-tags-color-generator
- NomisCZ WeChat Login 微信登录
composer require nomiscz/flarum-ext-auth-wechat
- Discussion views 浏览记录
composer require michaelbelgium/flarum-discussion-views
- FoF Follow Tags 关注标签
composer require fof/follow-tags
- FoF Byobu 私人主题
composer require fof/byobu
- Follow Users 关注用户回复
composer require ianm/follow-users
- First Post Approval 根据前置批准的数量,后续自动审批
composer require clarkwinkelmann/flarum-ext-first-post-approval
- Email Filter 使用白名单、黑名单甚至正则表达式过滤注册 Flarum 站点的电子邮件。
composer require nyu8/flarum-email-filter
- Synopsis 帖子内容摘要
composer require ianm/synopsis
- Mailing 个人、群发邮件
该插件有问题,代码清除
- Top Posters Widget 月度水王(即发贴或回复数量统计在首页可见)
composer require afrux/top-posters-widget:"*"
Comments NOTHING