使用Docker-compose部署Flarum论坛
前阵子在Youtube上,看到一个老外部署的一个Flarum论坛,功能上和美观上都不错,打算自己搭建一个试一下。
部署是很简单的,但是中途出现很多问题,比如进去只显示标题界面,或者没法配置SSL,或者就是重启docker容器就不能进论坛了。
Flarum具有以下特性:
多平台:linux/386、linux/amd64、linux/arm/v6、linux/arm/v7、linux/arm64(树莓派也可以搭建!)
轻量级和安全的镜像
基于Alpine Linux 3.15
nginx和PHP 8.0
采用最新的Flarum Core(v1.2.0)
MySQL/Mariadb驱动
配置了OPCache扩展
Github:https://github.com/mondediefr/docker-flarum
记录一下如何搭建
1.准备工作
安装Docker
wget -qO- get.docker.com | bash
安装Docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
安装Portainer(可以不安装)
sudo docker volume create portainer_data
下载并安装 Portainer Server 容器
sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest
2.正式部署
在 /mnt/docker/创建一个flarum的文件夹
mkdir /mnt/docker/flarum cd /mnt/docker/flarum
配置docker-compose.yml文件
输入
vim docker-compose.yml
内容:
version: "3" services: flarum: image: mondedie/flarum:stable container_name: flarum env_file: - /mnt/docker/flarum/flarum.env volumes: - /mnt/docker/flarum/assets:/flarum/app/public/assets - /mnt/docker/flarum/extensions:/flarum/app/extensions - /mnt/docker/flarum/storage/logs:/flarum/app/storage/logs - /mnt/docker/flarum/nginx:/etc/nginx/flarum ports: - 8082:8888 #设置端口为8082,根据自己情况设置 depends_on: - mariadb mariadb: image: mariadb:10.5 container_name: mariadb environment: - MYSQL_ROOT_PASSWORD=xxxxxxxxxx #设置数据库root密码 do - MYSQL_DATABASE=flarum - MYSQL_USER=flarum - MYSQL_PASSWORD=xxxxxxxxxx #设置数据库密码 volumes: - /mnt/docker/mysql/db:/var/lib/mysql
再在/mnt/docker/flarum创建一个flarum.env文件
vim flarum.env
DEBUG=false FORUM_URL=http://domain.tld #设置自己网站地址,刚开始也可以设置成公网IP+端口号 # Database configuration DB_HOST=mariadb DB_NAME=flarum DB_USER=flarum DB_PASS=xxxxxxxxxx #和上方设置的密码保持一致 DB_PREF=flarum_ DB_PORT=3306 # User admin flarum (environment variable for first installation) # /!\ admin password must contain at least 8 characters /!\ FLARUM_ADMIN_USER=admin #网站管理员账户 FLARUM_ADMIN_PASS=xxxxxxxxxx #密码和上面的密码保持一致 FLARUM_ADMIN_MAIL=admin@domain.tld #管理员邮箱 FLARUM_TITLE=Test flarum #网站标题
运行你的 docker-compose
docker-compose up -d mariadb docker-compose up -d flarum
这个时候在浏览器输入你的IP+端口号就能进入网站
3.出现问题的及解决方法
1.如果进入网站,只显示标题让你强制刷新,怎么办。
显示Something went wrong while trying to load the full version of this site. Try hard-refreshing this page to fix the error.
如果是配置了域名
# 进入容器内部
docker exec -it flarum-app sh
# 修改 /flarum/app/config.php
vi /flarum/app/config.php
URL='外网ip:端口'
#域名的话输入
'url' => 'https://huddleberry.com'
最后输入;wq 保存退出,这个时候会发现没用。
然后运行
php flarum cache:clear
清理缓存,刷新网站,发现好了。
2.重启容器后显示错误,直接进不去
显示
Next Doctrine\DBAL\Driver\PDO\Exception: SQLSTATE[HY000] [1045] Access denied for user ‘flarum‘@’172.19.0.3’ (using password: YES) in /flarum/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18
这个情况可能是数据库的密码和账户不对
检查上面配置的账号密码是不是对的上,有时候,密码设置的问题也可能会这样,试着换个密码,官网说
您的管理员密码必须至少包含8 个字符(FLARUM_ADMIN_PASS)。
3.每次重启容器后发现都只显示标题让你强制刷新
执行解决方法1.每次都要这么操作一下,就非常的麻瓜。
如果大家配置了Protainer那就方便了。
选择flarum容器
在FORUM_URL里输入正确的域名就行了。最后重新部署一下。
完成