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

15 KiB
Raw Blame History

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为网站目录)

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