340 lines
15 KiB
Markdown
340 lines
15 KiB
Markdown
# 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/www,Apache常用/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
|
||
|
||
### 步骤5:Web界面安装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就会有了。
|
||
|
||
## 四、中文语言包安装
|
||
### 步骤1:SSH安装语言包
|
||
中文语言包一定要在这个时候再安装,否则会因为缺少那个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))
|
||
这个是常用附件类型最全的配置方法。因为图片是需要预览的,所以图片部分单独拿出来新建一个完整图片预览。
|
||
说说这个插件最坑的地方:
|
||
不支持中文和一些字符。当你上传带有中文的附件时,最后传完在帖子中看到的就只有非中文部分了。所以,在上传附件时对于国内来说就比较麻烦了,毕竟你把附件名字搞成纯英文的很麻烦,也还要估计人家是否看的懂。但是这个插件确实也是最好的了。网上一些方案我试了一下都不太靠谱,尝试了几个都不行。最后的解决方案就是发帖子带附件的时候按照
|
||
附件名+附件的方案。也就是先写附件的中文名,再插入附件,看起来还不错。多个附件就换行。我试了几个还可以,当然也是无奈之举。
|
||
|
||
|
||
|