Linux系统下基于Docker的Moodle+Wordpress搭建方法

基于Docker的Moodle+Wordpress搭建方法,以Centos7.9为例

注:如有侵权,请联系作者删除。如有转载,请说明出处。

本教程使用Centos7.9系统,其他Centos版本和Linux系统部署方式类似。系统环境部署采用bitnami/moodlebitnami/wordpress容器方法。

本教程中bitnami/moodle和bitnami/wordpress容器都默认了数据库的Hostname为maridb,如果需要修改,可在启动的时候通过配置参数进行指定,具体配置参数见moodle部署章节和wordpress部署章节处提供的链接。

  • 如果以学习为主要目的,请跳过本教程,因为本教程对你的技能提升没有明显帮助。建议使用全新环境并按官方指导教程逐步进行部署,以便于增加你对mariadb/httpd/php/firewalld等功能模块的认识、学习、配置和使用。当然也可以通过本文末参考资料中提供的链接辅助你的学习。
  • 如果仅需要单独部署moodle环境或wordpress环境,建议参照[1]或[2]中的docker compose方法或docker command方法之一即可。可直接跳过本教程。
    [1] moodle部署教程 https://hub.docker.com/r/bitnami/moodle
    [2] wordpress部署教程 https://hub.docker.com/r/bitnami/wordpress

1. docker环境安装

此处采用脚本安装的方式完成Docker环境的部署

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

启动docker并设置开机自启动

sudo systemctl enable docker
sudo systemctl start docker

其他方式和其他系统可参照 https://www.runoob.com/docker/centos-docker-install.html

2. moodle部署

moodle部署方式主要参照 https://hub.docker.com/r/bitnami/moodle

(1)获取bitnami/mariadb和bitnami/moodle镜像

docker pull bitnami/mariadb
docker pull bitnami/moodle

(2)创建网络。考虑到moodle和wordpress要使用同一数据库,此处创建了名字为 mariadb-network的网络。(网络名字可自行修改)

docker network create mariadb-network

(3)创建mariadb数据库卷,并启动maiadb数据库。

  • 此处启动容器时为moodle系统创建了名为bitnami_moodle的数据库,为该数据库配置了用户bn_moodle,并将用户访问密码设置为bitnami。(注:数据库名字/用户/密码可自行修改。但是使用数据库时,即启动moodle/wordpress容器时需保持一致。)
$ docker volume create --name mariadb_data
$ docker run -d --name mariadb \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env MARIADB_USER=bn_moodle \
  --env MARIADB_PASSWORD=bitnami \
  --env MARIADB_DATABASE=bitnami_moodle \
  --network mariadb-network \
  --volume mariadb_data:/bitnami/mariadb \
  bitnami/mariadb:latest

(4)创建moodle数据库卷,并启动moodle。

  • 此处启动容器时以用户名bn_moodle,密码bitnami方式对bitnami_moodle数据库进行了连接。并增加了PHP_POST_MAX_SIZE、PHP_UPLOAD_MAX_FILESIZE、PHP_MAX_EXECUTION_TIME三个参数的配置以解决moodle系统上传视频文件配置过小的问题。
$ docker volume create --name moodle_data
$ docker run -d --name moodle \
  -p 8080:8080 -p 8443:8443 \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env MOODLE_DATABASE_USER=bn_moodle \
  --env MOODLE_DATABASE_PASSWORD=bitnami \
  --env MOODLE_DATABASE_NAME=bitnami_moodle \
  --env PHP_POST_MAX_SIZE=2048M \
  --env PHP_UPLOAD_MAX_FILESIZE=2048M \
  --env PHP_MAX_EXECUTION_TIME=600 \
  --network mariadb-network \
  --volume moodle_data:/bitnami/moodle \
  bitnami/moodle:latest

至此,完成了moodle的环境部署,可访问http://Server_IP:8080 进入moodle界面,管理员账号/密码为user/bitnami。(Server_IP需替换为本服务器的地址,端口由容器启动时映射的端口决定,本文moodle端口是8080)

3. wordpress部署

wordpress部署方式主要参照 https://hub.docker.com/r/bitnami/wordpress

(1)获取docker pull bitnami/wordpress镜像

docker pull bitnami/wordpress

(2)进入mariadb并为wordpress配置单独的数据库、用户和密码(数据库名、用户、密码可自行设置。但是使用数据库时需保持一致)。

  • docker ps 查看mariadb容器名并进入容器

