Docker Compose 教程:一键搭建 WordPress 博客的简单指南与最佳实践
本文将指导如何在 Debian 和 Ubuntu 系统下安装 wordpress 博客教程,为你详细讲解如何利用 Docker Compose 在 Debian 和 Ubuntu 系统下一键搭建 WordPress 博客。Docker Compose 是一个强大的工具,使得容器化应用的管理变得简单而高效。
文章发布时间:2023-12-5 如有更新,会及时更改!本文同时适用于 Debian 11 以及 Ubuntu 20.04
什么是WordPress
WordPress 是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统,截至2018年4月,排名前1000万的网站中超过30.6%使用WordPress。WordPress是最受欢迎的网站内容管理系统。全球有大约43%的网站都是使用WordPress架设网站的。WordPress是目前因特网上最流行的博客系统。WordPress在最著名的网络发布阶段中脱颖而出。如今,它被使用在超过7000万个站点上。
一直以来,折腾 博客 是我最大的爱好,当然我属于那种差生文具多类型,博客没写几篇,搭建方式,不同博客的框架倒是略懂几分。最近终于打算也正在回归正途使用 wordrepss ,把重心放在内容上,而非沉浸在捣鼓“文具”上。
本次教程选择全球公认市占率最多的 WordPress 博客上。wordrepss 搭建过程较为简单,仅仅几行命令就搭建好了一个属于自己的博客。默认搭建的是最新版的 wordpress 博客。
如果你对 Docker 还不熟悉,可以先阅读我之前写的一篇关于 [安装 Docker 以及 Docker Compose 教程]的文章。
前提条件:
要学习本教程,你将需要:
- 一台运行 Ubuntu 22.04 或 Debain 12 的服务器,以及一个具有
sudo权限的非root用户和一个活跃的防火墙。 - 一个注册的域名。本教程将自始至终使用test.uuzi.net。你可以在任意域名网站注册一个,或者使用你选择的域名注册商。
- 为你的服务器设置好DNS记录。
一旦你把一切都设置好了,你就可以开始第一步了。
docker-compose 安装 wordprss 步骤:
1、更新软件列表、系统升级、安装常用组件:
sudo -i
apt update && apt upgrade -y
apt install htop -y
2、安装 Docker Compose
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
usermod -aG docker $USER
rm get-docker.sh
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
3、重启系统
reboot
以上命令将更新软件列表、升级系统、安装 Docker Compose,并配置必要的组件。这是我们一键搭建 WordPress 博客的第一步。
4、安装 wordpress 命令
curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/wordpress/docker-compose.yml > docker-compose.yml
docker-compose up -d
在浏览器输入ip,回车即可看到搭建成功:

输入:http://ip/wp-admin,将ip替换为你自己vps的ip,之后可访问后台登陆界面:

后台默认用户名:user,密码:bitnami,登陆成功后记得修改密码。

wordrepss 博客搭建完成,接些来配合我们购买的或者自己的免费域名进行访问,毕竟用ip访问有点low;
首先将免费域名或购买的域名在cloudlfare上解析,以test.uuzi.net为例:

保存后,简单的ping一下该域名,看是否生效,如生效则进行下一步,否则,等待。

再次使用域名访问,发现我们搭建的 wordrepss 已经可以用域名访问,但现在的问题在于域名前显示 Not secure,即不安全的标识,这是因为我们没有配置SSL证书,接下来,我们直接用cloudlfare的证书来演示,主要是方便快捷。
其实这里也可以配合之前反向代理的教程:安装 NPM(nginxproxymanager)反向代理神器教程,就不用再cloudflare上进行设置,不想折腾反向代理的可以继续看下面的操作:

接着回到设置域名解析的地方,将代理状态打开,俗称打开小黄云。几分钟后,我们可以再尝试ping一下刚刚设置的域名,发现已经不是我们的ip地址,这样就对了,已经用上了cloudflare的免费CDN服务了。

再次访问我们的网址,发现如图的错误,但是自动加上了小锁

我们回到下图cloudflare中这个位置,将加密模式改为完全。

再次访问我们的域名,恭喜!现在你已经成功搭建了属于自己的 WordPress 博客。如果你有任何问题或想要了解更多关于 Docker 和 WordPress 的内容,请查看我们的 [Docker 标签页面]。

