使用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
  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    #密码和上面的密码保持一致
    FLARUM_ADMIN_MAIL=admin@domain.tld       #管理员邮箱
    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-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容器

1

2

3

在FORUM_URL里输入正确的域名就行了。最后重新部署一下。

完成


WriteBy: Tutu
CopyRight宣言: 本サイトに掲載された内容は下記に従う CC BY 4.0 著作権。 Tutu !
 前へ
2022-11-08 Tutu
次へ 
2022-11-05 Tutu
  目次