在这里插入图片描述

  • root进入数据库、创建数据库、创建用户并授权(注:mysql -u root
    -p,root账户进入数据库时,会提示输入密码,此处无需输入,直接Enter进入就行)。
mysql -u root -p 
MariaDB [(none)]> create database bitnami_wordpress;
MariaDB [(none)]> create user 'bn_wordpress'@'%' identified by 'bitnami';
MariaDB [(none)]> grant all privileges on bitnami_wordpress.* to 'bn_wordpress'@'%' identified by 'bitnami';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit

(3)创建wordpress数据库卷,并启动wordpress。

  • 此处启动容器时以用户名bn_wordpress,密码bitnami方式并使用mariadb-network对bitnami_wordpress数据库进行了连接。(此处需注意,在做端口映射的时候需要和moodle进行区分
$ docker volume create --name wordpress_data
$ docker run -d --name wordpress \
  -p 8081:8080 -p 8444:8443 \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env WORDPRESS_DATABASE_USER=bn_wordpress \
  --env WORDPRESS_DATABASE_PASSWORD=bitnami \
  --env WORDPRESS_DATABASE_NAME=bitnami_wordpress \
  --network mariadb-network \
  --volume wordpress_data:/bitnami/wordpress \
  bitnami/wordpress:latest

至此,完成了moodle的环境部署,可访问http://Server_IP:8081/wp-login.php 进入moodle界面,管理员账号/密码为user/bitnami。(Server_IP需替换为本服务器的地址,端口由容器启动时映射的端口决定,本文wordpress端口是8081)

4. 问题定位方法介绍

(1)moodle/wordpress启动后Exit(-1)退出

  • 使用docker logs -f [container] 查看是否由错误提示,命令使用方法如下

在这里插入图片描述

在这里插入图片描述

(2)无法连接数据库

  • 在容器退出前查看每个容器的网络配置
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

在这里插入图片描述

如果网络不在同一网段,需要检查容器启动的时候是否使用了同一个网络。(本文中的网络为 ‘–network mariadb-network’

(3)网络正确,无法访问数据库

  • 使用创建数据库时配置的用户名/账号登录数据库验证数据库的账号密码是否正确。

在这里插入图片描述

  • 检查数据库用户是否具有远程访问权限
I have no name!@a9365833a5cc:/$ mysql -u root -p
Enter password: (不需要输入密码)
BMariaDB [(none)]> select Host,User,Password from mysql.user;

在这里插入图片描述

5. bitnami介绍

Bitnami是一个面向服务器维护者的云服务,直接提供适用于各种Linux发行版的免配置的服务器软件安装包。其自身定位为“服务器端的软件商店”。参考链接:https://developer.aliyun.com/article/804650

6. 参考资料

CentOS Docker 安装
https://www.runoob.com/docker/centos-docker-install.html

bitnami/moodle
https://hub.docker.com/r/bitnami/moodle

bitnami/wordpress
https://hub.docker.com/r/bitnami/wordpress

bitnami介绍
https://baike.baidu.com/item/BitNami/1604585?fr=aladdin
https://developer.aliyun.com/article/804650

mysql中grant all privileges on赋给用户远程权限
https://blog.csdn.net/qq_31725371/article/details/83019856

MySQL/MariaDB用户权限及权限管理
https://zhuanlan.zhihu.com/p/361897908

MariaDB 用户与权限管理
https://blog.51cto.com/lyshark/5322081

基于CentOs7的moodle平台搭建历程
https://blog.csdn.net/Rui_Xian_Qi_Mu/article/details/60882231

在CentOS 7上安装Moodle
http://www.vue5.com/centos/23060.html

Moodle安装指导手册
https://yubaba.blog.csdn.net/article/details/79537689

Ubuntu20.04搭建moodle3.11最详细教程(apache+php+mysql)
https://blog.csdn.net/weixin_43055969/article/details/122037844

Docker容器网络更改
https://blog.csdn.net/qq_51409098/article/details/124782275

CentOs7详细安装wordpress
https://blog.csdn.net/weixin_43627152/article/details/120383447

手动搭建WordPress(CentOS 8)
https://help.aliyun.com/document_detail/184111.html

docker 容器ip查看及 网络配置区别
http://t.zoukankan.com/zjdxr-up-p-15409168.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值