前言
这篇文章主要就是记录一下这个博客的建立过程,很早以前就想建一个自己的博客了,~苦于一直没有时间~(实际上是自己太懒了)硬是拖到现在终于完成了建站大业。先聊聊一开始的技术选型,本来想自己开拔一个vue+java的博客的,后来试了试wordpress真香。
既然要用wordpress,那么php+mysql的组合就没跑了,剩下web服务器选用apache还是nginx?
nginx的优点:epoll模型,高性能,能反向代理,能负载均衡...
apache的优点:对php支持简单...(只能想到这么多了)
那么很明显LNMP胜出
部署的话肯定是要上云的,毕竟上云方便也便宜,因为一些主客观原因,我选择了腾讯云(几家大的云厂商单在云服务器上我感觉差距不是很大,选一个自己信任的或者喜欢的就行),顺便开通一下对象存储功能,毕竟博客上也得放点图片视频音乐啥的
既然用都上云了,devops也可以搞搞,Gitee/Coding这种平台也用起来吧,其实主要是用用docker容器
准备工作
-
购买云服务
趁做活动的时候买吧,实在囊中羞涩轻量应用服务器也是可以的,一般个人使用2核4G够用了,记得绑定一个IP -
拥有一个自己的域名
几大云厂商或者国外的godaddy都可以购买,建议就在云厂商那里买吧,用起来方便点。
注意事项一:
大陆区域的服务器使用域名是需要做备案的,可以参考腾讯云备案
注意事项二:
SSL证书不推荐直接购买云厂商的,毕竟个人用户,开个博客要求没那么高,用免费的就行,可以参考我以前的这篇文章免费申请HTTPS证书 -
域名解析
如果是用的云厂商,直接在控制台里设置:
例如注册的域名是example.com
主机记录www代表解析后为www.example.com
主机记录@代表解析后为example.com
主机记录*代表泛解析,匹配*.example.com
记录类型A表示指向一个IP,此时记录值填写你云服务器的ip
记录类型CNAME表示指向另外一个域名,这里记录值填需要指向的域名(一般用于CDN)
安装环境
主机系统:CentOS 8.2
可以替换软件仓库源,参考腾讯源,阿里源
Docker version 20.10.14
Docker Compose version v2.2.3
Wordpress 5.9.3
PHP 7.4
Mysql 8.0
Nginx stable
NMP都是使用的docker部署,所以这里也是docker镜像版本号
稍稍讲讲docker安装(可以阅读英文的直接戳官网文档吧)
这里介绍的是通过repo安装
-
删除旧版本docker(确定没有旧版本可以skip)
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
设置repo
sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
-
安装最新版本
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
部署
使用docker compose 一键部署,相关配置细节直接看代码吧
代码已上传到github,戳这里跳转
这个项目就是简单的配置了nginx和php,同时支持https/http的方式访问wordpress,项目部署后即可访问wordpress初始化界面(也就是著名的5分钟建站)
项目的目的就是整合冗长的配置流程,达成一键部署的效果
首先git clone
git clone https://github.com/mysens/wordpress-with-docker.git
新建环境变量文件.env
# 数据库root密码
MYSQL_ROOT_PASSWORD=example
# 数据库名称
MYSQL_DATABASE=example
# 数据库用户名
MYSQL_USER=example
# 数据库密码
MYSQL_PASSWORD=example
# 注册的域名
SERVER_NAME=example.com
# 使用的镜像源, 阿里云可以替换成aliyun
mirrors=cloud.tencent
# 以下配置为https证书配置,如不需要可以设置USE_SSL=0
TENCENTCLOUD_SECRET_ID=example
TENCENTCLOUD_SECRET_KEY=example
LEGO_EMAIL=example@example.com
LEGO_DNS=tencentcloud
USE_SSL=1
TENCENTCLOUD_SECRET_ID,TENCENTCLOUD_SECRET_KEY是DNS provider提供的,可以换成阿里云等其他服务商,注意替换后yaml文件中环境变量也要改,参考免费申请HTTPS证书
最后
docker compose up -d
三步部署完成,docker就是这么方便
现在你可以开始使用自己的wordpress博客了