记一次搭建 Flarum 论坛

前言

论坛 凌中的锋雨-论坛 欢迎来访~

嘛,这个论坛开源,免费的。嗯对,因为我穷。

然后呢最近不打算维护,也不打算管理,因为你看看这个时候是什么时候,我要开学啦~ 然后呢,这个论坛先用虚拟主机搭建,暂不使用云服务器,开学期间流量我想应该比我博客还要小,所以我不太慌。 (也不需要特别稳定,没有什么很重要东西,用户数据除外 但是用户数据我在阿里云买了专门的数据库,不慌

用处

其实我就是想开一个互动性大一点的,然后方便每个用户发文章之类的东西。 然后给每个用户发自己想要分享的东西(我想太好了,可能都没有人)。 这个考虑到用户对本论坛的持久性,会不会短时间内倒闭之类的,就是信誉值QAQ

我最先参考了Discuz论坛,不过考虑到我以前用这个开过,所以我并不是很喜欢。 DZ论坛我一直不太喜欢,然后就想着找一个轻量的,然后我就看到了Flarum

材料准备

  • 搭建准备 材料 版本 系统 Linux Centos 7.8.2003 CPU Inter(R) Xeon(R) E5-2450L @1.80Ghz 内存 1G 宝塔 7.4.5 Nginx 1.17.8 MySQL 5.6.49 PHP 7.2.5

搭建过程

搭建的时候由于装了多个PHP版本,而默认的PHP又没设置对所以绕了下

配置安装

本次搭建系统选用 Linux (Centos 7.8.2003),其他系统用户请按需取舍。

更新系统

代码语言:javascript
复制
yum -y update

然后泡杯咖啡等待下吧,如果服务器配置挺好那么应该挺快的。

然后安装宝塔啦,我都配置宝塔云控了,那么宝塔标配啦。

Centos安装

代码语言:javascript
复制
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

Ubuntu/Deepin

代码语言:javascript
复制
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

如发现无法安装请先安装 wget

Debain

代码语言:javascript
复制
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh

如发现无法安装请先安装 wget

然后就是安装LNMP环境啦,我选择的是LNMP。

论坛安装

配置准备

安装LNMP环境。

宝塔首次进入面板选择 LNMP 极速安装 注意选择PHP的版本。

PS:下面列出版本为官方需要最低版本

配置

版本

Apache/Nginx

Apache(支持重写Rewire功能)

PHP

5.5+

SSH

需要可使用SSH的

MySQL/MariaDB

5.6+/10.0.5+

安装PHP拓展

其中fileinfo为必须安装项目,否则会安装失败(可选项目opcache,exif)

解除PHP禁用函数

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

安装Composer

如果您的服务器有多个PHP版本,请选择一个作为默认版本然后配置权限和禁用函数。或者将其他多余的PHP版本删除。

代码语言:javascript
复制
# 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

由于 Composer 的服务器在国外,可能导致下载 Flarum 已经依赖包会很慢,所以我们需要更换一下源地址。
至于 Composer 是啥,其实就是 PHP 的一个包管理,类似 Java 的 Maven 和 Gradle 工具。
——引用自 ryanc.cc

安装Flarum
创建 Flarum 网站

前往宝塔面板 网站添加站点 同时创建用于 Flarum的数据库 最后提交。

务必注意!数据库字符集一定要是 utf8mb4
至于为什么是 utf8mb4
MySQL字符集编码utf8和utf8mb4的区别

配置SSL证书
  • 宝塔一件SSL (一年证书申请,需要宝塔账户)
  • Let’s Encrypt 证书(可以多域名,一次三个月,可续)
  • 自证书文件,手动上传

咱配置完毕后,建议使用强制 Https

下载 Flarum

由于 Flarum 要求安装目录必须为空目录,所以需要删除新建目录下所有文件。

代码语言:javascript
复制
# 进入网站根目录
cd /www/wwwroot/XXX.XXX.XXX

解除文件锁定

chattr -i .user.ini

删除此目录下全部文件(警告:不要在根目录执行,后果自负,如果需要请打快照后随意玩耍)

rm -rf ./*

安装 Flarum
代码语言:javascript
复制
composer create-project flarum/flarum . --stability=beta

然后慢慢等待安装吧。预计时间515分钟。

如果你前面设置启用拓展及禁用函数配置正确那么这里不会出现问题,如果出现问题请查阅前面操作,或者留言。

如果配置正确安装正确,那么等待出现下图

基本安装完毕

配置运行

上面其实就已经安装好了 Flarum,但是还需要进一步配置才能正确运行

修改 Nginx 配置

进入宝塔面板,打开站点设置,修改网站配置文件:(可对照下图修改)

  1. root: 需要在路径后面加入public也就是子目录绑定
    • 例如:
      • 原本:root /www/wwwroot/xxx
      • 修改:root /www/wwwroot/xxx/public
  2. include: 引入 Flarum 提供的配置
    • 例如:
      • 添加:include /www/wwwroot/xxx/.nginx.conf
检查 Nginx 配置

最后咱需要检查 Nginx 配置是否有误并重载 Nginx 配置:

运行检查指令

代码语言:javascript
复制
nginx -t

返回代码(如下所示则正确)

代码语言:javascript
复制
nginx: the configuration file /www/server/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /www/server/nginx/conf/nginx.conf test is successful

重载 Nginx 配置

代码语言:javascript
复制
nginx -s reload
安装Flarum

在浏览器中访问安装 Flarum 的站点网址。

如果出现上图所示,那么就是你的权限没有调整
之后,在宝塔找到对应文件路径后修改权限(这里为775,安装完毕后再调整回来755,注意所有者是www)

然后刷新一遍吧,开始安装~

由于下图没来得及截图到,此图为PS合成图,照着看看

填写完数据库信息、管理员信息,点击安装即可。
安装部署部分到此结束了喵~~

常用插件安装

安装完成后会发现不支持中文,所以我们需要安装中文语言包。还有一些常用的插件。
更多插件推荐,请 前往此处 查看。

进入网站目录后执行插件安装

代码语言:javascript
复制
cd /data/wwwroot/xxx
代码语言:javascript
复制
# 简体中文语言包
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 wiwatsrt/flarum-ext-best-answer

显示帖子阅读次数

composer require michaelbelgium/flarum-discussion-views

论坛用户列表

composer require avatar4eg/flarum-ext-users-list

生成静态页面

composer require fof/pages

上传文件

composer require fof/upload

Sitemap 生成器

composer require flagrow/sitemap

Fancybox 插件

composer require squeevee/flarum-ext-fancybox