速建 Flarum 论坛全解

前言

Flarum 是一个很棒的论坛程序,在这里记录下非常详细的适用于 宝塔+Linux 的搭建步骤,供环境相同的同志们参考参考。

本文将教各位如何快速搭建 Flarum 论坛,以下内容基于腾讯云讲解,基于宝塔进行网站管理。

关于如何选购服务器,本处不再论述。

2022-05-04
13:38
拓展用途
加入使用 Sonic 实现中文搜索的解法
2022-05-03
23:14
发布文章
第一个版本,尚未作出修改

需求环境

  1. 宝塔 7.5.0 以上版本(本文使用 宝塔 7.9.0 演示)
  2. Linux 服务器(本文使用 Ubuntu 20.04.4 LTS x86_64 演示)
  3. Apache or Nginx(本文使用 Tengine 演示)
  4. MySQL 5.6 或以上
  5. PHP 7.1+
  6. phpMyAdmin 4.6 或以上(本文使用 phpMyAdmin 5.2 演示)
推荐使用 MySQL 5.7 以上获得全语言兼容,方便后续不使用 Sonic 外置搜索实现中文搜索

安装宝塔

查看此链接以了解如何使用 SSH 安装宝塔:https://www.bt.cn/bbs/thread-1971-1-1.html

在安装宝塔之前,可以使用诸如:

# 在 RHEL 类系统上
yum upgrade -y
# 在 Debian 类系统上
apt full-upgrade -y

等命令为系统进行软件升级更新等操作。

执行以下命令在大部分基于 Linux 内核系统上安装宝塔:

if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh \
https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec

执行宝塔安装命令后,输入 “y”  以确认安装如下图:

完成安装后,会打印出宝塔入口,在例如 腾讯云、阿里云、UCloud 等平台放行 8888 端口后即可进入面板:

配置软件

进入宝塔后,会提示如图内容:

选择 LNMP 套件,同时修改软件版本,尽量选择新版,或者直接按照下图进行配置:

等待安装完毕即可,此时服务器占用可能上升。

PHP 配置

进入左侧栏 [软件商店] -> [已安装] 内,找到 PHP 7.4,进入后点击 [安装拓展],安装必要的拓展。

安装 [bt_safe] 增强防跨站功能,[fileinfo] 为 Flarum 论坛程序必须插件,[Opcache] 负责缓存页面加速运行效率。

部分情况下可能需要安装拓展 [exif] 以实现图片信息的展示

配置 Composer

在宝塔高版本,已经内置了 Composer,可以直接使用,这里演示不使用宝塔安装 Composer 的步骤。

同样,如上文进入 PHP 的设置页面,点击左侧栏的 [禁用函数]。

宝塔面板默认禁用一些安装 Composer 要用到的 3 个函数 putenv() 、 pcntl_signal() 、 proc_open(),我们需要解除禁用,否则导致 Composer 变更源地址时报错、Composer 安装 Flarum 时报错。

安装 Composer

使用 SSH 依次执行下列命令(不同发行版的 Linux 可能略有区别)

# 进入用户目录
cd
# 将 Composer 安装脚本保存到本地
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
# 运行安装命令
php composer-setup.php
# 删除安装脚本
php -r "unlink('composer-setup.php');"
# 配置系统变量以直接使用
mv composer.phar /usr/local/bin/composer
# 修改 Composer 源地址为阿里镜像(可选|需开放 putenv() 函数)
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
由于 Composer 的服务器在国外,可能导致下载 Flarum 已经依赖包会很慢,所以我们需要更换一下源地址。至于 Composer 是啥,其实就是 PHP 的一个包管理,类似 Java 的 Maven 和 Gradle 工具。

安装 Flarum

新建网站

进入宝塔侧边栏中的 [网站] 模块创建一个 PHP 项目,可按照下图配置:

注意此处数据库编码需要设置为 utf8mb4,才可以获得全语言兼容

配置 SSL(可选)

