「技术分享」2023-2024年度Linux宝塔安装Flarum论坛全新教程插图

为了安装这个论坛,折腾了我一个晚上。纵观整个搜索引擎,包括谷歌、必应以及百度,所有的教程都是非常的陈旧,或者说根本行不通。最终我还是在查阅「Flarum」的官方文档后才找到了如何安装的办法!本文将摒弃其中文论坛以及其他老旧文章的办法,带给你全新,安全的安装方法!

「技术分享」2023-2024年度Linux宝塔安装Flarum论坛全新教程插图1

安装宝塔面板

宝塔面板的安装方法非常地简单,这里我就不说了。

本地的环境为:

CentOS Stream 8 x86_64(Py3.7.9) 

克隆项目

最开始论坛让我们使用以下命令构造项目:

composer create-project flarum/flarum .

不过这会存在一个问题,宝塔在创建网站时,会在目录下生成一个「user.ini」的文件,这个文件是为了防止跨站攻击而存在的,但是论坛上居然让我去把他删掉?what?

作为一国外开源的项目,难道就非得用composer来创建这个下项目?还是得去github一探究竟!

很好,轻松搜索便找到了这个项目:https://github.com/flarum/flarum

我们手动下载release版本,或者直接克隆这个项目到我们的网站目录即可!

「技术分享」2023-2024年度Linux宝塔安装Flarum论坛全新教程插图2
方法一:Github下载
「技术分享」2023-2024年度Linux宝塔安装Flarum论坛全新教程插图3
b方法er:宝塔一键下载

安装依赖

很好,这里我们已经成功拿到了Flarum的核心源码,现在我们来下载依赖,构建完整的项目!

如果你去阅读「Flarum中文社区」的安装教程,那么你将会浪费半个小时设置一个小时的时间来阅读长达「12000」像素长度的废话文学。但是在这里,我非常荣幸为你介绍篇幅不到1000像素长度的依赖安装教程

由于我们安装了宝塔的缘故,所以有一些敏感函数会被禁用。但是如果我们使用宝塔官方提供的composer安装,那么再不启用敏感函数的情况下,依赖也可以正常安装!

宝塔面板:点击「网站」-> 「设置」-> 「Composer」,这里由于我安装过了,所以会提示composer.lock,如果后续要安装其他依赖项,请务必先删除composer.lock,在执行其他操作,否则宝塔这里会报错

由于我们克隆下来的项目,本生就带有composer.json,所以我们可以直接执行composer install 这个命令。

PHP拓展(坑)

很好,那么我们现在又要来填一个坑——这个宝塔PHP的fileinfo拓展的坑!

这个坑非常的大,以至于后半夜花了很长一段时间才找到解决办法!和《PHPRedis 添加 Zstd 和 Igbinary 支持》坑类似,有兴趣的可以看看

如果你的PHP没有使用编译安装(宝塔环境下),那么我只有很遗憾的告诉你,卸载重装吧!如果你是编译安装的,那么我也很遗憾的告诉你,卸载重装吧!

我们来看看使用宝塔官方源进行编译安装的「Configure Command」:

'./configure' '--prefix=/www/server/php/81' '--with-config-file-path=/www/server/php/81/etc' '--enable-fpm' '--with-fpm-user=www' '--with-fpm-group=www' '--enable-mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-iconv-dir' '--with-freetype' '--with-jpeg' '--with-zlib' '--with-libxml-dir=/usr' '--enable-xml' '--disable-rpath' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem' '--enable-inline-optimization' '--with-curl' '--enable-mbregex' '--enable-mbstring' '--enable-intl' '--enable-ftp' '--enable-gd' '--with-openssl' '--with-mhash' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc' '--enable-soap' '--with-gettext' '--disable-fileinfo' '--enable-opcache' '--with-sodium=/usr/local/libsodium' '--with-webp' '

很好,这里有一个非常致命的问题,--disable-fileinfo,编译安装把fileinfo给禁止了!如果你没有在后面增加--enable-fileinfo这个参数,那么即使你安装了fileinfo这个拓展,即使你重启了上百遍,也是无济于事!

重新编译安装,附加参数即可。

附加参数

如何附加参数?宝塔给出了非常简单的办法:

在第二步,点击「添加自定义模块」,里面的内容这样填:

点击提交后,然后再次提交即可对PHP重新编译安装!解决fileinfo这个拓展问题!

「技术分享」2023-2024年度Linux宝塔安装Flarum论坛全新教程插图8
启用fileinfo

额外拓展

根据社区文档,我们还需要启用以下拓展:

opcache imagemagick exif 等等,下图中画了箭头的,必须装!

正式安装论坛

当我们解决完PHP拓展问题后,请回到「安装依赖」这个步骤,然后就可以正式安装论坛

安装步骤和普通的PHP程序差不多,和「ThinkPHP」安装类似,在网站运行目录那里要选择「public」作为运行目录:

哦,对了还有一个伪静态:

# Pass requests that don't refer directly to files in the filesystem to index.php
location / {
  try_files $uri $uri/ /index.php?$query_string;
}

OK,配置完成后,你就可以玩耍这个论坛了,整个过程除去PHP编译时间,可能只需要几分钟!

至于拓展插件怎么安装,那就自行去中文社区找找看吧!

请记住,宝塔已经给文件了相应的执行权限,在未知的情况下,不要变动目录或者文件的权限!当然如果你无所谓成为肉鸡,那就当我没说过这句话!