一、简介

  Flarum 是一款非常简洁的开源论坛软件,基于 PHP 构建,它响应快速、简便易用,拥有打造一片成功的社区所需的所有功能。
  界面使用 Mithril 构建,Mithril 是一个高性能的JavaScript框架。

  • 快速、简单。 不杂乱不臃肿,没有复杂的依赖关系。Flarum 使用 PHP 构建,因此很容易被部署。同时界面采用高性能 JavaScript 框架 Mithril (opens new window),因此占用空间很小。
  • 漂亮、响应式。 专为人设计的论坛程序。Flarum 经过精心设计,完美支持跨平台、开箱即用。
  • 强大、高可扩展。 您可以客制化、扩展或集成 Flarum 以满足您的社区需求。Flarum 拥有非常全面、强大的 扩展 API (opens new window),她的架构及其灵活。
  • 免费、开源。 Flarum 基于 MIT 协议 (opens new window)发布。

官方地址

官方文档

官方中文文档

官方演示站

二、环境要求

  • Apache(需要启用 mod_rewrite 重写模块) 或 Nginx
  • PHP 7.1+,需要启用 curldomgdjsonmbstringopensslpdo_mysqltokenizerzip扩展。
  • 安装php扩展 fileinfoopcacheexif (后两个非必选)
  • MySQL 5.6+MariaDB 10.0.5+ (建议MySQL 5.7因该版本支持FULLTEXT中文搜索,后续方便优化论坛的中文关键词搜索。)
  • 允许 SSH(命令行),以运行Composer

三、安装

3.1 解除 PHP 函数禁用

  • 安装Composer要用到的 3 个函数 putenv()pcntl_signal()proc_open(),需要解除禁用,否则导致安装Composer 时报错。
  • 宝塔面板 --> PHP设置 --> 禁用函数中删除 putenvpcntl_signalproc_open

3.2 安装 Composer

Composer 其实就是 PHP 的一个包管理,类似 Java 的 Maven 和 Gradle 工具。

使用 SSH 依次执行以下命令:

# 进入当前用户家目录(此步骤可省略)
cd

# 将安装脚本下载到当前目录
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"

# 运行安装脚本
php composer-setup.php

# 删除安装脚本
php -r "unlink('composer-setup.php');"

# 全局安装 composer(配置系统环境变量)
mv composer.phar /usr/local/bin/composer

  由于Composer 的服务器在国外,可能导致下载Flarum依赖包会很慢,所以需要更换下源地址。

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