推荐使用 GTS 泛域名证书,详情可看:使用 ACME 协议签发 GTS 证书

下载 Flarum

在安装前,请确保为空目录,否则可能报错

在 SSH 中安装

# 进入网站目录,注意替换
cd /www/wwwroot/你设置的目录
# 解除防跨站设置
chattr -i .user.ini
# 执行 Composer 安装
composer create-project flarum/flarum

执行成功后会下载 Flarum 并更新依赖包。下载或更新依赖包时间根据服务器地理位置、带宽等因素不定,如果为国内服务器没速度可以尝试替换为阿里云镜像。

安装完成后如图:

Flarum 已经安装在 [网站目录/flarum] 文件夹内了,如果需要请将内容剪切到主目录方便后续调整

在宝塔中安装

在宝塔的 [网站] 页中,进入站点设置,按照下图设置进行 Composer 在宝塔的 GUI 式安装:

配置 Flarum

安装完成后,在网站目录下会有如图的文件:

返回左侧栏的 [网站] 页面,进入网站配置文件配置伪静态:

在任意位置创建新行,并插入如下配置以启用伪静态功能:

include /www/wwwroot/网站目录/.nginx.conf;

修改完毕后,点击保存,进入左侧栏的 [网站目录] 页面,将运行目录修改为 [public]:

修改完毕后请勿忘记点击保存。

进入安装页面

将域名解析到服务器 IP 后,进入页面,可能会出现下图报错:

这是因为文件权限默认是 root 账户的,进入文件管理页面后,给网站目录设置 www 的权限

修改完成后,进入页面,即可看到安装配置界面,按照图中提示的信息进行配置即可:

恭喜,如无意外,您成功安装了 Flarum 论坛,效果如图:

后台管理地址为 [网站域名/admin] 用户名及密码在安装过程中已设置。

其他插件

因为网站语言默认为英文,通过安装语言包的方式可以解决:

通过这些插件可以实现常用功能。

中文搜索(可选)

MySQL 5.7 适用

通过 MySQL 5.7 更新的特性,在该版本已经提供了全语言兼容,由此来实现中文搜索兼容。请注意,此方法会在一定程度上影响数据库性能,且还是会存在部分标题中的关键词无法搜索到的问题,但总体来说这个方法是目前成本最低、最稳定的方法。

进入 MySQL 的配置文件,加入如下配置:

[mysqld]
ngram_token_size=2

 

如上图,随后进入 phpMyAdmin 控制台,直接使用 root 账户登录。

进入你 Flarum 正在使用的数据库,然后点击顶部栏的 [SQL] 选项,手动执行命令进行数据库索引重建:

按照自己需求执行如下命令:

# 使用默认设置
USE YourFlarumDataBaseName; // 这里替换为你的 Flarum 数据库的名字
ALTER TABLE posts DROP INDEX content;
CREATE FULLTEXT INDEX content ON `posts` (`content`) WITH PARSER ngram;
USE YourFlarumDataBaseName;
ALTER TABLE discussions DROP INDEX title;
CREATE FULLTEXT INDEX title ON `discussions` (`title`) WITH PARSER ngram;
# 配置表前缀
USE YourFlarumDataBaseName; // 这里替换为你的 Flarum 数据库的名字
ALTER TABLE flarum_posts DROP INDEX content; // 注意此处 [TABLE] 参数后的表前缀
# 注意此处引号内内容,将前缀替换为自己需要的
CREATE FULLTEXT INDEX content ON `flarum_posts` (`content`) WITH PARSER ngram; 
USE YourFlarumDataBaseName;
ALTER TABLE flarum_discussions DROP INDEX title;
CREATE FULLTEXT INDEX title ON `flarum_discussions` (`title`) WITH PARSER ngram;

使用此方法后将会自动重建 Flarum 的目录引导,完成后即可使用中文或者其他多语言的搜索功能了。

Sonic 中文搜索

