Docker部署Flarum社区
前言
自从有了服务器之后一直有点蠢蠢欲动,纯静态博客已经满足不了我了,搭建一个轻社区的想法疯狂的在脑子里生长,今天突然有个机会了解到了Flarum这个开源轻社区,强大,方便,体积小,响应快
官方GitHub:https://github.com/flarum/flarum
官方的部署过程,,,emm,一言难尽
然后看到了宝塔面板的应用商店里居然有现成的docker版本,果断下载安装,结果,,,emm,根本就没反应啊喂,坐牢塔根本不给任何的提示,百度也搜不到相关教程,说是要缺少配置,到底要配置什么你倒是告诉我啊喂,果断放弃
继续百度,在茫茫人海里突然看到了一个大佬发布的使用docker手动部署的博文,简直就是天籁之音,思路一下子打开
教程原文:https://blog.csdn.net/qq_37887537/article/details/130071605
docker镜像地址:https://github.com/mondediefr/docker-flarum
注:这是第三方打包的地址,而且这个仓库已经好几年没有更新了,大概率版本是比较老旧了,但是我去dockerhub看了一眼,居然是三天前更新的,所以本文中下方等会要写的配置文件中的版本,就见仁见智了,可以自己尝试更新一下
开始部署
第一步:安装docker和docker-compose就不赘述了,可以看https://imbhj.com/posts/e5f6a19a/
第二步:拉取镜像
1 | 最新版 |
第三步:写配置文件
在自己能看的顺眼的位置新建一个文件夹作为根目录,名字随意
cd进入新建好的文件夹
touch一个新的文件: docker-compose.yml
(文件名必须是这个)
vim docker-compose.yml
:
1 | #未知含义的版本号 |
建议删除注释食用
注:冒号前面的目录是挂载的宿主机目录,可以自己修改,冒号后面的目录是映射的容器内部的目录,不可以更改,否则读取不到数据
cd进入新建好的env_file文件夹
touch一个新的文件: flarum.env
(文件名同你配置文件里的即可)
vim flarum.env
:
1 | #debug开关 |
建议删除注释食用
第四步:启动
1 | 需要有网络的情况下执行,会自动下载数据库镜像 |
第五步:访问
直接访问配置文件中的IP地址即可,本机访问127即可,局域网必须设置好局域网IP才可以,自定义域名同理
关闭容器:(在我们创建的根目录下执行)
1 | sudo docker compose down |
第二次启动容器的时候就可以一键执行:(在我们创建的根目录下执行)
1 | sudo docker compose up -d |
容器关闭后重新启动,插件需要重新启用并且设置也会重置,但不需要重新安装
更新
在创建的根目录下先关闭容器(如果开启的话)
编辑yml配置文件,将flarum和数据库的版本号都更改为latest
1 | sudo docker compose up -d |
直接拉取最新的镜像并部署
查看日志:
1 | sudo docker logs -f [容器名] |
安装插件
安装插件:
1 | sudo docker exec -ti flarum extension require [扩展名/扩展名] |
移除插件:
1 | sudo docker exec -ti flarum extension remove [扩展名/扩展名] |
列出扩展列表:
1 | sudo docker exec -ti flarum extension list |
首先安装中文插件:
1 | sudo docker exec -ti flarum extension require flarum-lang/chinese-simplified |
该命令实际上就是进入容器中调用该容器已经写好的extension脚本,来进行安装插件
登录管理页面:127.0.0.1:8000/admin(需要在首页登录配置好的管理员账户才有权限访问)
然后点击下方的保存,刷新即可显示为中文
安装标题搜索插件:
1 | sudo docker exec -ti flarum extension require ganuonglachanh/flarum-ext-search |
点击右上角头像,点击后台管理,启用该插件:
安装图片上传插件:
1 | sudo docker exec -ti flarum extension require fof/upload |
如果安装失败,执行下列安装指定版本的:
1 | sudo docker exec -ti flarum extension require fof/upload:1.3 |
注意,我这里开启这个上传插件之后就导致无法发帖无法回复,请慎用
应该是docker镜像的作者锁死了该插件的版本,以防php版本不适配
注意:实测直接使用最新版镜像,可以使用文件上传插件
启用之后进行自定义的设置即可
帖子直链插件:https://github.com/PipecraftNet/flarum-ext-id-slug/blob/main/README-cn.md
你也不想你的生成的链接这么长吧,安装:(安装后在常规设置里更改链接引擎)
1 | sudo docker exec -ti flarum extension require pipecraft/flarum-ext-id-slug |
开启后效果:
其他推荐插件:(安装第三方插件要慎重,尽量安装fof官方插件)
注:插件的加载是有顺序的,可能某些插件会导致其他插件不可用,所以安装插件一定要慎重!
注:不保准这些插件的兼容性,更多插件可以去插件商店看看~
注:安装任何插件之前请务必确保自己的站点的版本,插件是否兼容
1 | # 已安装 |
配置文件默认参数
UID | Flarum user id | optional | 991 |
---|---|---|---|
GID | Flarum group id | optional | 991 |
DEBUG | Flarum debug mode | optional | false |
FORUM_URL | Forum URL | required | none |
DB_HOST | MariaDB instance ip/hostname | optional | mariadb |
DB_USER | MariaDB database username | optional | flarum |
DB_NAME | MariaDB database name | optional | flarum |
DB_PASS | MariaDB database password | required | none |
DB_PREF | Flarum tables prefix | optional | none |
DB_PORT | MariaDB database port | optional | 3306 |
FLARUM_PORT | Port to run Flarum on inside the container | optional | 8888 |
UPLOAD_MAX_SIZE | The maximum size of an uploaded file | optional | 50M |
PHP_MEMORY_LIMIT | PHP memory limit | optional | 128M |
OPCACHE_MEMORY_LIMIT | OPcache memory size in megabytes | optional | 128 |
LOG_TO_STDOUT | Enable nginx and php error logs to stdout | optional | false |
GITHUB_TOKEN_AUTH | Github token to download private extensions | optional | false |
PHP_EXTENSIONS | Install additional php extensions | optional | none |
debug
插件状态数据丢失
目前mondediefr的这个镜像,存在一个问题,就是容器重载之后插件启用状态的丢失
在GitHub里有人提出了这个问题,且给出了解决方案:https://github.com/mondediefr/docker-flarum/issues/81
如果你已经运行了,并且配置了一些东西,先使用 docker cp
命令,将下面两个文件和一个文件夹所有的内容拷贝到宿主机:
1 | /flarum/app/vendor |
然后在yml配置文件中添加下这三个路径:
1 | volumes: |
重启容器,就可以解决这个bug了
如果你没有运行,站点还没有配置,建议直接加上这三个路径,一劳永逸 (这个我没试过可不可以,如果直接配置这三个目录后发现容器启动不起来,那么可以先不加,启动之后复制出来再添加)
用户无法注册
用户注册时候显示注册失败,但是后台已经注册好了用户的数据:
该报错是因为后台管理-邮箱界面没有配置邮箱服务导致的
删除用户
在后台管理-用户页面,点击用户名进入用户主页,点击编辑,删除:
生产环境和测试环境分离
更改yml配置文件中的端口以及容器名称
更改envfile中的数据库host为当前主机的IP
防火墙放行更改后的端口即可同时运行两个站点(记得备份)
现已放弃docker部署,改为主机部署
下面将是在主机部署遇到的一些问题
主页PHP警告
1 | afrux/forum-widgets-core |
上面这几个插件安装之后访问主页会有php的警告
在站点php设置里,把警告提示输出关闭即可:
返回顶部/底部按钮
采用 datlechin/flarum-scroll-buttons
插件,CSS样式优化:
1 | /* flarum-scroll-buttons返回顶部/底部按钮样式优化 */ |
优化搜索高亮
1 | /* 搜索结果关键字高亮 */ |