3.3 安装 Flarum

  • 新建您的站点与数据库(数据库字符集选择 utf8mb4
  • 下载Flarum程序
# 进入网站目录。注意网站目录每个人都不一样!记得替换!
cd /www/wwwroot/baidu.com

# 解除.user.ini文件锁定,否则该文件无法被删除(宝塔面板内在网站管理中网站目录下,勾掉防跨站攻击(open_basedir)也可以。)
chattr -i .user.ini

# 在宝塔面板中(或者在 FTP 中)删除网站目录下的所有文件。

# 确保进入网站目录执行(前面也提到了,若您禁用了pcntl_signal() 函数和 proc_open() 函数,此步执行会出错)
composer create-project flarum/flarum . --stability=beta

3.4 修改Nginx配置

进入宝塔面板,打开站点设置,修改网站配置文件:

  1. root:需要在路径后面加上 public,比如原本是 root /www/wwwroot/baidu.com;

    修改为 root /www/wwwroot/example.com/public;

  2. 引入Flarum提供的伪静态配置,在刚才修改下方加上以下代码 :

    include /www/wwwroot/baidu.com/.nginx.conf;

    将网站目录更改为自己的然后点击保存即可。

3.5 Flarum 安装引导

  1. 将域名根目录下所有文件权限更改755权限;
  2. 进入域名根据提示填入相对应的内容即可(下方有对照表);
英文名称中文名称
Forum Title论坛名称
MySQL Host数据库主机地址
MySQL Database数据库名称
MySQL Username数据库用户名
MySQL Password数据库密码
Table Prefix数据库表前缀
Admin Username管理员用户名
Admin Email管理员邮箱
Admin Password管理员密码
Confirm Password确认密码

3.6 常用插件安装与卸载

安装插件需在Flarum根目录下执行;
在后台中点击Extensions(插件)选项,然后勾选需要插件即可(后台地址:http://baidu/admin);

# 简体中文语言包
composer require littlegolden/flarum-lang-simplified-chinese

# 卸载简体中文语言包
composer remove littlegolden/flarum-lang-simplified-chinese

# 简体中文语言包2
composer require csineneo/lang-simplified-chinese

# 卸载简体中文语言包2
composer remove csineneo/lang-simplified-chinese

# 编辑器 Emoji 表情选择框
composer require clarkwinkelmann/flarum-ext-emojionearea

# 导航栏菜单插件
composer require fof/links

# 显示帖子阅读次数
composer require michaelbelgium/flarum-discussion-views

# 论坛用户名录
composer require avatar4eg/flarum-ext-users-list

# 上传文件
composer require fof/upload

# Sitemap (网站地图)生成器
composer require flagrow/sitemap

# Fancybox 图片灯箱(放大)插件
composer require squeevee/flarum-ext-fancybox

四、其他

  • 出现[ErrorException] proc_open(): fork failed - Cannot allocate memory 报错;
    这可能是因为VPS内存不足并且没有启用交换空间;

    /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
    /sbin/mkswap /var/swap.1
    /sbin/swapon /var/swap.1
  • 设置默认语言:Basics(常规) --> Default Language(默认语言) --> 选择 简体中文 即可
  • 优化Composer自动加载:composer dump-autoload --optimize
  • 清理缓存 / Cache Clear:php flarum cache:clear
  • Flarum新建话题按钮添加彩虹渐变动画:进入后台 --> 外观配置 --> 自定义样式

    .IndexPage-newDiscussion { 
    background: linear-gradient(124deg, #ff2400, #e81d1d, #e8b71d, #e3e81d, #1de840, #1ddde8, #2b1de8, #dd00f3, #dd00f3);
    color: #fff;
    background-size: 1800% 1800%;
    -webkit-animation: rainbow 15s ease infinite;
    -z-animation: rainbow 15s ease infinite;
    -o-animation: rainbow 15s ease infinite;
      animation: rainbow 15s ease infinite;
    }
     
    @-webkit-keyframes rainbow {
        0%{background-position:0% 82%}
        50%{background-position:100% 19%}
        100%{background-position:0% 82%}
    }
    @-moz-keyframes rainbow {
        0%{background-position:0% 82%}
        50%{background-position:100% 19%}
        100%{background-position:0% 82%}
    }
    @-o-keyframes rainbow {
        0%{background-position:0% 82%}
        50%{background-position:100% 19%}
        100%{background-position:0% 82%}
    }
    @keyframes rainbow { 
        0%{background-position:0% 82%}
        50%{background-position:100% 19%}
        100%{background-position:0% 82%}
    }
  • 支持中、日、韩、英关键字搜索

    编辑my.cnf文件路径:/etc/my.cnf

    在配置文件底部中加入:[mysqld] ngram_token_size=2

    重建数据库索引,在phpMyAdminSQL内分别执行以下两段:

    # 第一段
    USE YourFlarumDataBaseName;  // 这里替换为你的 Flarum 数据库的名字
    ALTER TABLE posts DROP INDEX content;  // 如果你有表前缀,给 posts 加上前缀即可,下面都是如此。
    CREATE FULLTEXT INDEX content ON `posts` (`content`) WITH PARSER ngram; // 注意表前缀
    
    # 第二段
    USE YourFlarumDataBaseName;  // 这里替换为你的 Flarum 数据库的名字
    ALTER TABLE discussions DROP INDEX title; // 注意表前缀
    CREATE FULLTEXT INDEX title ON `discussions` (`title`) WITH PARSER ngram;
  • 搜索结果关键字高亮:进入后台 --> 外观配置 --> 自定义样式

    /* 搜索结果关键字高亮 */
            .DiscussionListItem-main mark {
                background: #ffff80 !important;
            }
最后修改:2020 年 10 月 24 日 05 : 47 PM