宝塔 Linux 面板安装 Flarum

发布于 2023-12-10  107 次阅读


一、服务器环境说明

  1. 宝塔 7.0.3 或更新版本
  2. Linux Server(本文用的是 CentOs 7.4.6 64位)
  3. Apache 或者 Nginx(本文用的是 Nginx 1.16.0)
  4. MySQL 5.6+(本文使用 MySQL 5.7,原因请看下方引用)
  5. PHP 7.1+(本文 PHP-7.3)
  6. 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)

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

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

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

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

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

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

[https://s1.ax1x.com/2020/10/15/0T5SQf.png](https://s1.ax1x.com/2020/10/15/0T5SQf.png)

若您不取消这三个函数的禁用,则会出现以下问题:

1.禁用了 `putenv()` 函数,会导致变更 Composer 源地址失败。

![https://s1.ax1x.com/2020/10/15/0T5dmD.png](https://s1.ax1x.com/2020/10/15/0T5dmD.png)

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

![https://s1.ax1x.com/2020/10/15/0T5sfI.png](https://s1.ax1x.com/2020/10/15/0T5sfI.png)

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

![https://s1.ax1x.com/2020/10/15/0T5g6f.png](https://s1.ax1x.com/2020/10/15/0T5g6f.png)

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

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

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

[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://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还没有被使用。另请注意,这种方法会在一定程度上影响数据库性能。

  1. 找到你的MySQL配置文件(找到数据库配置文件):The path of my configuration file on the server(我的配置文件在服务器上的路径): /etc/my.cnfhttps://i.loli.net/2019/12/23/p6D5E2haWyUcRSQ.png
  2. 在配置文件的“[Mysqld]”下添加以下代码(在配置文件中加入以下内容):[mysqld] ngram_token_size=2https://i.loli.net/2019/12/23/dOK1mLVD5Se2cH6.png
  3. 前往 phpMyAdmin 重新索引(前往 phpMyAdmin 重建数据库索引。) 分别执行以下两段(分别执行以下两段):
  4. USE YourFlarumDataBaseName; // 这里替换为你的 Flarum 数据库的名字 ALTER TABLE posts DROP INDEX content; CREATE FULLTEXT INDEX content ONposts(content) WITH PARSER ngram;
  5. https://i.loli.net/2019/12/23/397ok4xz5fdWbFg.pngUSE YourFlarumDataBaseName; // 这里替换为你的 Flarum 数据库的名字 ALTER TABLE discussions DROP INDEX title; CREATE FULLTEXT INDEX title ONdiscussions(title) WITH PARSER ngram;https://i.loli.net/2019/12/23/qhues8A7FRHgCEK.png
  6. 然后我们就完成了!等待一段时间,强制刷新浏览器即可看到效果。(完成!等待一会儿,强制刷新浏览器,查看效果。https://sm.ms/image/JBspQN1D47mjcWo

常见插件

  1. 简体中文 composer require csineneo/lang-simplified-chinese
  2. Audio BBCode 视频音乐composer require zerosonesfun/flarum-bbcode-audio
  3. Auto Moderator 自动分配用户组composer require askvortsov/flarum-auto-moderator
  4. BBCode Download Button 下载链接样式composer require ramesh-dada/download-button 使用方法:(发贴时下载地址用下面代码,自行修改数据) [down link="https://xaoce.com/" size=2 MB name=逍遥客栈.zip]
  5. BBCode FAcomposer require antoinefr/flarum-ext-bbcode-fa
  6. Composer Preview 修实时预览composer require zerosonesfun/composer-preview
  7. Contactme 联系我composer require justoverclock/flarum-ext-contactme8.Diff 贴子修改记录composer require the-turk/flarum-diff
  8. Discussion Сards 贴子卡片样式composer require dem13n/discussion-cards
  9. FREE Forever Realtime Posts 优化php框架,加强站点发布的主题,实现实时刷新composer require ramesh-dada/realtime
  10. Fancybox 超好用的图片灯箱composer require darkle/fancybox
  11. FoF Default Group 注册自动分配用户组composer require fof/default-group
  12. FoF Doorman 邀请码composer require fof/doorman
  13. FoF Drafts启用定时发布功能composer require fof/drafts
  14. FoF Follow Tags 关注标签composer require fof/follow-tags
  15. FoF Formatting 自动识别图片、视频链接,并实时显示图片和视频composer require fof/formatting
  16. FoF Links 导航栏链接composer require fof/links
  17. FoF Night Mode导航栏显示日夜切换按钮composer require fof/nightmode
  18. FoF Pages 自定义静态页面composer require fof/pages
  19. FoF Pretty Mail邮件模板composer require fof/pretty-mail
  20. FoF Profile Image Crop 用户资料图片允许裁剪composer require fof/profile-image-crop
  21. FoF Share Social 分享社交composer require fof/share-social
  22. FoF Social Profile 社交网络图标composer require fof/socialprofile
  23. FoF terms 注册时同意条款composer require fof/terms
  24. FoF Upload 文件上传composer require fof/upload
  25. FoF User Bio个性签名字composer require fof/user-bio
  26. FoF User Directory会员名录composer require fof/user-directory
  27. FoF Username Request申请更改昵称composer require fof/username-request
  28. Font Awesome 6 图标字库composer require blomstra/fontawesome
  29. Forum Stats Widget首页统计composer require afrux/forum-stats-widget
  30. ID Slug by Pipecraft 网页短址composer require pipecraft/flarum-ext-id-slug
  31. flarum-ext-bbcode-fa 在帖子中插入FontAwesome图标。composer require antoinefr/flarum-ext-bbcode-fa
  32. Login2SeePlus隐藏超过此长度的内容(即登陆可见下载地址)composer require jslirola/flarum-ext-login2seeplus
  33. Flarum Moderator Warnings 站务警告composer require askvortsov/flarum-moderator-warnings
  34. Money 资产货币composer require antoinefr/flarum-ext-money
  35. News Widget 公告composer require afrux/news-widget
  36. Online Users Widget 显示在线用户composer require afrux/online-users-widget
  37. Predefined Avatars 用户头像composer require clarkwinkelmann/flarum-ext-predefined-avatars 2023.3.24日在次重装时,在PHP8.1版本,安装此插件,启用就报错!!!
  38. Popular Discussion* 定义热门条件自动加上热门徽章 该插件有问题,代码清除
  39. Profile Cover个人资料背景图片composer require sycho/flarum-profile-cover
  40. Flarum SEOcomposer require v17development/flarum-seo
  41. Search In Title 中文搜索composer require ganuonglachanh/flarum-ext-search
  42. UsernameBlacklist 黑名单composer require justoverclock/username-blacklist
  43. User badges 徽章composer require v17development/flarum-user-badges
  44. Ziven Daily Check In 签到(需要 antoinefr/flarum-ext-money 扩展)composer require ziiven/flarum-daily-check-in
  45. Asirem 样式composer require afrux/asirem
  46. Mobile Search 手机端首页搜索composer require flarumtr/flarum-ext-mobile-search
  47. Mobile tab 手机端底部导航 (三种样,自用第一种)composer require acpl/mobile-tab: composer require itnt/flarum-uitab composer require gitzaai/mobile-ui-tab-2
  48. OXO 样式composer require yannisme/oxotheme
  49. Acgembed 视频音乐调用composer require zequeen/acgembed-remastered
  50. FoF Best Answer 最佳回复composer require fof/best-answer
  51. FoF Merge Discussions 合并主题composer require fof/merge-discussions
  52. FoF Split 拆分主题composer require fof/split
  53. FoF Drafts 启用定时发布功能 (草稿)composer require fof/drafts
  54. FoF FrontPage 精华帖composer require fof/frontpage
  55. Hot Discussions 首页右侧热门帖子composer require justoverclock/hot-discussions
  56. FoF Default User Preferences 通知,增加用户首选项composer require fof/default-user-preferences
  57. FFans Clipboardjs 代码风格composer require ffans/clipboardjs
  58. FoF Sitemap 生成网站地图composer require fof/sitemap
  59. FoF Ignore Users 屏蔽用户composer require fof/ignore-users
  60. FoF Ban IPs* 获取发表者ipcomposer require fof/ban-ips
  61. FoF Subscribed 添加更多的关注事件composer require fof/subscribed
  62. FoF Disposable Emails 禁止一次性邮箱composer require fof/disposable-emails
  63. FoF Cookie Consent cookie 同意横幅composer require fof/cookie-consent
  64. FoF Polls 投票composer require fof/polls
  65. FoF Prevent Necrobumping 回复很久以前的贴子发出警告composer require fof/prevent-necrobumping
  66. Author Change 修改帖子作者,时间等composer require clarkwinkelmann/flarum-ext-author-change
  67. FoF Frontpage精华帖composer require fof/frontpage
  68. Stickiest超级置顶composer require the-turk/flarum-stickiest
  69. Discussion Bookmarks 帖子书签composer require clarkwinkelmann/flarum-ext-bookmarks
  70. emoji Picker Emoji Pickercomposer require clarkwinkelmann/flarum-ext-emojionearea
  71. Fake Data 生成一些虚假数据,例如:用户,帖子composer require migratetoflarum/fake-data
  72. FoF Moderator Notes 个人主页留言板composer require fof/moderator-notes
  73. FoF Filter 过滤composer require fof/filter
  74. FoF BBCode Details 识别更多的BBCodecomposer require fof/bbcode-details
  75. FoF Github Autolink 识别 Github Linkcomposer require fof/github-autolink
  76. Who read 谁阅读了composer require clarkwinkelmann/flarum-ext-who-read
  77. Color Generator 标签颜色生成composer require nearata/flarum-ext-tags-color-generator
  78. NomisCZ WeChat Login 微信登录composer require nomiscz/flarum-ext-auth-wechat
  79. Discussion views 浏览记录composer require michaelbelgium/flarum-discussion-views
  80. FoF Follow Tags 关注标签composer require fof/follow-tags
  81. FoF Byobu 私人主题composer require fof/byobu
  82. Follow Users 关注用户回复composer require ianm/follow-users
  83. First Post Approval 根据前置批准的数量,后续自动审批composer require clarkwinkelmann/flarum-ext-first-post-approval
  84. Email Filter 使用白名单、黑名单甚至正则表达式过滤注册 Flarum 站点的电子邮件。composer require nyu8/flarum-email-filter
  85. Synopsis 帖子内容摘要composer require ianm/synopsis
  86. Mailing 个人、群发邮件 该插件有问题,代码清除
  87. Top Posters Widget 月度水王(即发贴或回复数量统计在首页可见)composer require afrux/top-posters-widget:"*"

为中华之崛起而读书
最后更新于 2023-12-10