万事屋的家人们,是不是折腾Flarum论坛时候忘了单独导出数据库?还是服务商跑路只给你扔了个网站压缩包和SQL文件?别慌!今天我就用亲身踩坑经历,告诉你怎么只用网站根目录备份+数据库备份,完整恢复到一个全新的Ubuntu 22.04 + CyberPanel环境上。网上那些教程要么缺胳膊少腿,要么直接复制粘贴根本跑不通。这篇保证你跟着做就能找回你的论坛,顺便吐槽几个坑点。
一、准备工欲善其事
你得先有一台装了Ubuntu 22.04的VPS或者本地虚拟机,并且已经装好CyberPanel(建议最新版,带OpenLiteSpeed)。如果你还不会装CyberPanel,去官网看两行命令就搞定,这里不赘述。另外,准备好你之前的备份:整站根目录的zip/tar包和数据库的.sql文件。
吐槽点:很多人以为Flarum备份只要拷文件就行,结果忽略了.env或config.php里的绝对路径和数据库密码,恢复完一脸懵逼。今天咱把这坑填平。
二、上传网站根目录到正确位置
CyberPanel默认网站存放路径在/home/用户名/public_html/,但实际你的网站根目录取决于你在面板里创建域名时指定的路径。稳妥做法:
- 登录CyberPanel后台,进入“Websites” → “Create Website”,先创建一个和原来一样的域名(比如
bbs.example.com),PHP版本选7.4或8.1(Flarum要求PHP 7.4+,推荐8.0以上)。 - 创建成功后,面板会自动生成一个文件夹,例如
/home/bbs.example.com/public_html/。然后通过SSH或者CyberPanel的文件管理器,把整站备份里的所有文件覆盖上传到这个目录。 - 关键命令(用SSH最稳):
# 假设你的备份包叫 flarum_backup.tar.gz 放在 /root/ cd /home/bbs.example.com/public_html/ tar -xzvf /root/flarum_backup.tar.gz --strip-components=1 # 如果备份包内部没有public_html那一层,直接解压即可
血泪教训:千万别忘了把.htaccess和.user.ini这些隐藏文件也拷过去。用ls -la检查一下,否则Flarum的路由重写会直接404。
三、数据库导入
Flarum所有帖子、用户、设置都在数据库里。恢复步骤:
- 在CyberPanel后台进入“Databases” → “phpMyAdmin”,或者直接用命令行。先创建一个同名数据库(如果备份里的数据库名是
flarum_prod,那就创建这个)。 - 创建一个数据库用户,并给它完全权限,记得记下用户名和密码。
- 导入你的.sql备份:
mysql -u 你的数据库用户名 -p 你的数据库名 < /path/to/backup.sql
如果你不知道原数据库名和密码,可以去解压后的Flarum根目录翻config.php(Flarum 1.x)或.env(新版Flarum)文件。打开一看就明白了,这里面存着数据库连接信息。别傻乎乎的去猜。
注意:如果备份里的数据库前缀不是默认的flarum_,导入后检查一下表名前缀是否匹配。不匹配的话就手动改config.php里的'prefix'项。
四、修改Flarum配置文件
这一步直接决定你恢复后能不能打开论坛。打开Flarum根目录下的config.php(Flarum 1.x)或者.env(Flarum 2.x/beta时期)。需要修改三处:
- 数据库连接信息: 数据库名、用户名、密码必须跟你刚才创建的一致。
- URL地址: 找到
'url' => 'http://旧域名.com',改成你现在用的新域名,比如https://bbs.newdomain.com(如果启用了SSL就加https)。 - 绝对路径: 有些缓存或存储路径可能是
/home/old_user/...,需要更新为/home/bbs.example.com/public_html/。新版Flarum多在.env里的APP_URL和STORAGE_PATH。
修改完保存,顺便检查下storage和public/assets目录的权限:
chown -R www-data:www-data /home/bbs.example.com/public_html/
chmod -R 755 /home/bbs.example.com/public_html/storage
chmod -R 755 /home/bbs.example.com/public_html/public/assets
这里CyberPanel使用www-data用户运行LiteSpeed,别搞错成其他用户。否则写入报错,头像和发帖都没法传。
五、配置CyberPanel虚拟主机重写规则
Flarum依赖URL重写(伪静态),而CyberPanel默认使用OpenLiteSpeed。好消息是LiteSpeed兼容Apache的.htaccess。你只需要确保:
- 在CyberPanel后台找到你的网站域名 → “Rewrite Rules” → 选择“Drupal / Laravel / Flarum”类似的模板,或者手动粘贴Flarum官方提供的
.htaccess内容。最简单方法:直接把备份里的.htaccess放在网站根目录,LiteSpeed会自动读取。 - 万一还不行,进入“Virtual Host Conf”,找到
rewrite 模块,添加一条:RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^ index.php [QSA,L]
然后记得重启LiteSpeed服务:systemctl restart lsws。不然改了规则不生效,白忙活。
六、PHP扩展及Composer依赖(可选但重要)
Flarum需要fileinfo、pdo_mysql、mbstring、curl、zip、gd这些PHP扩展。在Ubuntu 22.04上,如果你用CyberPanel自带的PHP版本,可以在面板的“PHP” → “Extensions”里一键安装。遗漏任何一个扩展,论坛可能会出现白屏或报错“缺少某某类”。
另外,如果恢复后访问论坛提示“需要运行迁移”之类的,别慌:进入网站根目录执行php flarum migrate。有些备份因为版本差异需要更新数据结构。执行前确保composer已安装,并且vendor目录完整。如果不完整,就跑composer install --no-dev。
七、清理缓存并测试登录
一切搞定后,清理Flarum缓存:
php flarum cache:clear
或者直接删除storage/cache和storage/views下的所有文件(别删目录本身)。然后打开你的域名,看到熟悉的论坛首页了吗?赶紧用管理员账号登录后台检查插件是否正常。如果出现CSRF token不匹配或者session问题,多半是config.php里的'key'跟你原来备份不一致。Flarum的app_key存在config.php或者.env的APP_KEY里,必须和备份里的一样。如果你备份里有原文件,那就不用改。如果丢了…那只能重新生成,然后所有已登录用户的session会失效,问题不大。
八、终极排雷(人类常见傻缺错误)
- 错误1: 把网站文件放在
/home/cyberpanel/下面,但虚拟主机路径设错 → 检查CyberPanel里“Document Root”是否指向了/home/你的域名/public_html。 - 错误2: 导入数据库后显示“表不存在” → 检查
config.php里的表前缀,比如'prefix' => 'flarum_',但数据库里表是flarum_users还是fla_users?挨个对。 - 错误3: 访问主页直接下载PHP文件 → 说明PHP没有解析,检查CyberPanel里该网站是否关联了正确的PHP处理程序(Handler),一般选“LSAPI”。
- 错误4: 图片附件、头像裂了 → 重新运行
php flarum assets:publish,然后确保public/assets可写。
整完这些,你的Flarum论坛应该原地复活了。折腾过程中如果实在翻车,别慌,我当初也重来了三次。反正记住:备份再跑路,手动恢复也没那么玄乎。
版权声明:本文由万事屋原创,转载请注明出处并保留原文链接。你可以在万事屋官网找到更多服务器折腾干货。未经允许禁止商业搬运,手打不易,且转且珍惜。













没有回复内容