开源论坛Flarum的安装与使用
Flarum 简介
提到开源论坛程序,我们最先都会想到discuz和phpwind这种巨头,但是长时间的发展也令他们的程序越发发庞大和臃肿,对于开发者来说如果只想要单纯的论坛功能无疑是拿高射炮打蚊子,不仅大材小用,同时在维护上也更加耗费精力。
在这种情况下选择一个轻量的论坛程序不失为一个明智的选择,Flarum就是这样一个优雅的轻量论坛软件,它拥有一个现代的、简洁优雅的界面,同时可以通过插件来实现各种强大的功能。

目前Flarum还处于Beta版,当前版本已经可以支持绝大多数常用的论坛功能的需求,开发者仍然在不断的迭代,相信未来会有一个大好前景。
就像Flarum的开发者说的那样:
Flarum is the combined successor of
esoTalkandFluxBB. It is designed to be:
Fast and simple. No clutter, no bloat, no complex dependencies. Flarum is built with PHP so it’s quick and easy to deploy. The interface is powered by Mithril, a performant JavaScript framework with a tiny footprint.
Beautiful and responsive. This is forum software for humans. Flarum is carefully designed to be consistent and intuitive across platforms, out-of-the-box.
Powerful and extensible. Customize, extend, and integrate Flarum to suit your community. Flarum’s architecture is amazingly flexible, with a powerful Extension API.
Free and open. Flarum is released under the MIT license.
安装
系统要求
要安装Flarum,首先需要服务器配置好如下环境:
- Apache(开启了mod_rewrite)或者Nginx
- PHP 7.1以上并且安装以下扩展:curl,dom,gd,json,mbstring,openssl,pdo_mysql,tokenizer,zip
- MySQL 5.6以上或者MariaDB 10.0.5以上
- SSH(命令行)权限用于运行Composer
目前Flarum的版本是beta12,官方已经宣布将在beta13时弃用PHP 7.1,因此为避免版本升级的各种麻烦,最好使用7.2以上版本
配置环境
以下配置方法基于我本人的腾讯云服务器,操作系统为CentOS 8,具体操作根据服务商和系统的不同可能会有所差异
我是用的是LNMP环境,即使用Linux、Nginx、MySQL、PHP作为网站的服务器架构
Apache的使用方法还请自行探索
安装Nginx
以下命令均在root用户下执行,如果使用非root用户,则需要在开头加上sudo
执行命令,安装nginx
1 | yum install nginx |
注意安装的版本,系统默认源的nginx版本可能比较低,如果希望安装最新的stable版本的nginx则需要额外几个步骤:
- 安装yum-utils
1
yum install yum-utils
- 更新nginx的yum源,创建并编辑文件/etc/yum.repos.d/nginx.repo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true - 默认情况下会安装stable版本,如果想要安装mainline版本则运行以下命令
1
yum-config-manager --enable nginx-mainline
- 最后重新运行yum install命令
1
yum install nginx
安装完成后运行nginx
1 | systemctl start nginx |
并且设置为开机启动
1 | systemctl enable nginx |
从浏览器输入服务器地址访问服务器,如果展示如下页面则表示nginx已成功运行
安装数据库
鉴于MySQL数据库版本众多,建议使用官方的配置生成页面按照自己的需求生成相应的配置文件,例如我的选择是CentOS 8和10.4[stable]
- 创建文件/etc/yum.repos.d/mariadb.repo并写入生成的配置
1
2
3
4
5
6
7
8# MariaDB 10.4 CentOS repository list - created 2020-04-22 17:13 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos8-amd64
module_hotfixes=1
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1 - 运行yum install
1
yum install MariaDB-server MariaDB-client
- 启动mariadb
1
systemctl start mariadb
- 设置为开机启动执行命令
1
systemctl enable mariadb
如果出现如下界面则代表成功安装1
mysql

使用
1 | \q |
退出mysql
安装PHP
CentOS 8默认源的PHP版本为7.2,已经满足了Flarum的要求
- 直接执行命令
1
yum install php php-cli php-common php-mysqlnd php-fpm
- 安装完成后检查PHP的版本
1
php -v

Flarum需求的一些php扩展还没有安装,在安装之前可以先检查已经安装了哪些扩展
执行命令
1 | php -m |