使用Docker一键安装WordPress和MySQL
前置条件
- 已安装 Docker 和 Docker Compose。可以在 Docker 官方网站上找到 Docker 和 Docker Compose 的安装指南。
步骤
步骤 1:创建一个名为 docker-compose.yml 的文件,然后添加以下内容:
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}这个文件定义了两个服务,WordPress 和 MySQL。它们在 Docker 中运行为单独的容器。WordPress 容器将连接到 MySQL 容器。
这部分的代码定义了一个 Docker 卷 db_data。卷是 Docker 提供的一种数据持久化的解决方案,你可以使用它来存储和共享容器的数据。
在这个 docker-compose.yml 文件中,db_data 卷被挂载到 MySQL 容器的 /var/lib/mysql 目录。这意味着 MySQL 容器的数据(例如数据库文件)将被存储在 db_data 卷中。即使你删除并重新创建 MySQL 容器,只要你还在使用同一个 db_data 卷,数据就不会丢失。
db_data: {} 的语法表示创建一个新的命名卷。这里的 {} 是空的,这意味着 Docker 将使用默认的配置来创建这个卷。如果你想要对卷进行配置,例如指定卷的驱动器或者设定其他选项,你可以在 {} 中添加这些选项。
在这个例子中,我们不需要对 db_data 卷进行任何特殊配置,所以你可以保留 db_data: {} 的语法。
如果你想知道更多关于 Docker 卷的信息,可以参考 Docker 的官方文档。
步骤 2:打开终端,导航到包含 docker-compose.yml 文件的目录,然后运行以下命令:
docker-compose up -d这个命令将下载并运行 WordPress 和 MySQL 的 Docker 镜像。参数 -d 让容器在后台运行。
步骤 3:打开浏览器并访问 http://localhost:8000 来查看你的 WordPress 网站。你应该会看到 WordPress 的安装向导。
常见问题
问题 1:如果你看到 "Error establishing a database connection" 错误,那可能是因为以下原因:
- 数据库服务器未运行:运行
docker ps命令来查看你的容器是否正在运行。你也可以通过运行docker logs <container_id>命令来查看 MySQL 容器的日志。 - 错误的数据库凭据:检查你的
docker-compose.yml文件中的WORDPRESS_DB_USER、WORDPRESS_DB_PASSWORD、WORDPRESS_DB_NAME和WORDPRESS_DB_HOST环境变量是否与 MySQL 容器的设置相匹配。 - 网络问题:你的 WordPress 和 MySQL 容器可能无法互相通信。在 Docker Compose 中,你应该使用服务名称(在这个例子中是
db)作为主机名。
如果你要停止你的 Docker 容器,可以运行 docker-compose down 命令。
这就是在 Docker 中一键安装 WordPress 和 MySQL 的步骤。希望对你有所帮助!
方法三:
1、WordPress介绍
官网:WordPress.com:快速、安全的受管 WordPress 托管服务
WordPress是一种基于php编程语言开发的CMS管理系统,WordPress有丰富的插件和模板,用户可以快速搭建一套功能十分强大的内容管理系统,使用WordPress可以做多种类型的网站,比如新闻发布网站、企业门户、个人技术博客等。
今天给大家分享一下通过docker快速部署一套WordPress系统,感兴趣的朋友可以一起来学习一下!
2、Dcoker快速部署WordPress
2.1 首先要拉取WordPress最新版本的镜像
docker pull wordpress:latest
2.2 安装mysql
wordpress基于php+mysql 所以需要安装mysql数据库,这里安装mysql5.7 版本。
#获取镜像
docker pull mysql:5.7
#运行mysql5.7
docker run -d --privileged=true --name mysql5.7 -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3206:3306 mysql:5.7
启动效果如下
参数说明:
- -p: 端口映射,这里表示将宿主机的3206映射给镜像的3306.
- -e: 环境变量,设置镜像中MySQL的root 密码时123456
- –name: 容器名称 mysql5.7
- –privileged=true: CentOS系统下的安全Selinux禁止了一些安全权限,导致MySQL容器在运行时会因为权限不足而报错,所以需要增加该选项
- -v: 挂载目录,将MySQL容器的/var/lib/mysql映射到宿主机的/data/mysql
2.3 运行wordpress容器
docker run --name wp --link mysql9 -p 1080:80 -d wordpress
参数说明:
- –link 链接到MySQL容器的名称
- -p 1080:80 开放1080端口
2.4、配置服务器端口
我购买的服务器是华为云,需要登录华为云服务器在服务器安全组配置1080端口开放,具体如下图:
2.5 防火墙设置
大家根据情况确认防火墙是否配置了,可以关闭防火墙,或者开启后设置端口开放,推荐第二种方式。
systemctl status firewalld #查看防火墙状态
systemctl start firewalld #开启防火墙
systemctl stop firewalld #关闭防火墙
firewall-cmd --list-ports #查看开放端口
#设置1080端口开放
firewall-cmd --zone=public --add-port=1080/tcp --permanent
firewall-cmd --list-ports #再次查看是否开放
3、浏览器访问测试
输入你的公网ip+1080 测试是否可以正常访问。效果如下图:
示例:127.0.0.1:1080
选择安装语言为简体中文
点击现在开始,进入页面配置mysql数据库信息。
输入网站信息,比如网站标题、登录用户名、密码等。
然后安装就成功了。
登录系统
登录后的管理主界面
4、总结
以上就是通过docker安装wordpress的教程,很多关于安装wordpress的文章会考虑直接在安装wordpress的同时配置mysql,很容易出现各种各样的问题,这里就不列举了。推荐采用我的这种方式。浏览器首次访问wordpress的同时进行配置mysql数据库。这样不容易出现错误。



发表评论
0 评论