使用Docker-compose部署Flarum论坛
使用Docker-compose部署Flarum论坛

使用Docker-compose部署Flarum论坛

内容纲要

使用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.准备工作

  1. 安装Docker

    wget -qO- get.docker.com | bash

    开机自动启动

    systemctl enable docker
  2. 安装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
  3. 安装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.正式部署

  1. 在 /mnt/docker/创建一个flarum的文件夹

    mkdir /mnt/docker/flarum
    cd /mnt/docker/flarum
  2. 配置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
  3. 再在/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    #密码和上面的密码保持一致
    [email protected]       #管理员邮箱
    FLARUM_TITLE=Test flarum      #网站标题
  4. 运行你的 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 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里输入正确的域名就行了。最后重新部署一下。

4.安装自定义扩展

安装后,发现只有英文,我们可以通过安装拓展来添加简体中文。

首先访问拓展列表

https://flagrow.io/extensions

下载一个简体中文的插件。

我们可以通过搜索

简体中文

我们找到require复制后面的内容

输入下面的命令

docker exec -ti flarum extension require flarum-lang/chinese-simplified   # flarum-lang/chinese-simplified 替换成相应的插件

这样就可以下载简体中文插件。

5.设置语言

在刚刚,我们下载了简体中文的扩展,还需要激活和设置他。

我们来到网站的后台管理

在最后面激活我们的扩展

点击按钮激活

然后我们回到上面的Basics

选择简体中文保存,刷新界面就更改成功了。

完成。

3条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注