Files
IT-Docs/Debian12+Flarum1.8.md
T

340 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Debian12+Flarum1.8.1搭建小型论坛
## 一、环境说明
• 系统版本:Debian(纯命令行模式,无桌面环境,节约资源)
• 网站版本:Flarum 1.8.1
• Nginx版本:1.22.1
• 数据库版本:MySQL 5.7+ 或 MariaDB 10.2+
• PHP版本:8.0+
## 二、前置准备
1. 以 root 用户登录 Debian 纯命令行(远程登录可使用 Xshell、Putty 等工具);
2. 确保服务器临时能联网(用于下载依赖和软件,后续配置静态IP后永久联网);
3. 提前确认您域名已解析。本文后续域名使用yousuke.icu,您可以替换成您自己的域名。
## 三、分步搭建步骤
### 步骤1:安装Composer
#下载Composer安装脚本
php - r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
#验证脚本完整性(可选但推荐)
php - r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
#安装Composer到全局
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
#验证安装
composer -V
### 步骤2:创建数据库
mysql -u root -p
执行以下 SQL 创建 Flarum 专用数据库和用户(替换<你的数据库用户名>为实际用户名,比如 flarum_user):
-- 创建数据库(字符集必须utf8mb4,支持emoji
CREATE DATABASE flarum_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建数据库用户并授权
CREATE USER 'flarum_user'@'localhost' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON flarum_db.* TO 'flarum_user'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出MySQL
EXIT;
### 步骤3:安装Flarum 1.8.1
#进入网站上层目录
cd /var/www/
#创建目录
#创建站点根目录(根据你的服务器实际web根目录调整,比如Nginx常用/var/wwwApache常用/var/www/html
mkdir -p /var/www/xxx
#赋予目录权限(www-data是web服务默认用户,不同系统可能是apache/nginx
chown -R www-data:www-data /var/www/xxx
chmod -R 755 /var/www/xxx
xxx表示网站目录名称
#安装Flarum 1.8.1
composer create-project flarum/flarum mir3 1.8.* --stability=stable --no-dev --ignore-platform-reqs
注意这里可能出现以下提示:
Package doctrine/cache is abandoned, you should avoid using it. No replacement was suggested.
Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.
Generating autoload files
74 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Found 2 security vulnerability advisories affecting 2 packages.
Run "composer audit" for a full list of advisories.
这个提示信息实际就是告诉你有一个cache的文件夹没有,不用管,这个文件夹在网站在网页完成最后安装的时候会自己出来,这会没有是对的。
### 步骤4:配置Nginx
#编辑或新建vim /etc/nginx/conf.d/xxx.conf
vim /etc/nginx/conf.d/xxx.conf
#粘贴以下配置(xxx为网站目录)
```nginx
server {
listen 80;
listen [::]:80;
server_name 你的域名;
root /var/www/xxx/public; #Flarum的入口在public目录
index index.php index.html;
#静态文件缓存(优化性能)
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, max-age=31536000";
add_header X-Content-Type-Options nosniff;
try_files $uri $uri/ /index.php?$query_string;
}
#URL重写(Flarum必需)
location / {
try_files $uri $uri/ /index.php?$query_string;
}
#PHP解析配置
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock; #确认PHP-FPM sock路径(不同系统可能是/var/run/php/php8.2-fpm.sock
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
include fastcgi_params;
fastcgi_index index.php;
}
#禁止访问敏感文件
location ~ /\.env {
deny all;
}
}
```
#保存后检查 Nginx 配置并重启:
nginx -t #检查配置语法
systemctl restart nginx #重启Nginx
### 步骤5Web界面安装Flarum
1. 浏览器访问http://你的域名,进入 Flarum 安装界面;
2. 填写安装信息:
数据库:
数据库类型:MySQL/MariaDB
主机:localhost
数据库名:flarum_db(步骤 2 创建的)
用户名:flarum_user(步骤 2 创建的)
密码:xxxxxxxxxxx(步骤2你设置的)
管理员账户:填写你的管理员邮箱、用户名、密码;
论坛信息:填写论坛名称,URL 填写http://你的域名(后续配置 HTTPS 时也不用管,申请证书的时候会自动搞定https);
3. 点击 “Install Flarum” 完成安装。
注意:这一步安装完之后,之前安装Flarum 1.8.1缺少的cache就会有了。
## 四、中文语言包安装
### 步骤1SSH安装语言包
中文语言包一定要在这个时候再安装,否则会因为缺少那个cache失败。
#1. 进入mir3目录
cd /var/www/mir3
#2. 允许root运行Composer(消除权限警告)
export COMPOSER_ALLOW_SUPERUSER=1
#3. 安装中文语言包(忽略安全审计,适配1.8.*)
composer require flarum-lang/chinese-simplified:* --prefer-dist --no-audit
#4. 此时flarum命令已可用,清除缓存
php flarum cache:clear
### 步骤2:后台启用中文语言包
浏览器访问http://你的域名 /admin,用你刚创建的管理员账号登录;
1. 左侧菜单栏点击Features(特征其实就是扩展);
在最下面找到Language下面有English和简体中文,点击简体中文进去,点击Enable按钮启用;
2. 回到左侧菜单栏最上面,点击Basics;
找到 “Default Language”选项,下拉选择 “中文简体”;
滚动到页面底部,点击Save Changes(保存更改);
刷新论坛首页,界面已全部变为中文。
## 五、其他优化
优化设置部分先后,根据自己的需求来.
### 优化1:邮箱设置
这个地方很坑,邮箱设置分两个步骤。
#### 步骤1:后台编辑
进入后台,左侧菜单选择“邮箱”。
这一堆照着填就行了,和平时配置pop、imap邮箱时没什么区别,填写好后保存。
此时点发送,肯定会失败。
#### 步骤2:代码编辑
#编辑网站根目录下的 config.php 文件,找到 ‘mail’ 配置段,修改为如下格式(如何没有就直接粘贴进去,同时根据在后台填写的内容设置):
nano /var/www/xxx/config.php
xxx是网站目录
// 文件位置:config.php
```
'mail' => [
'driver' => 'smtp',
'host' => 'smtpdm.aliyun.com',
'port' => 465, // 或 587
'encryption' => 'ssl', // 或 tls,必须小写
'username' => '你的完整发信地址@example.com',
'password' => '你的阿里云SMTP密码',
'from' => [
'address' => '你的完整发信地址@example.com', // 必须与上面一致
'name' => '你的论坛名称',
],
],
```
#### 步骤3:测试
此时回到后台点击测试,如果信息没有错,就会提示发送成功。
这里注意,如果你的邮件很多,最好用正规的,别用个人的,容易出问题。
### 优化2:注册免邮箱验证
Flarum默认注册时需要填写邮箱,然后论坛会发一封确认邮件,这个功能个人觉得小型论坛完全没必要。因此,建议关闭。
关闭方法如下:
#连接服务器:使用 SSH 工具(如 Putty 或终端)登录到你的服务器。
#进入论坛根目录:导航到 Flarum 安装的根目录:
cd /var/www/xxx(请将路径替换为你自己的实际路径)
#执行安装命令:在根目录下,运行以下 Composer 命令来安装Email Verification Switch 插件:
composer require isaced/flarum-ext-email-verification-switch:"*"
#启用扩展:命令执行完成后,回到 Flarum 后台的 Extensions(插件) 页面,找到新安装的 Email Verification Switch,点击“启用”即可。
### 优化3:白天黑夜模式设置
这个是现在比较流行的根据白天黑夜进行页面颜色的设置,所以为了搞这个就装了一个FoF Night Mode插件。
由 Flarum 官方团队(Friends of Flarum)开发,是原版的「增强版」,支持自定义深色主题色、定时切换、强制全局模式,适合想精细控制风格的论坛。
#安装命令(SSH 执行)
#进入 Flarum 目录
cd /var/www/mir3
#执行安装
composer require fof/nightmode:*
#刷新缓存
php flarum cache:clear
### 优化4:首页欢迎横幅
这个欢迎横幅旁边有一个叉,可以关闭,关闭之后以后再打开就没有了。对于我来说我是希望有点仪式感,就想保留这个,然后就得吧叉去掉的,同时还要让他一直存在。
由于我这边做了优化3,安装了FoF Night Mode插件,所以修改如下。如果没有装这个插件会有点区别,注意哟。
#登录 Flarum 后台 →「外观」→「编辑自定义 CSS」;
替换所有 CSS 为下面这段(专门适配 FoF Night Mode):
```
/* ========== 删掉关闭叉 ========== */
.Hero-close {
display: none !important;
}
/* ========== 基础:横幅不遮挡+强制显示 ========== */
.Hero {
display: block !important;
visibility: visible !important;
opacity: 1 !important;
z-index: 10 !important; /* 低于顶部导航,不遮挡功能 */
padding: 20px 0 !important;
margin-bottom: 15px !important;
text-align: center !important;
border-bottom: 1px solid #eee !important;
position: relative !important;
width: 100% !important;
height: auto !important;
}
/* ========== 适配FoF Night Mode 核心逻辑 ========== */
/* 1. 日间模式(插件默认light主题) */
body[data-theme="light"] .Hero {
background-color: #f8f9fa !important; /* 浅灰白(匹配插件日间) */
color: #212529 !important; /* 深灰文字(清晰) */
border-bottom-color: #e9ecef !important;
}
/* 2. 夜间模式(插件dark主题) */
body[data-theme="dark"] .Hero {
background-color: #1e293b !important; /* 深蓝灰(匹配插件夜间) */
color: #f8fafc !important; /* 浅白文字(不刺眼) */
border-bottom-color: #334155 !important;
}
/* ========== 兜底:兼容插件旧版本 ========== */
body.night-mode .Hero, html.dark .Hero {
background-color: #1e293b !important;
color: #f8fafc !important;
border-bottom-color: #334155 !important;
}
/* ========== 功能保障 ========== */
.Hero .container {
font-size: 16px !important;
line-height: 1.8 !important;
padding: 0 20px !important;
}
.Hero-close { display: none !important; }
.Header, .Header-controls { z-index: 9999 !important; }
```
保存后,先切换夜间模式,再按 Ctrl+F5 硬刷新
### 优化5:全论坛置顶功能
这个功能我觉得很好,所以我是安装了的。
要实现 “帖子在板块内置顶,同时在首页(全部主题)也置顶”,需要安装 the-turk/flarum-stickiest 扩展,它在原生 flarum/sticky 的基础上增加了「全局置顶(Super Sticky)」功能。
1. 安装扩展(SSH 执行)
#进入你的 Flarum 目录
cd /var/www/mir3
#安装 Stickiest 扩展
composer require the-turk/flarum-stickiest:^3.0.0
#执行数据库迁移(首次安装必须)
php flarum migrate
#清空缓存
php flarum cache:clear
### 优化6:论坛日间夜间主题切换
由 Flarum 官方团队(Friends of Flarum)开发,是原版的「增强版」,支持 自定义深色主题色、定时切换、强制全局模式,适合想精细控制风格的论坛。
1. 安装命令(SSH 执行)
#进入 Flarum 目录
cd /var/www/mir3
#执行安装
composer require fof/nightmode:*
#刷新缓存
php flarum cache:clear
2. 核心优势(比原版强在哪)
自定义深色主题:可单独设置夜间模式下的主色调、链接色,不再是单纯的黑白反转;
定时自动切换:比如「晚 8 点自动切夜间,早 8 点切日间」;
管理员强制模式:可选择「全站仅日间」「全站仅夜间」(适合游戏论坛的深色风格);
更细腻的切换动画:无卡顿,体验更流畅。
### 优化7:添加昵称
官方扩展:flarum/nicknames
这是由 Flarum 官方团队开发和维护的扩展,专门用于添加、管理和显示用户昵称 。它的兼容性最好,功能也纯粹。
主要功能:
允许用户在个人资料中设置一个昵称(区别于登录用的用户名)。
管理员可以在后台设置权限,控制哪些用户组可以编辑昵称 。
可以选择在注册时就让用户填写昵称 。
最重要的是,你可以在后台的“外观”设置中,选择将页面上显示的用户名替换为昵称 。
安装步骤
整个过程只需要几条命令,比之前装附件扩展要顺利得多。请在你的 Flarum 根目录下执行:
#进入 Flarum 目录
cd /var/www/mir3
#使用 Composer 安装扩展:
composer require flarum/nicknames
#运行迁移,更新数据库:
php flarum migrate
#清理缓存,确保生效:
php flarum cache:clear
### 优化8:附件插件
这个插件我放到最后是因为我唯一最不满意的地方,但是也是无可奈何。因为对于Flarum来说,只有FoF Upload这个选择。
#### 1. 安装
fof/upload 依赖 PHP 的文件上传扩展,且要求 Flarum ≥ 1.0.0,我们先补全依赖,避免安装失败:
#安装PHP上传所需扩展(你的服务器大概率已装,但补一下更稳妥)
apt install -y php-fileinfo php-imagick
#重启PHP-FPM生效
systemctl restart php-fpm
Composer 安装(推荐,稳定无错),这是官方推荐的安装方式,自动处理依赖,步骤最简单:
(1) 进入 Flarum 根目录
SSH 登录服务器,切换到 Flarum 安装目录:
cd /var/www/flarum
(2) 执行安装命令
直接运行 Composer 命令下载插件:
composer require fof/upload:*
*表示安装适配你当前 Flarum 版本的最新版;
如果提示需要 GitHub Token,直接按回车跳过(仅影响下载速度,不影响安装);
若出现「内存不足」报错(2G 内存偶尔会遇到),临时扩容交换内存:
运行
fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
#安装完成后可删除交换文件:rm -rf /swapfile
#### 2. 配置问题
这个配置折腾了我很久,主要是太麻烦我个人觉得。最开始是按照文件类型逐一配置的,我的天啊,太多了,实在有点受不了。后来找到了一个简单的办法。
先记下这个东西:
(video\/(3gpp|mp4|mpeg|quicktime|webm))|(audio\/(aiff|midi|mpeg|mp4))|(application\/(x-(7z|rar|zip)-compressed|zip|arj|x-(bzip2|gzip|lha|stuffit|tar)|pdf))| (image\/(gif|jpeg|png))
这个是常用附件类型最全的配置方法。因为图片是需要预览的,所以图片部分单独拿出来新建一个完整图片预览。
说说这个插件最坑的地方:
不支持中文和一些字符。当你上传带有中文的附件时,最后传完在帖子中看到的就只有非中文部分了。所以,在上传附件时对于国内来说就比较麻烦了,毕竟你把附件名字搞成纯英文的很麻烦,也还要估计人家是否看的懂。但是这个插件确实也是最好的了。网上一些方案我试了一下都不太靠谱,尝试了几个都不行。最后的解决方案就是发帖子带附件的时候按照
附件名+附件的方案。也就是先写附件的中文名,再插入附件,看起来还不错。多个附件就换行。我试了几个还可以,当然也是无奈之举。