根据需要查漏补缺安装php扩展
1
yum install php-dom php-gd php-zip php-mbstring
启动PHP
1
systemctl start php-fpm
设为开机启动
1
systemctl enable php-fpm
至此LNMP架构全部安装完成,接下来还要配置一些参数,并进行验证,使服务器能够像我们期望的那样运行起来
配置参数
首先要对nginx进行配置
nginx默认配置下是不能解析php文件的,需要nginx转发给fastcgi来解析php文件
首先找到nginx的配置文件,默认情况下位于/etc/nginx/conf.d,如果该文件夹下为空则直接创建一个新文件,并命名为default.conf
- 编辑default.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27server {
listen 80;
root /usr/share/nginx/html;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
#
location / {
index index.php index.html index.htm;
}
#error_page 404 /404.html;
#redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
#pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ .php$ {
root /usr/share/nginx/html;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存文件后返回,接下来需要验证nginx现在是否已经可以正确处理php文件
- 执行以下命令,创建一个测试文件
1
echo "<?php phpinfo(); ?>" >> /usr/share/nginx/html/index.php
- 重启nginx在浏览器中访问服务器地址,如果显示如下结果,则表示配置成功
1
systemctl restart nginx

至此,服务器环境便配置完成了,接下来便可以进行Flarum的安装。
安装Flarum
Flarum使用Composer进行安装,Composer是一个PHP软件包管理器
因此需要首先安装Composer,Composer的官方网站给出了详细的安装方式
依次运行命令
1
2
3
4php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"这时composer便已经安装完成,不过这时composer只能在当前路径运行,为了方便起见,我们需要让它可以以全局方式运行
执行以下命令
1
mv composer.phar /usr/local/bin/composer
这样Composer便可以全局运行了
转到网站根目录
1
cd /a/example/path/to/flarum
运行composer
1
composer create-project flarum/flarum . --stability=beta
由于Composer源位于国外,连接速度感人,需要改为国内的镜像源,比如阿里或者腾讯的镜像
这里我使用的是腾讯的镜像,具体使用方法见:Composer镜像使用帮助
修改default.conf,使nginx服务器的根目录指向网站的根目录,找到如下内容
1
root /usr/share/nginx/html;
修改为网站的根目录
1
root /path/to/flarum/public;
Flarum的文件结构如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14 . (站点根目录)
├── public(公共目录)
│ └── assets (资源目录,存放头像、上传的文件等)
├── storage
│ └── logs (日志)
├── vendor (核心、插件目录)
├── .nginx.conf (自带 Nginx 配置)
├── .htaccess (自带 Apache 配置)
├── composer.json(插件列表)
├── extend.php(自定义扩展文件)
├── flarum
├── LICENSE
├── README.md
└── site.php除了public之外浏览器不应有其他目录的访问权限,所以注意路径应指向public文件夹
接下来需要将自带的nginx配置文件加入nginx配置中
- 向default.conf中的server代码块中加入如下代码并重启nginx
1
include /path/to/flarum/.nginx.conf
此时访问服务器地址就能看到如下Flarum的安装界面了

接下来只要根据安装界面的提示进行就可以成功安装了,例如上面展示的,现在网站目录的权限不足,Flarum的安装程序不能写入文件,这时就需要使用chomd命令来改变目录的权限
1 | chmod -R 775 /path/to/flarum |
注意:永远不要使用777的权限设置,这意味着所有人均能访问读取和修改目录下的文件
权限设置完毕后,就需要设置管理员、数据库等参数了
分别需要设置:
- Forum Title:
论坛的标题,没啥好说的 - MySQL Host:
定位数据库的主机,如果数据库位于本地为localhost,位于网络中则为目标机器的ip地址 - MySQL Database:
定位具体的数据库,注意Flarum的安装程序不会自动创建相应的datbase,需要先行建立一个相应的database - MySQL Username:
指定访问数据库的用户名,注意MySQL在没有额外设置的情况下是允许匿名登录的,如果要部署到生产环境需要对MySQL进行权限设置,禁止匿名用户访问数据库 - MySQL Password:
登录数据库时所需的密码 - Table Prefix:
数据库prefix参数,不清楚具体作用的话留空即可 - Admin Username:
设定系统管理员的用户名,同样没啥好说的 - Admin Email:
设定系统管理员的邮箱地址 - Admin Password:设定管理员用户密码
下面贴上我自己在虚拟机上填写的内容作为参考
确认上述一切都没有问题后,点击安装,整个安装配置过程便完成了,稍作等待便可以看到论坛的页面了
安装扩展
Flarum本身作为一个轻量的论坛,其功能还是很少的,仅能满足基本的需求。不过作为一个开源项目,自然也少不了社区的支持,现在已经有众多的扩展插件可以选择。
进入论坛的管理后台页面就可以看到扩展面板,里面展示了当前已经安装和开启的插件
不过当前版本还不能直接从页面中添加扩展,仍然需要使用命令行工具安装,再从管理面板中启用。
常用的扩展可以从Flarum官方论坛中的extension标签的帖子中寻找或者使用Bazaar以及FoF来完成
这部分内容就请各位自行探索吧!