如果你的 MySQL 数据库版本不是 5.7 或不支持使用重建索引查询,可以使用 Sonic 外置搜索引擎。

配置 Sonic 配置

新建一个任意名称的文件夹(注意此处设置在后续需要改代码),新建一个空白文件,修改文件名连同拓展名为 config.cfg 此文件为 Sonic 的配置文件,创建后,按照需求修改并填入以下代码:

[server]

log_level = "error"

[channel]

inet = "0.0.0.0:1491" // 部署端口
tcp_timeout = 30
auth_password = "SecretPassword" // 验证密码
[channel.search]
query_limit_default = 10
query_limit_maximum = 100
query_alternates_try = 4
suggest_limit_default = 5
suggest_limit_maximum = 20

[store]

[store.kv]

path = "/var/lib/sonic/store/kv/" // 索引目录
retain_word_objects = 1000

[store.kv.pool]

inactive_after = 1800

[store.kv.database]

flush_after = 900
compress = true
parallelism = 2
max_files = 100
max_compactions = 1
max_flushes = 1
write_buffer = 16384
write_ahead_log = true

[store.fst]

path = "/var/lib/sonic/store/fst/"

[store.fst.pool]

inactive_after = 300

[store.fst.graph]

consolidate_after = 180
max_size = 2048
max_words = 250000

安装 Sonic

此处为了避免过于麻烦的安装流程,故而直接使用 Docker 进行容器化安装,安装教程详情查看官方文档:Get Docker | Docker Documentation

按照顺序依次执行下列代码以在 Docker 部署 Sonic:

# 如果此处没有速度或连接失败请尝试更换阿里云镜像
docker pull valeriansaliou/sonic
# 注意此处 -v 处配置|需要修改为上面配置文件的路径|不要盲目照搬
docker run -d -p 1491:1491 -v ~/sonic/config.cfg:/etc/sonic.cfg -v ~/sonic/store/:/var/lib/sonic/store/ valeriansaliou/sonic:v1.3.0

下载完成后的成功的示例图:

如果你想在宝塔中安装 Sonic,前往 [软件商店] --> [运行环境] 找到  [Docker管理器] ,安装完成后,在镜像管理中,点击 [获取镜像],随后按图内配置获取 Sonic 容器:

随后转移到左侧栏的 [容器列表] 内新建容器,按照下图配置:

创建完成后如果提示不可使用文件映射可以直接在 SSH 中创建程序

创建完成后检查状态是否为已启动,查看日志无报错就可以正常使用了。

配置完成后,在你的 Flarum 中安装此插件:ganuonglachanh/flarum-sonic: Support search in flarum by sonic (github.com),安装完成后,在网站目录运行:

# 使用 Sonic 建立索引
php flarum sonic:addtoindex

完成后就可以直接使用 Sonic 来实现 Flarum 的中文搜索功能了。

结语

Flarum 论坛的搭建教程到此为止了,更加详细的拓展内容后续可能会更新,反正我已经快累死了。

Notice

We are using the following open source licenses: Unlicense.org » Unlicense Yourself: Set Your Code Free

文章完成进度
97%

- EOF -

 

版权声明:本文归 Gong_cx 版权所有|如未注明,均为原创,盗用者必究|本网站采用 BY-NC-SA 4.0 协议进行授权

评论

  1. Burial0268
    Android Chrome 76.0.3809.89
    3周前
    2022-5-04 2:16:53

    好耶()

  2. 爱电脑的初中生
    Android Chrome 88.0.4324.93
    3周前
    2022-5-04 22:43:46

    好耶

  3. 博主
    Android Chrome 100.0.4896.127
    3周前
    2022-5-04 22:47:49

    好耶

  4. 爱电脑的初中生
    Android Chrome 95.0.4638.74
    3周前
    2022-5-04 22:54:26

    一如既往支持龙龙

  5. 博主
    Android Chrome 100.0.4896.127
    7天前
    2022-5-15 23:51:36

    TesT Again

本文评论已关闭
上一篇