跳到主要内容

安装

即刻试用 Flarum?

欢迎前往我们的 演示站点 试用 Flarum。您也可以花几秒钟在免费的非官方托管服务 Free Flarum 上建立您自己的论坛。

服务器环境要求#

在安装 Flarum 之前,请确保您的服务器满足下列要求,否则无法顺利安装和运行 Flarum:

  • Apache(需要启用 mod_rewrite 重写模块) 或 Nginx
  • PHP 7.3+,需要启用 curl, dom, exif, fileinfo, gd, json, mbstring, openssl, pdo_mysql, tokenizer, zip 扩展
  • MySQL 5.6+/8.0.23+MariaDB 10.0.5+
  • SSH(命令行)权限,用于执行 Composer
共享主机

Flarum 不提供压缩包方式安装 Flarum,这是因为 Flarum 使用的 Composer 依赖管理系统需要在命令行中运行。

这并不意味着您需要一个 VPS。多数大厂共享主机是开放 SSH 访问权限的,您可以正常安装 Composer 和 Flarum。

开始安装#

Flarum 使用 Composer 来管理其依赖包和扩展程序。如果你还不认识 Composer,可以先 简单了解 一下。安装 Composer 后,在要安装 Flarum 的空白目录下执行此命令:

composer create-project flarum/flarum .

等待安装的空隙,您可以先去配置 Web 服务器。请确保网站根目录(Webroot)设置为 /<Flarum 根目录路径>/public,并按照下面的说明设置 URL 重写

一切就绪后,在浏览器中访问您的论坛网址,并根据安装向导完成安装。

URL 重写#

Apache#

Flarum 在 public 目录中已提供了 .htaccess 文件,请确保服务器可以正确引用到它。如果 Apache 没有启用 mod_rewrite 模块,或禁用了 .htaccess,则 Flarum 无法正常运行。 请确认您的主机提供商(或您的 VPS)是否启用了这些功能。如果您的服务器由您自行管理,您可能需要在您的网站配置中添加以下内容来应用 .htaccess 文件:

<Directory "/<Flarum 根目录路径>/public">    AllowOverride All</Directory>

此设置确保了 htaccess 是能被读取,Flarum 可以正确重写 URL。

服务器操作系统不同,启用 mod_rewrite 的方法也就不同。在 Ubuntu 上,您可以通过运行 sudo a2enmod rewrite 命令来启用它,而在 CentOS 上 mod_rewrite 是默认启用的。请不要忘记在修改配置后重启 Apache!

Nginx#

Flarum 根目录提供了 .nginx.conf 文件,请确保服务器可以正确引用到它。假如您已在 Nginx 中建立了一个 PHP 站点,您应当在站点配置中添加以下内容,以导入默认的重写规则:

include /<Flarum 根目录路径>/.nginx.conf;

Caddy#

Caddy 的配置很简单。您需要将下方代码中的域名替换为您自己的,并将 path 替换为 Flarum 根目录 public 文件夹的路径。您还需要修改 fastcgi 路径,使其指向您的站点所使用的 PHP 程序的 Socket 或 URL 。

www.example.com {    root * /var/www/flarum/public    php_fastcgi unix//var/run/php/php7.4-fpm.sock    header /assets {        +Cache-Control "public, must-revalidate, proxy-revalidate"        +Cache-Control "max-age=25000"        Pragma "public"    }    file_server}

目录权限#

在安装过程中,Flarum 可能会要求您将某个目录设置为可读可写。 现代操作系统都支持多用户,强烈建议您不要用当前登录的用户运行 Flarum。

运行 Flarum 的用户必须对以下文件或目录可读可写:

  • 安装根目录,Flarum 需要编辑 config.php 文件。
  • storage 子目录,Flarum 需要编辑日志文件和缓存数据。
  • assets 子目录,Flarum 需要保存图标、用户头像和上传的文件。

扩展程序可能需要其他目录的权限,所以你可能想一次性授权 Flarum 可读可写自己的根目录和所有子目录。

您需要运行几个命令来设置文件(目录)权限。请注意,您无需一次性运行所有命令,只需依次运行,直到 Flarum 安装不报错,

第一试,允许 Flarum 对某目录的访问权限。在 Linux 中,您可以运行:

chmod 775 -R /目录路径

如果这还没用,请检查文件(目录)的所有者和组群是否与您分配给 Flarum 的一致。大多数 Linux 发行版,默认 www-data 为 PHP 和 Web 服务器所有者和所属组群,具体以实际情况为准。在 Linux 中,您可以运行以下命令更改文件(目录)的所有权:

chown -R www-data:www-data /目录路径

如果您的 Web 服务器的用户和组群不是 www-data,记得进行替换。

此外,您需要确保进行操作的终端用户拥有与 Flarum 同样甚至更高的权限,以便您可以通过命令行安装 Flarum、管理扩展程序。一个办法是运行 usermod -a -G www-data 您的用户名 将当前用户 (运行 whoami 查询) 添加到 Web 服务器组群(通常为 www-data)。权限变更会在您注销并重新登录后再生效。

如果仍旧没有用,你可能需要配置 SELinux,允许 Web 服务器读写相应目录:

chcon -R -t httpd_sys_rw_content_t /目录路径

要了解关于以上命令的详情信息,以及 Linux 系统下的文件权限和群组信息,请阅读 英文教程中文教程。如果您在 Windows 上配置 Flarum,这个 提问 可能对您很有用。

环境有别

您的服务器环境可能会与本文示例不同,请查看您的 Web 服务器配置或咨询 Web 托管提供商,以了解 PHP 和 Web 服务器默认运行在哪个用户或组群下。

权限禁忌 777

绝不要将任何文件夹或文件的权限设置为 777 级别,这个级别允许任何人随意访问文件夹和文件的内容,严重威胁您的服务器安全。

自定义路径#

默认情况下,Flarum 的目录结构包含一个 public 目录,该目录存放可公开访问的文件。这样的保护措施,可以确保所有敏感代码文件无法通过 Web 访问。

但如果您想把 Flarum 放到网站的子目录下(比如 example.com/forum),或者您没有操作网站根目录的权利(只能使用 public_htmlhtdocs 之类的目录),那么您可以进行配置,使 Flarum 在没有 public 目录的情况下运行。

您需要将 public 目录中的所有内容(包括 .htaccess)全部移动到要安装 Flarum 的目录中。然后编辑 .htaccess 并取消注释用来保护敏感文件的第 9-15 行代码。如果是 Nginx,则取消注释 .nginx.conf 文件的第 8-11 行。

您还需要编辑 index.php 文件,修改这一行:

$site = require './site.php';

然后编辑 site.php 并更新这几行的路径,指向新的目录:

'base' => __DIR__,'public' => __DIR__,'storage' => __DIR__.'/storage',

最后,检查 config.php 文件,确保 url 字段的值没问题。

导入数据#

如果您想用 Flarum 接力运营现有的论坛,您可以将数据导入到 Flarum 中。虽然目前还没有官方的导入工具,但是社区里有人制作了几款非官方的导入工具:

其他论坛程序也可以导入:先迁移到 phpBB,然后迁移到 Flarum。需要说明的是,我们不能保证这些工具能一直正常使用,我们也不提供相关工具的支持服务。