此教程适用于以下操作系统版本
- Ubuntu 24.04(Noble Numbat)
- Ubuntu 20.04(Focal Fossa)
- Ubuntu 18.04(Bionic Beaver)
本页内容
- 环境准备(前置条件)
- 安装依赖
- 配置 UFW(简单防火墙)
- 配置 PHP
- 配置 MariaDB 服务器
- 下载 Flarum 源代码
- 为 Flarum 配置 Apache 虚拟主机
- 使用 HTTPS 保护 Flarum
- 安装 Flarum
- 总结
Flarum 是一款基于 PHP、JavaScript 和 TypeScript 开发的免费开源论坛软件。它是新一代的论坛软件,设计理念是极简,并通过扩展(Extension)实现高度可扩展。Flarum 是论坛软件的现代化解决方案,它快速、简洁,且易于使用和安装。
在本教程中,我们将展示如何在 Ubuntu 24.04 上安装 Flarum。你将通过 LAMP 技术栈(Linux、Apache、MySQL/MariaDB 和 PHP)安装 Flarum,然后使用 Certbot 和 Let's Encrypt 通过 HTTPS 对其进行安全加固。
环境准备(前置条件)
在跟随本教程操作之前,请确保你已满足以下要求:
- 一台 Ubuntu 24.04(Noble Numbat)系统。
- 一个具有管理员权限的非 root 用户。
- 已运行 UFW(简单防火墙)。
- 一个已解析到服务器 IP 地址的域名。
安装依赖
Flarum 是一款使用 PHP 编写的开源论坛软件。要安装它,你需要为 Ubuntu 服务器安装相关依赖。这包括 LAMP 技术栈(Linux、Apache、MySQL/MariaDB)、Git 和 Composer。
在本节中,你将通过 Ubuntu 软件仓库安装 Flarum 所需的依赖。
首先,运行以下命令来更新 Ubuntu 的软件包索引。
sudo apt update

现在运行以下命令,将 LAMP 技术栈(Linux、Apache、MySQL/MariaDB 和 PHP)、Composer 和 Git 等依赖安装到你的 Ubuntu 系统中。
sudo apt install apache2 mariadb-server php php-common php-mysql libapache2-mod-php php-gd php-curl php-json php-xmlrpc php-intl php-bcmath php-zip php-apcu php-mbstring php-fileinfo php-xml php-soap php-tokenizer composer git
输入 Y 确认安装。

安装完成后,使用以下命令检查 Apache 服务状态。你将看到 Apache Web 服务器已启用,状态为 ' active (running) '(运行中)。
sudo systemctl is-enabled apache2
sudo systemctl status apache2

现在使用以下命令验证 MariaDB 服务器的状态。你将看到类似的输出,表明 MariaDB 已启用并正在运行。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

最后,使用以下命令检查 PHP 和 Composer 的版本。你将看到系统中已安装 PHP 8.3 和 Composer 2.7.1。
php -v
sudo -u www-data composer -v

配置 UFW(简单防火墙)
安装完依赖后,你需要通过 UFW(简单防火墙)开放对 Apache Web 服务器的访问。Apache Web 服务器提供了一个名为 ' Apache Full ' 的 UFW 应用配置,用于同时允许 HTTP 和 HTTPS 访问。
运行以下命令,通过 ' Apache Full ' 配置开放 HTTP 和 HTTPS 访问。添加后,你将看到 ' Rules Added '(规则已添加)的输出。
sudo ufw allow 'Apache Full'
现在使用以下命令查看 UFW 上的规则列表。
sudo ufw status
你应当看到防火墙上已启用 ' Apache Full ' 配置。这样一来,对 Apache Web 服务器的 HTTP 和 HTTPS 访问都会被允许。

配置 PHP
在本节中,你将通过编辑 ' php.ini ' 文件来为 Flarum 配置 PHP。你需要调整一些 PHP 配置项,例如 memory_limit(内存限制)和 upload_max_filesize(上传文件大小上限),以适配你的 Flarum 安装。
使用以下 nano 编辑器命令打开默认的 PHP 配置文件 ' php.ini '。
sudo nano /etc/php/8.3/apache2/php.ini
将以下默认 PHP 配置修改为相应的值。请务必根据情况调整 memory_limit 和 date.timezone(时区)选项的值。
memory_limit = 512M upload_max_filesize = 150M max_execution_time = 600 date.timezone = Europe/Paris
修改完成后,保存文件并退出。
现在运行以下命令重启 Apache Web 服务器,使新的 PHP 配置生效。
sudo systemctl restart apache2
配置 MariaDB 服务器
配置完 PHP 后,你将安全加固 MariaDB 服务器,并创建一个供 Flarum 使用的新数据库和用户。你可以通过 ' mariadb-secure-installation ' 命令加固 MariaDB,然后通过 ' mariadb ' 客户端创建新的数据库和用户。
要加固 MariaDB 服务器,请执行以下 ' mariadb-secure-installation ' 命令。执行过程中,系统会询问你一些 MariaDB 的配置项。
sudo mariadb-secure-installation
以下是你将被提示的配置项:
- MariaDB 默认安装没有设置密码,在提示输入密码时直接按 ENTER(回车)。
- 输入 Y 设置 MariaDB 的 root 密码。然后输入新的 MariaDB 密码并重复确认。
- 输入 Y 从 MariaDB 安装中删除匿名用户。
- 在提示禁用 MariaDB root 用户的远程登录时,再次输入 Y。
- 输入 Y 从 MariaDB 中删除默认的 test 数据库。
- 最后,输入 Y 重新加载权限表并应用新的更改。
MariaDB 加固完成后,使用以下命令登录 MariaDB 服务器。在提示时输入你的 MariaDB root 密码。
sudo mariadb -u root -p
现在运行以下 SQL 语句,为 Flarum 创建一个新的数据库和用户。在本示例中,你将创建一个名为 ' flarum ' 的数据库、一个名为 ' flarum ' 的用户,密码为 ' password '。你可以将这些信息替换为你自己的设置。
CREATE DATABASE flarum;
CREATE USER flarum@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON flarum.* TO flarum@localhost;
FLUSH PRIVILEGES;

