容器安装

本人购买的 VPS 服务器是 Centos 8 操作系统,为了基于 Docker 搭建 WordPress 个人博客网站,首先需要安装 Docker 环境的过程如下:

1、下载 docker-ce 的 repo:
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
2、安装依赖(这是相比 Centos7 的关键步骤):
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
3、安装 docker-ce:
yum install docker-ce
4. 启动docker
systemctl start docker

到此,docker 安装成功,如下图所示:
在这里插入图片描述

博客搭建

1、使用 WordPress 前需要先安装 MySQL 数据库,先使用命令docker pull mysql:5.7将 MySQL 数据库镜像拉取到本地:
在这里插入图片描述
2、上面指定了 MySQL 数据的版本为 5.7,然后再使用命令docker pull wordpress 拉取 WordPress 镜像:
在这里插入图片描述
3、将 MySQL 和 WordPress 下载到本地后,首先执行命令docker run -d --name db.wordpress -e MYSQL_ROOT_PASSWORD=admin mysql:5.7开启 MySQL 服务:

参数释义
run启动一个容器
-d启动的容器在后台运行
–name给启动的 Mysql 容器起个名字:db.wordpress
-e MYSQL_ROOT_PASSWORD设置 MySQL 的 Root 密码
:5.7指定 Mysql 的版本

如下图所示:
在这里插入图片描述
4、接着执行命令docker run -d -p 8080:80 --name wordpress --link db.wordpress:mysql wordpress启动一个 WordPress 容器,将 db.wordpress 容器连接到 WordPress 容器即可:

参数释义
-p指定 WordPress 容器的访问端口,在浏览器中打开 http://VPS_IP:8080/ 即可预览 WordPress 站点
–link将 db.wordpress 容器挂载到 mysql,使 WordPress 能通过 mysql 访问到 db.wordpress 数据库

如下图所示:
在这里插入图片描述
5、此时即可在本地浏览器访问http://VPS_IP:8080试试:
在这里插入图片描述
至此,基于 Docker 的 WordPress 博客环境便搭建完成。

编辑博客

上述已经可以访问到 WordPress 的初始安装界面了,下面继续进行部署完善。

1、在上述页面选择“简体中文”以后继续,进行安装前的信息完善:
在这里插入图片描述
2、安装成功后提示如下:
在这里插入图片描述3、接着进行登录:
在这里插入图片描述4、成功进入 WordPress 后台管理系统:
在这里插入图片描述5、此时直接重新访问 http://VPS_IP:8080 即可成功访问到自己搭建的博客前台了(当然当前内容为空):
在这里插入图片描述6、自行编辑润色后如下:
在这里插入图片描述7、发布博文:
在这里插入图片描述

绑定域名

以上通过IP地址直接访问博客网站的形式直接暴露了 VPS 主机的 IP,并不安全,在微信浏览器还会有相关的安全提示:
在这里插入图片描述
下面将记录如何将博客地址绑定到从阿里云购买的域名。

1、登录阿里云管理控制台,注册并购买自己的域名(过程省略),本人已购买如下域名一年(很便宜仅 9 块钱/年):
在这里插入图片描述2、当然了,此时的域名还没法直接使用,需要进一步配置 DNS 解析:
在这里插入图片描述
3、为了方便绑定域名与 VPS 主机 IP 地址的映射关系,将 WordPress 的访问端口有 8080 改为 80 端口了:
在这里插入图片描述如下图所示:
在这里插入图片描述4、为了让浏览器能成功解析购买的域名,自动指定访问博客网站的 IP 地址,需要在阿里云域名控制台配置域名解析规则:
在这里插入图片描述5、选择 “解析设置” - “添加记录”:
在这里插入图片描述

注意】解析生效时间取决于本地DNS缓存的解析记录的TTL到期时间,一般默认为10分钟。例如解析记录设置的 TTL 值为 10 分钟,则理论上全球解析生效时间需要10分钟;解析记录设置的 TTL 值为 60 秒,则理论上全球解析生效时间需要 60 秒。

6、此时可以使用 阿里云DNS在线解析工具 来测试域名是否可成功被解析:
在这里插入图片描述7、此时使用域名直接访问博客网站试试:
在这里插入图片描述8、至此已可以通过自己购买的阿里云域名访问自己的博客网站,但发现点击网站的链接(如博文链接)依然是IP地址的形式,如下图所示:
在这里插入图片描述9、解决办法是进入 WordPress 的管理后台进行如下设置:
在这里插入图片描述10、此时整个博客网站的链接就均是指定的域名而非IP形式了:
在这里插入图片描述

部署证书

个人博客有了自己的域名之后,可以进一步部署 SSL 证书,使用 HTTPS 协议增强站点安全性。

HTTPS 和 HTTP 协议的区别:

  • HTTPS比HTTP更加安全,使用SSL安全协议对数据进行加密;
  • HTTPS需要申请CA证书,免费证书较少(我使用阿里云的免费证书),需要支付一些费用;
  • HTTP使用80端口进行通信,而HTTPS使用443端口进行通信。

1、首先到阿里云申请个人免费证书:
在这里插入图片描述
2、需要完善申请信息:
在这里插入图片描述3、接下来等待证书申请完成:
在这里插入图片描述4、稍等2分钟,手机收到审核通过的短信后即可下载证书文件:
在这里插入图片描述5、WordPress 容器使用的是 Apache 服务器:
在这里插入图片描述6、故下载 Apache 对应的证书,会得到 3个文件:
在这里插入图片描述
7、通过 sftp 将证书文件上传到 VPS 主机:
在这里插入图片描述
8、进一步将证书从 VPS 拷贝到运行 WordPress 服务的容器 apache 安装路径下:docker cp 本地文件的路径 container_id:<docker容器内的路径>,如下图所示:
在这里插入图片描述9、在配置证书之前,需要进入 wordpress 容器,输入 openssl ,查看是否安装 SSL,如果出现下面图情况说明已经安装过了 :
在这里插入图片描述10、加载 Apache SSL 模块,执行命令 a2enmod ssl,第一次加载,会提示重启 Apache……然而实际直接终止了 WordPress 容器,需要重启:
在这里插入图片描述重启容器并重新加载 SSL 模块,成功:
在这里插入图片描述
11、修改 SSL 配置文件,绑定证书及打开 443 端口,Apache 加载 SSL 模块后,会在 /etc/apache2/sites-available 下生成 default-ssl.conf 文件:
在这里插入图片描述
编辑该文件,设置阿里云证书路径:
在这里插入图片描述
12、从 apache 的配置文件 apache2.conf 可以看到,apache 只会读取 /etc/apache2/sites-enabled 目录的配置文件,所以需要把 /etc/apache2/sites-available 下的 default-ssl.conf 文件复制到 /etc/apache2/sites-enabled 目录下:
在这里插入图片描述13、配置 http 请求强制跳转到 https,编辑 /etc/apache2/sites-available/000-default.conf 配置文件,增加以下配置:
在这里插入图片描述14、接下来需要给 WordPress 容器增加 443 端口,先暂停运行容器:
在这里插入图片描述15、然后在/var/lib/docker/containers找到 WordPress 容器对应的ID文件夹路径:
在这里插入图片描述16、编辑文件hostconfig.json,原来只有80端口,增加了443端口:
在这里插入图片描述
17、同样编辑config.v2.json文件:
在这里插入图片描述18、重启 WordPress 容器……(发现并未成功,原因不详,参考教程『中级篇』docker之wordpress容器SSL)。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