接下来,运行以下 SQL 语句验证用户 ' flarum ' 的权限。这将确保用户 ' flarum ' 能够访问数据库 ' flarum '。
SHOW GRANTS FOR flarum@localhost;
你可以看到用户 ' flarum ' 能够访问数据库 ' flarum '。
现在输入 quit 退出 MariaDB 服务器。

下载 Flarum 源代码
所有依赖配置完成后,你就可以下载 Flarum 源代码了。在本节中,你将创建一个用于存放 Flarum 的新的网站根目录,然后通过 Composer 下载 Flarum 源代码。
首先,运行以下命令创建一个用于安装 Flarum 的新目录 ' /var/www/flarum/ ',以及 Composer 的目录 ' /var/www/.cache ' 和 ' /var/www/.config '。然后,将这些目录的所属用户改为 ' www-data '。
mkdir -p /var/www/{.cache,.config,flarum}
chown -R www-data:www-data /var/www/{.cache,.config,flarum}
现在切换到 ' /var/www/flarum/ ' 目录,并通过以下 Composer 命令下载 Flarum 源代码。
cd /var/www/flarum/
sudo -u www-data composer create-project flarum/flarum .
你可以在下方看到 Flarum 源代码的下载过程。

下载过程完成后,运行以下 ' ls ' 命令检查 Flarum 源代码。
ls -ah
你应当看到已下载的 Flarum 源代码,类似如下所示:

为 Flarum 配置 Apache 虚拟主机
下载 Flarum 后,你需要创建一个新的 Apache 虚拟主机。因此,请确保你已为 Flarum 安装准备好了域名。
在创建虚拟主机之前,运行以下命令启用 Apache 的 ' ssl '、' rewrite ' 和 ' headers ' 模块。
sudo a2enmod ssl rewrite headers

现在使用以下 nano 编辑器命令创建新的虚拟主机配置文件 ' /etc/apache2/sites-available/flarum.conf '。
sudo nano /etc/apache2/sites-available/flarum.conf
插入以下配置,并务必将 ServerName 选项替换为你的域名,以及将 DocumentRoot 目录路径替换为你的 Flarum 安装路径。
<VirtualHost *:80>
ServerAdmin
[email protected]
DocumentRoot /var/www/flarum/public
ServerName forum.howtoforge.local
<Directory /var/www/flarum/public/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/flarum/public/>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php [PT,L]
</Directory>
</VirtualHost>
完成后,保存文件并退出编辑器。
接下来,运行以下命令激活虚拟主机文件 ' flarum.conf ' 并验证你的 Apache 配置语法。
sudo a2ensite flarum.conf
sudo apachectl configtest
如果你的 Apache 配置正确,应当看到 ' Syntax OK '(语法正确)的输出。

最后,运行以下命令重启 Apache Web 服务器,使新的 Flarum 虚拟主机配置生效。至此,你的 Flarum 应当可以访问了。
sudo systemctl restart apache2
使用 HTTPS 保护 Flarum
如果你在公网域名上运行 Flarum,可以使用 Certbot 和 Let's Encrypt 证书通过 HTTPS 来保护它。如果你使用的是本地域名,则可以使用自签名证书。
使用以下命令安装 Certbot 及 Certbot 的 Apache 插件。输入 Y 确认安装。
sudo apt install certbot python3-certbot-apache
现在执行以下 ' certbot ' 命令,为你的 Flarum 安装生成 SSL/TLS 证书。请务必将域名和电子邮件地址替换为你自己的信息。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email
[email protected]
-d forum.howtoforge.local
过程完成后,你的 Flarum 安装应当已通过 HTTPS 加固。你的 SSL/TLS 证书应当位于 ' /etc/letsencrypt/live/domain.com ' 目录中。
安装 Flarum
打开你的 Web 浏览器并访问你的域名,例如 https://forum.howtoforge.local/。如果你的配置成功,你将看到 Flarum 安装向导。
输入你的论坛标题、MariaDB 数据库、用户和密码的详细信息。然后,输入管理员用户、电子邮件地址和密码,用于你新的 Flarum 安装。
点击 ' Install Flarum '(安装 Flarum)按钮继续安装。

安装完成后,你将看到如下所示的 Flarum 管理后台:

现在点击你的用户图标并选择 Administration(管理)。这将显示你 Flarum 安装的详细信息。
正如你在下方所看到的,Flarum 1.8.5 已安装,运行环境为 PHP 8.3 和 MariaDB 服务器 10.11。

总结
恭喜!你已成功在 Ubuntu 24.04 上完成了 Flarum 的安装。你通过 LAMP 技术栈(Linux、Apache、MySQL/MariaDB 和 PHP)运行了 Flarum,并且使用 Certbot 和 Let's Encrypt 通过 HTTPS 对其进行了安全加固。